Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[main] Update dependencies from dotnet/installer #8366

Merged
merged 63 commits into from
Dec 4, 2023

Conversation

dotnet-maestro[bot]
Copy link
Contributor

@dotnet-maestro dotnet-maestro bot commented Sep 22, 2023

This pull request updates the following dependencies

Coherency Updates

The following updates ensure that dependencies with a CoherentParentDependency
attribute were produced in a build used as input to the parent dependency's build.
See Dependency Description Format

  • Coherency Updates:
    • Microsoft.NETCore.App.Ref: from 8.0.0-rc.2.23466.4 to 8.0.0-rc.1.23414.4 (parent: Microsoft.Dotnet.Sdk.Internal)
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport: from 8.0.0-rc.2.23463.1 to 8.0.0-rc.1.23411.2 (parent: Microsoft.NETCore.App.Ref)
    • Microsoft.NET.ILLink.Tasks: from 8.0.0-rc.2.23466.4 to 8.0.0-rc.1.23414.4 (parent: Microsoft.Dotnet.Sdk.Internal)
    • Microsoft.DotNet.Cecil: from 0.11.4-alpha.23461.1 to 0.11.4-alpha.23407.2 (parent: Microsoft.NET.ILLink.Tasks)

From https://github.com/dotnet/installer

  • Subscription: f852bd0d-fd7f-4e07-8396-08dbbb809911
  • Build: 20231203.1
  • Date Produced: December 3, 2023 7:20:53 PM UTC
  • Commit: 42ace91ba7564936408c91a264484ff79bd00539
  • Branch: refs/heads/main

…230921.4

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23471.4

Dependency coherency updates

Microsoft.NETCore.App.Ref,Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport,Microsoft.NET.ILLink.Tasks,Microsoft.DotNet.Cecil
 From Version 8.0.0-rc.2.23466.4 -> To Version 8.0.0-rc.1.23414.4 (parent: Microsoft.Dotnet.Sdk.Internal
jonathanpeppers and others added 4 commits September 22, 2023 16:22
…230924.1

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23474.1

Dependency coherency updates

Microsoft.NETCore.App.Ref,Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport,Microsoft.NET.ILLink.Tasks,Microsoft.DotNet.Cecil
 From Version 8.0.0-rc.2.23466.4 -> To Version 8.0.0-rc.1.23414.4 (parent: Microsoft.Dotnet.Sdk.Internal
…230926.6

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23476.6

Dependency coherency updates

Microsoft.NETCore.App.Ref,Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport,Microsoft.NET.ILLink.Tasks,Microsoft.DotNet.Cecil
 From Version 8.0.0-rc.2.23466.4 -> To Version 8.0.0-rc.1.23414.4 (parent: Microsoft.Dotnet.Sdk.Internal
Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

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

We probably shouldn't merge this one until we get the fix for:

Mono.Android.NET_Tests, SystemTests.AppContextTests.TestPrivateSwitches("System.Diagnostics.Metrics.Meter, System.Diagnostics.DiagnosticSource","<IsSupported>k__BackingField",False) / Release

I think it doesn't have the latest dotnet/runtime/main with my change for this.

dotnet-maestro bot and others added 18 commits October 2, 2023 12:22
…230929.5

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23479.5

Dependency coherency updates

Microsoft.NETCore.App.Ref,Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport,Microsoft.NET.ILLink.Tasks,Microsoft.DotNet.Cecil
 From Version 8.0.0-rc.2.23466.4 -> To Version 8.0.0-rc.1.23414.4 (parent: Microsoft.Dotnet.Sdk.Internal
…231004.14

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23504.14
…231012.15

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23512.15
…231017.3

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23517.3
…231022.3

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23522.3
…231024.3

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23524.3
…231029.1

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23529.1
Then I updated to the latest build from:

https://maestro-prod.westus2.cloudapp.azure.com/3884/https:%2F%2Fgithub.com%2Fdotnet%2Finstaller/latest/graph

    > darc update-dependencies --id 200002
    Looking up build with BAR id 200002
    Updating 'Microsoft.Dotnet.Sdk.Internal': '9.0.100-alpha.1.23529.1' => '9.0.100-alpha.1.23552.5' (from build '20231102.5' of 'https://github.com/dotnet/installer')
    Checking for coherency updates...
    Using 'Strict' coherency mode. If this fails, a second attempt utilizing 'Legacy' Coherency mode will be made.
    Updating 'Microsoft.NETCore.App.Ref': '8.0.0-rc.1.23414.4' => '9.0.0-alpha.1.23552.1' to ensure coherency with [email protected]
    Updating 'Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport': '8.0.0-rc.1.23411.2' => '9.0.0-alpha.1.23530.1' to ensure coherency with [email protected]
    Updating 'Microsoft.NET.ILLink.Tasks': '8.0.0-rc.1.23414.4' => '9.0.0-alpha.1.23552.1' to ensure coherency with [email protected]
    Updating 'Microsoft.DotNet.Cecil': '0.11.4-alpha.23407.2' => '0.11.4-alpha.23509.2' to ensure coherency with [email protected]
    Local dependencies updated based on build with BAR id 200002 (20231102.5 from https://github.com/dotnet/installer@main)
…231104.1

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23554.1
jonpryor pushed a commit to dotnet/android-tools that referenced this pull request Nov 30, 2023
Context: dotnet/android#8366

dotnet/android#8366 is attempting to build xamarin-android
against .NET 9 previews, and currently fails:

	(Restore target) ->
	tests/MSBuildDeviceIntegration/MSBuildDeviceIntegration.csproj : error NU1605: Warning As Error: Detected package downgrade: Microsoft.Build.Framework from 17.5.0 to 17.3.2. Reference the package directly from the project to select a different version.
	tests/MSBuildDeviceIntegration/MSBuildDeviceIntegration.csproj : error NU1605:  MSBuildDeviceIntegration -> MSBuild.StructuredLogger 2.2.100 -> doh (>= 17.5.0)
	tests/MSBuildDeviceIntegration/MSBuildDeviceIntegration.csproj : error NU1605:  MSBuildDeviceIntegration -> Microsoft.Build.Framework (>= 17.3.2)
	tests/MSBuildDeviceIntegration/MSBuildDeviceIntegration.csproj : error NU1605: Warning As Error: Detected package downgrade: Microsoft.Build.Utilities.Core from 17.5.0 to 17.3.2. Reference the package directly from the project to select a different version.
	tests/MSBuildDeviceIntegration/MSBuildDeviceIntegration.csproj : error NU1605:  MSBuildDeviceIntegration -> MSBuild.StructuredLogger 2.2.100 -> Microsoft.Build.Utilities.Core (>= 17.5.0)
	tests/MSBuildDeviceIntegration/MSBuildDeviceIntegration.csproj : error NU1605:  MSBuildDeviceIntegration -> Microsoft.Build.Utilities.Core (>= 17.3.2)

We need to update `MSBuild.StructuredLogger` package to be able to
move to .NET 9, as the `.binlog` file format changed in .NET 9.
The newer `MSBuild.StructuredLogger` package, in turn, requires a
newer `Microsoft.Build.Framework` package version, which is
controlled here.

Update the `$(MSBuildPackageReferenceVersion)` MSBuild property so
that (1) it can now be overridden, which would allow version updates
in the future without requiring submodule updates, and (2) update the
the default value to 17.6.3.  I fear that if we move to 17.8.3, we
may potentially break other repos.

VS 2022 17.6 is an LTS release that feels "safe", is new enough to solve
the issue, and hopefully won't break anyone?

Additionally, update the `System.Security.Cryptography.Xml` package
so that it now uses an overridable
`$(SystemSecurityCryptographyXmlVersion)` MSBuild property, which
defaults to 7.0.1, in order to fix this build error:

	src\Microsoft.Android.Build.BaseTasks\Microsoft.Android.Build.BaseTasks.csproj : error NU1605: Detected package downgrade: System.Security.Cryptography.Xml from 7.0.1 to 6.0.1. Reference the package directly from the project to select a different version.
	src\Microsoft.Android.Build.BaseTasks\Microsoft.Android.Build.BaseTasks.csproj : error NU1605:  Microsoft.Android.Build.BaseTasks -> Microsoft.Build.Tasks.Core 17.6.3 -> System.Security.Cryptography.Xml (>= 7.0.1)
	src\Microsoft.Android.Build.BaseTasks\Microsoft.Android.Build.BaseTasks.csproj : error NU1605:  Microsoft.Android.Build.BaseTasks -> System.Security.Cryptography.Xml (>= 6.0.1)
	tests\Microsoft.Android.Build.BaseTasks-Tests\Microsoft.Android.Build.BaseTasks-Tests.csproj : error NU1605: Detected package downgrade: System.Security.Cryptography.Xml from 7.0.1 to 6.0.1. Reference the package directly from the project to select a different version.
	tests\Microsoft.Android.Build.BaseTasks-Tests\Microsoft.Android.Build.BaseTasks-Tests.csproj : error NU1605:  Microsoft.Android.Build.BaseTasks-Tests -> Microsoft.Build.Tasks.Core 17.6.3 -> System.Security.Cryptography.Xml (>= 7.0.1)
	tests\Microsoft.Android.Build.BaseTasks-Tests\Microsoft.Android.Build.BaseTasks-Tests.csproj : error NU1605:  Microsoft.Android.Build.BaseTasks-Tests -> System.Security.Cryptography.Xml (>= 6.0.1)
jonathanpeppers added a commit that referenced this pull request Nov 30, 2023
Context: #8366
Context: dotnet/sdk@d21e6bf

Rolf introduced an "escape hatch" in the .NET 9 SDK for emitting a build
warning for a case that doesn't make sense on mobile. All mobile apps
are self-contained, and we define RIDs by default, so the error is not
needed.

It appears than when building `net8.0-android` apps on the .NET 9 SDK,
we will also need to silence this warning. This property should not have
any effect in the stable, .NET 8 SDK.

After this change goes in, we'll likely need the .NET 9 Android workload
to depend on a newer .NET 8 Android workload with this change in place.
jonathanpeppers added a commit that referenced this pull request Dec 1, 2023
Context: #8366
Context: dotnet/sdk@d21e6bf

Rolf introduced an "escape hatch" in the .NET 9 SDK for emitting a build
warning for a case that doesn't make sense on mobile. All mobile apps
are self-contained, and we define RIDs by default, so the error is not
needed.

It appears than when building `net8.0-android` apps on the .NET 9 SDK,
we will also need to silence this warning. This property should not have
any effect in the stable, .NET 8 SDK.

After this change goes in, we'll likely need the .NET 9 Android workload
to depend on a newer .NET 8 Android workload with this change in place.
@fanyang-mono
Copy link
Member

Thanks for fixing the usage of AndroidStripILAfterAOT. LGTM!

jonathanpeppers and others added 3 commits December 1, 2023 10:52
…231203.1

Microsoft.Dotnet.Sdk.Internal
 From Version 8.0.100-rc.2.23468.1 -> To Version 9.0.100-alpha.1.23603.1
//FIXME: will revisit this in a future PR
if (dotnetVersion == "net8.0") {
Assert.Ignore ("error NETSDK1185: The Runtime Pack for FrameworkReference 'Microsoft.Android.Runtime.34.android-arm' was not available. This may be because DisableTransitiveFrameworkReferenceDownloads was set to true.");
}
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 file an issue or issue group for things like this (and the intune test ignore) on the .NET 9 milestone to help make sure they don't get lost

Copy link
Member

Choose a reason for hiding this comment

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

I planned to just work on this one immediately after we merge this. Will probably require some trial/error.

@jonathanpeppers
Copy link
Member

Commit message:

Bump to dotnet/installer/main@42ace91ba7 .NET 9.0.100-alpha.1.23603.1

Changes: https://github.com/dotnet/installer/compare/e1fd7d9649...42ace91ba7
Changes: https://github.com/dotnet/runtime/compare/287c10d253...a26802aa57
Changes: https://github.com/dotnet/emsdk/compare/1999c8c8ab...74e4868be8
Changes: https://github.com/dotnet/cecil/compare/a112f15aa...45dd3a73dd
Changes: https://github.com/xamarin/xamarin-android-tools/compare/08a69900df...21de3d731d

Updates:

* Microsoft.Dotnet.Sdk.Internal: from 8.0.100-rc.2.23468.1 to 9.0.100-alpha.1.23603.1
* Microsoft.NETCore.App.Ref: from 8.0.0-rc.2.23466.4 to 9.0.0-alpha.1.23577.7
* Microsoft.NET.Workload.Emscripten.Current.Manifest-*.Transport: from 8.0.0-rc.2.23463.1 to 9.0.0-alpha.1.23572.3
* Microsoft.DotNet.Cecil: from 0.11.4-alpha.23461.1 to 0.11.4-alpha.23509.2

~~ Changes to the build ~~

* `$(DotNetTargetFrameworkVersion)` is `9.0`, making assemblies like
  `Mono.Android.dll` target .NET 9.0, as well as `$(TargetFramework)` in
  project templates, etc.

* `$(DotNetStableTargetFramework)` is `8.0`, making various bootstrap
  tooling, command-line tools, and unit tests target .NET 8.0.

* .NET 9 has a new `.binlog` format, requiring
  `MSBuild.StructuredLogger` 2.2.100.

* `System.CodeDom` now targets 8.0.0, as we moved to 17.8 MSBuild
  assemblies from `xamarin-android-tools`.

* Add the `dotnet9` and `dotnet9-transport` feeds. The
  `dotnet9-transport` feed is used for non-customer-facing packages like
  `Microsoft.NET.ILLink`.

* `build-linux.yaml` was initially failing to restore `net8.0` projects
  because of the order it installed a .NET SDK. It was only working for
  `net7.0` projects, because a .NET 7 SDK was preinstalled on the build
  machines.

* Update `TestSlicerToolVersion` and `dotnet-test-slicer` to
  `0.1.0-alpha7`, previously it was failing to discover tests in a
  `net8.0` project.

* Provision Mono workload manifests for: `net6`, `net7`, `net8`, and
  `current` (`net9`). Call `Utilities.DeleteDirectory()` on these
  directories to be sure we are in a clean state.

* Bump to xamarin/xamarin-android-tools/main@e1fd7d9649

* Update workload aliases to include `Microsoft.Android.Sdk.net9` and
  `Microsoft.Android.Sdk.net8`.

* Remove the .NET 7 Android workload from .NET 9. Import `Eol.targets`
  for .NET 6/7 projects.

* Update various parameterized tests to target `net8.0` and `net9.0`
  appropriately while dropping `net7.0` support.

* An initial update to the AOT profile for .NET 9.

* Updated `*.apkdesc` files: there were some minor `.apk` size changes.

~~ `$(AllowSelfContainedWithoutRuntimeIdentifier)` ~~

Context: https://github.com/dotnet/sdk/commit/d21e6bf5c5a239892d771f409841ce856bddcd89
Context: https://github.com/xamarin/xamarin-android/commit/d12da3a1374ee858aa3d510c396a22b75c75d584

Rolf introduced an "escape hatch" in the .NET 9 SDK for emitting a build
warning for a case that doesn't make sense on mobile. All mobile apps
are self-contained, and we define RIDs by default, so the error is not
needed.

We can also stop setting `$(PublishSelfContained)` to `false`, as
`$(AllowSelfContainedWithoutRuntimeIdentifier)` is sufficient in .NET 9.

~~ Changes to `<ILStrip/>` ~~

Context: https://github.com/dotnet/runtime/pull/90436

* `IntermediateOutputPath` is now required.

* `[Output] TrimmedAssemblies` renamed to `UpdatedAssemblies`.

* Output items shape changed, so now use `%(UntrimmedAssemblyFilePath)`
  and we can `<Copy/>` based on `%(ILStripped)`.

The new code is better, so generally these changes seem *good*.

~~ Refactoring ~~

Rename `$(AndroidNet7Version)` to `$(AndroidNetPreviousVersion)` to make
this property more generic for future releases.

Use `@NET_PREVIOUS_VERSION@` as a replacement instead of `@NET7_VERSION@`.

~~ TODO ~~

* https://github.com/xamarin/xamarin-android/issues/8548

The `MicrosoftIntune` test is failing because they have a check for ==
`8.0` that needs to be updated to be >= `8.0`. This test is running on
our `release/8.0.1xx` branch, but we can hopefully re-enable in main
after their next release.

* A specific case of `dotnet publish -f net8.0-android -r android-arm` is
  failing with:

    error NETSDK1185: The Runtime Pack for FrameworkReference 'Microsoft.Android.Runtime.34.android-arm' was not available. This may be because DisableTransitiveFrameworkReferenceDownloads was set to true.

This is related to `$(AllowSelfContainedWithoutRuntimeIdentifier)`, but
I will address in a future PR. This will likely require .NET 8 Android
workload changes.

@jonpryor jonpryor merged commit 8fa5d99 into main Dec 4, 2023
45 checks passed
@jonpryor jonpryor deleted the darc-main-583d6f71-0641-4428-9c9f-b64ebed2e33e branch December 4, 2023 20:32
grendello added a commit that referenced this pull request Dec 4, 2023
* main:
  [monodroid] Add a handful of compiler options to harden code (#8551)
  Bump to dotnet/installer@42ace91ba7 .NET 9.0.100-alpha.1.23603.1 (#8366)
  [xaprepare] Track the versions of Android SDK Levels available on CI agents. (#8552)
grendello added a commit that referenced this pull request Dec 5, 2023
* main:
  [monodroid] Add a handful of compiler options to harden code (#8551)
  Bump to dotnet/installer@42ace91ba7 .NET 9.0.100-alpha.1.23603.1 (#8366)
@github-actions github-actions bot locked and limited conversation to collaborators Jan 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants