Skip to content

Conversation

@grendello
Copy link
Contributor

  • Remove Designer support
  • Remove Designer test CI jobs
  • Remove support for classic XA from the native runtime
  • Remove support for Designer from the native runtime
  • Stop building classic versions of libmonodroid
  • Stop building host versions of libmonodroid

  - Remove Designer support
	- Remove Designer test CI jobs
	- Remove support for classic XA from the native runtime
	- Remove support for Designer from the native runtime
	- Stop building classic versions of libmonodroid
	- Stop building host versions of libmonodroid
* main:
  [tests] Bump NUnit versions to latest (dotnet#7802)
  [Microsoft.Android.Sdk.ILLink] target `net7.0` temporarily (dotnet#7803)
@MagicAndre1981
Copy link

so after this gets shipped we can no longer build classic xamarin(.forms) apps? I thought we still have over 1 year of support for classic xamarin

@grendello
Copy link
Contributor Author

@MagicAndre1981 main starts to remove classic code, but classic is going to be supported from a branch (d17-5 I think).

@MagicAndre1981
Copy link

ok, so 17-5 will be last version that supports classic apps? But if 17.4 is LTS I doubt that 17.5 will be LTS again. Delay it until end of 2023 and merge it here. So 2-3 months later it gets shipped nearly at end of support for the classic apps.

@grendello
Copy link
Contributor Author

@MagicAndre1981 tbh, I don't track releases :) It might very well be 17.4. The point is, classic support will be provided only from that branch if any fixes, updates etc are necessary.

  - Minimum NDK level is 21 now
  - Don't run classic MSBuild smoke tests on Windows
@grendello grendello marked this pull request as ready for review February 21, 2023 18:13
<Target Name="_PrepareConfigureSqlite">
<MakeDir Directories="$(IntermediateOutputPath)%(AndroidSupportedTargetJitAbi.Identity)-$(Configuration)" />
<ItemGroup>
<_ConfigureSqliteCommands
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we delete all of sqlite-xamarin? (doesn't have to be this PR)

This is for Mono.Data.Sqlite.dll? We don't even ship that in .NET 6+?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we can do that, but indeed, definitely not in this PR. I'm trying to remove only the bare minimum here, that relates to libmonodroid.so

@jonathanpeppers
Copy link
Member

ok, so 17-5 will be last version that supports classic apps? But if 17.4 is LTS I doubt that 17.5 will be LTS again. Delay it until end of 2023 and merge it here. So 2-3 months later it gets shipped nearly at end of support for the classic apps.

Just FYI whatever branch name we happen to use, doesn't mean that is what version of VS is supported. We can name branches anything -- it could actually be renamed to something like xa or classic, depending on what we decide.

* main:
  [Xamarin.Android.Build.Tasks] Improve aapt2+file not found handling (dotnet#7644)
  [MSBuildDeviceIntegration] Fix duplicated test parameter (dotnet#7809)
* main:
  LEGO: Merge pull request 7825
  Bump to xamarin/Java.Interop/main@bbaeda6f (dotnet#7799)
  Bump NDK to r25c (dotnet#7808)
  [Xamarin.Android.Build.Tests] Improve logcat logging in failed tests (dotnet#7816)
  [Mono.Android] Update api-compat reference file for current API-33 (dotnet#7822)
  Localized file check-in by OneLocBuild Task (dotnet#7820)
  Add Unit Test for testOnly apps (dotnet#7637)
  [build] Only build the latest API level (dotnet#7786)
* main:
  Revert "Bump to dotnet/installer@d25a3bb 8.0.100-preview.2.23105.6 (dotnet#7769)"
  LEGO: Merge pull request 7828
testResultsFiles: TestResult-Xamarin.Android.Locale_Tests-$(ApkTestConfiguration)-Profiled-Aot.xml
extraBuildArgs: /p:AotAssemblies=True /p:AndroidEnableProfiledAot=true
artifactSource: bin/Test$(ApkTestConfiguration)/Xamarin.Android.Locale_Tests-Signed.apk
artifactFolder: Profiled-Aot
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may want to hold off on deletion of the classic apk job until we have equivalents for .NET? I know there is a PR for the codegen related projects here #7682. Otherwise, we should log an issue for porting the remaining missing tests.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pjcollins without removal of these fragments we'd constantly have test errors which would never work after merging of this PR. It's easy to restore these fragments when .NET equivalents of the affected tests are available.

Copy link
Member

@pjcollins pjcollins Feb 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can file an issue to track those updates then if we plan to merge this PR soon.

I think we should also stop building and signing the classic .pkg and .vsix files completely as part of this PR since they will no longer be functional. These steps can be found in the windows build template, the commercial-build template, and the Prepare Classic Release stage.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I filed a tracking issue for this here: #7906.

@jonpryor
Copy link
Contributor

@MagicAndre1981: see also 618bd4a:

Heads-up: xamarin-android/main is becoming .NET Android-only;
Classic Xamarin.Android is only supported [through 2024-May-1][0];
all current and future feature work is oriented toward .NET Android.
Classic Xamarin.Android will only be fully buildable/supportable on
the [d17-5 release branch][1].
[0]: https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin
[1]: https://github.com/xamarin/xamarin-android/commits/d17-5

The d17-5 branch is Xamarin.Android 13.2.x, and Xamarin.Android 13.2.x (and derivatives thereof) will also be shipped in Visual Studio 17.6, 17.7, … until "Classic" Xamarin.Android is removed from Visual Studio entirely.

To answer your question:

so after this gets shipped we can no longer build classic xamarin(.forms) apps? I thought we still have over 1 year of support for classic xamarin

Classic Xamarin.Android will be supported until May 2024, ~15 months from now. This does not require that the main branch continue to support "Classic" Xamarin.Android. All ongoing feature development is only for .NET Android, not Xamarin.Android. Removing parts of Classic from the main branch makes our maintenance easier, and significantly improves our PR and CI build times. (Something like half the tests need to run once we stop caring entirely about Classic Xamarin.Android…)

Regarding your other question:

17-5 will be last version that supports classic apps?

The d17-5 branch is the last branch that supports Classic apps.

But if 17.4 is LTS I doubt that 17.5 will be LTS again

17.5 may not be LTS, but you appear to be assuming that 17.5 will be the last release. I don't know if it will be the last release, but if we make some projections from the Visual Studio Long-Term Servicing Channel (LTSC) support page, we can infer that Visual Studio 17.6 may also be an LTS release, and if Visual Studio 17.6 exists, it will have a Classic Xamarin.Android SDK…built from our d17-5 branch (or derivative thereof). If (when?) Visual Studio 17.7 exists, it will have a Classic Xamarin.Android SDK…built from our d17-5 branch (or derivative thereof). If (when?) Visual Studio 17.8 exists, it may be an LTS release and it will have a Classic Xamarin.Android SDK…built from our d17-5 branch (or derivative thereof).

I hope you see and infer the pattern, and the pattern will continue until at least 2024-May-01, when support for Classic Xamarin.Android ends. (Even then, it just means that support ends. It may very well be possible to install a Classic Xamarin.Android SDK within Visual Studio, if only in an unsupported manner. This is well over a year from now, we have no specifics to share.)

Classic Xamarin.Android is not (yet) being removed from Visual Studio. When that happens, it will be appropriately announced.

@MagicAndre1981
Copy link

but those branches you create for a VS version are practically dead and never really get updated with new fixes. #7644 is something I already do for years but this fix is now missing in that classic branch so others maybe be confused what to do when they hit it

* main:
  [ci] Use AZDO built-in parallelization strategy. (dotnet#7804)
  Bump to dotnet/installer@e3ab0b5 8.0.100-preview.2.23123.10 (dotnet#7813)
  [ci] Run nunit tests with stable .NET version (dotnet#7826)
  [monodroid] Update p/invoke symbol names from net8 alpha1 (dotnet#7829)
  Localized file check-in by OneLocBuild (dotnet#7827)
@jonathanpeppers
Copy link
Member

but those branches you create for a VS version are practically dead and never really get updated with new fixes. #7644 is something I already do for years but this fix is now missing in that classic branch so others maybe be confused what to do when they hit it

This PR only makes error messages better and doesn't fix anything. It wouldn't meet the bar for servicing anyway.

If there is a fix that isn't available in Xamarin.Android, one way we can have a good signal that it is important -- is if a few customers are commenting/asking for it.

* main:
  [monodroid] Properly process satellite assemblies (dotnet#7823)
  Bump to xamarin/java.interop/main@77800dda (dotnet#7824)
* main:
  Replace K4os.Hash.xxHash with System.IO.Hashing (dotnet#7831)
  $(AndroidPackVersionSuffix)=preview.3; net8 is 34.0.0-preview.3 (dotnet#7839)
  [Xamarin.Android.Build.Tasks] Remove support for mkbundle (dotnet#7772)
  [Xamarin.Android.Build.Tasks] `unable to open file as zip archive`? (dotnet#7759)
* main:
  Bump to dotnet/installer@632ddca 8.0.100-preview.3.23128.1 (dotnet#7836)
  LEGO: Merge pull request 7852
  [ci] Reduce overhead for MSBuildIntegration unit test jobs. (dotnet#7832)
  [ci] Allow dynamic`$(NuGetArtifactName)` values (dotnet#7848)
  [Xamarin.Android.Build.Tasks] guard `AutoImport.props` against empty values (dotnet#7837)
  [Mono.Android] Print type & member remapping info (dotnet#7844)
  [Mono.Android] Tweak AndroidMessageHandler behavior for WCF support (dotnet#7785)
  LEGO: Merge pull request 7845
  Localized file check-in by OneLocBuild Task (dotnet#7842)
  [ci] Use compliance stage template (dotnet#7818)
  [build] pass `--skip-sign-check` to `dotnet workload` (dotnet#7840)
* main:
  [ci] Don't run classic tests on the Windows build/test stage (dotnet#7860)
  Bump to xamarin/Java.Interop/main@73ebad2 (dotnet#7861)
  Bump r8 from 4.0.48 to 4.0.52 (dotnet#7858)
  [tests] Fix recently added AndroidMessageHandler test (dotnet#7859)
  [build] remove darc dependency for System.IO.Hashing (dotnet#7855)
  Localized file check-in by OneLocBuild Task (dotnet#7851)
* main:
  [ci] Improvements for emulator test jobs (dotnet#7731)
* main:
  [tests] `InstallAndroidDependenciesTest` uses `platform-tools` 34.0.1 (dotnet#7873)
  [ci] Parallelize and reduce overhead of MSBuild test stage. (dotnet#7850)
  [Xamarin.Android.Build.Tasks] Remove MAM targets from CoreResolve (dotnet#7868)
* main:
  [AOT] provide libc and libm stubs so NDK is not required (dotnet#7475)
  [MSBuildDeviceIntegration] Handle Debugger errors (dotnet#7864)
  [ci] Remove separate SmokeTests jobs. (dotnet#7872)
  Bump to dotnet/installer@cddf8e6 8.0.100-preview.3.23163.4 (dotnet#7885)
  [Actions] Do not double quote the commit message (dotnet#7887)
  [Actions] Ensure that the commit message is valid json. (dotnet#7884)
  [github] Use ".NET Android", not "Android for .NET" (dotnet#7882)
  Bump `$(AndroidNet7Version)` (dotnet#7883)
  [ci] Install fewer Android SDK platforms on test agents. (dotnet#7874)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants