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/arcade #71604

Merged
merged 40 commits into from
Feb 22, 2024

Conversation

dotnet-maestro[bot]
Copy link
Contributor

@dotnet-maestro dotnet-maestro bot commented Jan 12, 2024

This pull request updates the following dependencies

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

  • Subscription: 111cfc79-5f9f-4acd-d8a2-08dc0c5899fd
  • Build: 20240213.2
  • Date Produced: February 13, 2024 8:30:17 PM UTC
  • Commit: da98edc4c3ea539f109ea320672136ceb32591a7
  • Branch: refs/heads/release/8.0

…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
@dotnet-maestro dotnet-maestro bot requested a review from a team as a code owner January 12, 2024 14:03
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Infrastructure untriaged Issues and PRs which have not yet been triaged by a lead labels Jan 12, 2024
ghost
ghost previously requested changes Jan 12, 2024
Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

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

This PR changes the .NET SDK version. Review required from @dotnet/roslyn-infrastructure-current-swat before merging.
Tasks:

  • Getting Started Documentation has been updated
  • NuGet dependency version updated to match version shipping in SDK

…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…110.4

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24060.4
…123.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24073.2
…124.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24074.2
…124.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24074.2
…125.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24075.5
…125.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24075.5
…125.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24075.5
…125.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24075.5
…125.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24075.5
…131.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
…131.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
…131.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
…131.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
dotnet-maestro bot and others added 3 commits February 6, 2024 13:58
…131.5

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
…131.5

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
…131.5

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24081.5
…209.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24109.2
…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
@jjonescz
Copy link
Member

@dotnet/source-build-internal It looks like the Regex source generator is not running here during source build (it works in main where SDK is v8.0.100, and doesn't work here where SDK is v8.0.101). Do you know what might be the problem? Thanks.

@mthalman
Copy link
Member

@dotnet/source-build-internal It looks like the Regex source generator is not running here during source build (it works in main where SDK is v8.0.100, and doesn't work here where SDK is v8.0.101). Do you know what might be the problem? Thanks.

I don't know why that would happen. You can try to diagnose this by running source build locally with ./build.sh --sourcebuild.

@jasonmalinowski
Copy link
Member

Yeah I have no idea why that would be broken.

…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
@jjonescz
Copy link
Member

Cannot repro it locally, the build succeeds for me. I compared binlog from this PR with binlog from main - the Microsoft.NETCore.App targeting pack is not getting located in this PR (in main it has PackageDirectory = /__w/1/s/.dotnet/packs/Microsoft.NETCore.App.Ref/8.0.0 which is missing in this PR's binlog) and is instead then downloaded from NuGet (into /__w/1/s/artifacts/source-build/self/package-cache/microsoft.netcore.app.ref/8.0.0) but that doesn't contain the source generators.

…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
@mthalman
Copy link
Member

Ok, I think I know what's going on. This is a bit of a problem. The Microsoft.NETCore.App.Ref targeting pack is getting loaded from SBRP. This is meant to be a reference assembly (no implementation) so it doesn't include things like Roslyn analyzers and now, apparently, source generators.

@MichaelSimons - Can you weigh in here? Does this essentially mean that any repo source which is participating in source build can't take a dependency on source generators when targeting an older SDK version?

@MichaelSimons
Copy link
Member

@MichaelSimons - Can you weigh in here? Does this essentially mean that any repo source which is participating in source build can't take a dependency on source generators when targeting an older SDK version?

Yes, that's correct. If you want source generators/analyzers, you must target NetCurrent for source-build.

@jjonescz
Copy link
Member

jjonescz commented Feb 21, 2024

I don't understand. Are you talking about target framework or SDK version?

  • Looking at binlog, NetCurrent=net8.0 and the failing source build has TargetFramework=net8.0.
  • I don't know why 8.0.0 of the ref package is used when SDK is set to 8.0.101 (I would expect 8.0.1 of the ref package to get used).

…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
@mthalman
Copy link
Member

Ah, it's because of this:

<ItemGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
<KnownFrameworkReference Update="Microsoft.NETCore.App">
<TargetingPackVersion Condition="'%(TargetFramework)' == 'net8.0'">8.0.0</TargetingPackVersion>
</KnownFrameworkReference>
<KnownFrameworkReference Update="Microsoft.AspNetCore.App">
<TargetingPackVersion Condition="'%(TargetFramework)' == 'net8.0'">8.0.0</TargetingPackVersion>
</KnownFrameworkReference>
</ItemGroup>

So yes, it is using the 8.0.101 SDK which sets the targeting pack version of Microsoft.NETCore.App to 8.0.1. But then the snippet above changes that to be 8.0.0 which causes it to load from SBRP instead (since that's where it's available). I question the need for that snippet at all. For roslyn source build, we'll want it to use the Microsoft built targeting pack: 8.0.1. For the VMR build of roslyn, we want it to be targeting the current version of the targeting pack anyway. So in both cases, the snippet above is not what is needed. Removing it would cause a prebuilt for Microsoft.NETCore.App.8.0.1 in the roslyn build but that can be added to the prebuilt baseline since the prebuilt wouldn't occur in the VMR build. Looking back at 8.0 of the VMR, this snippet also wasn't relevant since it was set to net6.0: https://github.com/dotnet/dotnet/blob/4e65e09544821be37c52624fc60278d9dd05cc6d/src/roslyn/eng/targets/Imports.BeforeArcade.targets#L17-L24.

@MichaelSimons - Does my assessment seem correct to you?

@MichaelSimons
Copy link
Member

Ah, it's because of this:

<ItemGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
<KnownFrameworkReference Update="Microsoft.NETCore.App">
<TargetingPackVersion Condition="'%(TargetFramework)' == 'net8.0'">8.0.0</TargetingPackVersion>
</KnownFrameworkReference>
<KnownFrameworkReference Update="Microsoft.AspNetCore.App">
<TargetingPackVersion Condition="'%(TargetFramework)' == 'net8.0'">8.0.0</TargetingPackVersion>
</KnownFrameworkReference>
</ItemGroup>

So yes, it is using the 8.0.101 SDK which sets the targeting pack version of Microsoft.NETCore.App to 8.0.1. But then the snippet above changes that to be 8.0.0 which causes it to load from SBRP instead (since that's where it's available). I question the need for that snippet at all. For roslyn source build, we'll want it to use the Microsoft built targeting pack: 8.0.1. For the VMR build of roslyn, we want it to be targeting the current version of the targeting pack anyway. So in both cases, the snippet above is not what is needed. Removing it would cause a prebuilt for Microsoft.NETCore.App.8.0.1 in the roslyn build but that can be added to the prebuilt baseline since the prebuilt wouldn't occur in the VMR build. Looking back at 8.0 of the VMR, this snippet also wasn't relevant since it was set to net6.0: https://github.com/dotnet/dotnet/blob/4e65e09544821be37c52624fc60278d9dd05cc6d/src/roslyn/eng/targets/Imports.BeforeArcade.targets#L17-L24.

@MichaelSimons - Does my assessment seem correct to you?

I agree with this assessment.

@jjonescz jjonescz dismissed ghost ’s stale review February 22, 2024 13:03

Docs mention to use global.json version, so no need to update. The other point I don't understand but if it means updating MicrosoftNetCompilersToolsetVersion than that's already at newer version than in SDK.

…213.2

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
 From Version 8.0.0-beta.24059.4 -> To Version 8.0.0-beta.24113.2
@dotnet-maestro dotnet-maestro bot merged commit 2bfcc49 into main Feb 22, 2024
31 checks passed
@dotnet-maestro dotnet-maestro bot deleted the darc-main-89d2eb81-6307-4ac7-b7ae-2f64346aac0c branch February 22, 2024 16:03
@jjonescz jjonescz added this to the 17.10 P2 milestone Feb 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Infrastructure untriaged Issues and PRs which have not yet been triaged by a lead
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants