dotnet / arcade

Tools that provide common build infrastructure for multiple .NET Foundation projects.
MIT License
671 stars 347 forks source link

Android and Apple platform support for .NET 7 / MAUI #9136

Closed premun closed 2 years ago

premun commented 2 years ago

Cloned here from https://github.com/dotnet/core-eng/issues/15176

Context

This epic is a continuation of epic Android and Apple platform support for .NET 6 (#10420) which focused on bringing the support of these mobile platforms in Helix to a state where we onboard Mono teams' tests and provide a stable test environment.

Currently, we are running tests on all types of devices and emulators we have in Helix (iOS/tvOS/Android). However, we don't yet support the full required matrix (https://github.com/dotnet/runtime/issues/33381). As an example of missing things can be older Android versions, performance testing or capabilities to allow various other complex scenarios such as mono runtime tests in the AOT mode. These require more feature work and infrastructure setup still.

Stakeholders

This project is driven by requirements of other teams that have P0 .NET 6 deliverables. These teams and their related scenarios are:

Primary objectives

The .NET 7 and MAUI efforts have a stable platform support in Helix

The Helix environment is stable, feature-complete, infrastructure is ready and we have tooling available that allows teams to run their workloads. These workloads can have different requirements when it comes to how we run them or how much capacity they need. We work with the teams to help them determine what volume of tests we can support with existing hardware.

Progress tracking:

Android emulators Android devices Apple simulators Apple devices
BCL tests (JIT) :white_check_mark: :white_check_mark: :white_check_mark: :heavy_minus_sign:
BCL tests (AOT) :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: :white_check_mark:
Runtime tests (JIT) :white_check_mark: arm64 :white_check_mark: / arm32 :soon: :white_check_mark: :heavy_minus_sign:
Runtime tests (AOT) :heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign: :no_entry_sign:
MAUI perf tests :heavy_minus_sign: :white_check_mark: :heavy_minus_sign: :white_check_mark:

Legend:
_:heavy_minussign: - not planned _:white_checkmark: - onboarded and tests running regularly _:no_entrysign: - feature complete, owning team decided to not implement this (yet) as coverage comes from sibling area :soon: - feature complete, owning team hasn't started running tests regularly yet

Definition of done

Client teams dependent on this work confirm they are feature complete and Helix offers a stable environment that supports their workloads on target platforms reliably.

Tasks:

Finalize the Android/Apple Helix environment and hand it over to dnceng

Make the Android/Apple area maintainable by our team just like any other parts of Helix so that infrastructure issues are detected automatically, First Responders are able to attend to these and a good SLA is kept.

Definition of done

Telemetry and alerting is in place (#13607). Tooling and documentation is available and our team is educated in servicing of this area. First Responder duty takes over incident management for mobile platforms.

Tasks:

Recently Triaged Issues

All issues in this section should be triaged by the v-team into one of their business objectives or features.

tkapin commented 2 years ago

@premun - is anything blocking us from closing this epic?

veikkoeeva commented 2 years ago

@tkapin Would this mean one can use .NET with Maui? :) (Ah, yes, I'm probably too enthusiastic if this part starts to look good.)

tkapin commented 2 years ago

@tkapin Would this mean one can use .NET with Maui? :) (Ah, yes, I'm probably too enthusiastic if this part starts to look good.)

This issue tracks development of the infrastructure that was built to test .NET on the mobile devices in order to support .NET MAUI scenarios. If you have a concrete .NET MAUI feedback or issue, could you please share it in the https://github.com/dotnet/maui repo? Thanks!

premun commented 2 years ago

@tkapin we can close this. The left-over task can probably be closed soon as dotnet/runtime has moved onto OSX 12.00 and it seems this has resolved some of the Simulator stability issues that we've seen there. I will validate that this week and close it.

premun commented 2 years ago

This has been finished. We waited with closing until the MAUI release and then some but

We've already sort of sent a couple of woohoo's for this effort so not sending this last one.