Skip to content

Conversation

@joperezr
Copy link
Member

Description

Upgrading to use the .NET 10 SDK as well as Arcade 10. This will be helpful for some signing things we are doing plus taking advantage of new features in the SDK.

cc: @radical

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • No
  • Did you add public API?
    • No
  • Does the change make any security assumptions or guarantees?
    • No
  • Does the change require an update in our Aspire docs?
    • No

@github-actions github-actions bot added the area-codeflow for labeling automated codeflow. intentionally a different color! label Jun 26, 2025
@joperezr
Copy link
Member Author

Setting as a draft as I'm queuing an internal build to see if official build works

@eerhardt
Copy link
Member

Does this mean we could target net10.0 in the Aspire.Cli when publishing for AOT?

@joperezr
Copy link
Member Author

Does this mean we could target net10.0 in the Aspire.Cli when publishing for AOT?

If we wanted to, yes 😃

@radical
Copy link
Member

radical commented Jun 26, 2025

We should also run an internal build, and a full azdo build with tests to validate this.

@joperezr joperezr marked this pull request as ready for review June 26, 2025 22:25
Copilot AI review requested due to automatic review settings June 26, 2025 22:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR upgrades the repository to use the .NET 10 SDK and Arcade 10, updating various build scripts, dependency configurations, and CI/CD pipeline templates.

  • Update target framework in csproj and global.json to net10.0 and update dotnet/arcade versions.
  • Modify build scripts (bash and PowerShell) to reflect new property names and parameters (e.g. DotNetBuild and DotNetBuildFromVMR).
  • Adjust dependency versions and SHA sums in files like Version.Details.xml and Versions.props, plus update NuGet and workflow settings for .NET10.

Reviewed Changes

Copilot reviewed 56 out of 58 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tools/GenerateTestSummary/GenerateTestSummary.csproj Updated target framework from net9.0 to net10.0
global.json Updated dotnet version and tool versions to .NET 10 SDK preview
eng/common/darc-init.sh Updated package source URL for arcade services
eng/Version.Details.xml Updated Arcade dependency versions and corresponding SHA sums
eng/common/build.sh Changed MSBuild property names (DotNetBuildRepo → DotNetBuild) and added DotNetBuildFromVMR
Various workflow and CI templates Updated pipelines and NuGet.config to reference .NET 10 sources
Comments suppressed due to low confidence (3)

eng/Version.Details.xml:153

  • Confirm that the updated dependency versions and SHA sums in Version.Details.xml are correct and that they match the intended Arcade 10 releases.
    </Dependency>

eng/common/build.sh:248

  • Ensure that updating the property name from 'DotNetBuildRepo' to 'DotNetBuild' and introducing 'DotNetBuildFromVMR' in build.sh is aligned with the rest of the build system to prevent configuration mismatches.
    /p:Build=$build \

@davidfowl
Copy link
Member

Let’s gooo!

@radical
Copy link
Member

radical commented Jun 27, 2025

@radical
Copy link
Member

radical commented Jun 27, 2025

@joperezr would this work fine with VS/VS code?

radical added 5 commits June 26, 2025 21:41
`AzureFunctionsEndToEnd.AppHost.csproj : error NU1010: The following PackageReference items do not define a corresponding PackageVersion item: Aspire.Hosting.Azure.AppContainers. Projects using Central Package Management must declare PackageReference and PackageVersion items with matching names. For more information, visit https://aka.ms/nuget/cpm/gettingstarted `
@radical
Copy link
Member

radical commented Jun 27, 2025

@radical radical added the area-engineering-systems infrastructure helix infra engineering repo stuff label Jun 27, 2025
Copy link
Member

@radical radical left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!!

@radical
Copy link
Member

radical commented Jun 27, 2025

@joperezr could you please review my additional changes to the PR before merging?

<AdditionalProperties Include="SelfContained=true" />

<!-- Windows pdb aren't really needed any more. See https://github.com/dotnet/arcade/issues/15724
As the pdb file is in the same location for all the RIDs it causes arcade's `_DeployPortableSymbolsToSymStore`
Copy link
Member Author

Choose a reason for hiding this comment

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

Isn't the right fix here to use different publish locations for different rids?

Copy link
Member

Choose a reason for hiding this comment

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

Publish directories are separate, and even the build dirs for the .dll but not for the .pdb! The .pdb files wouldn't be different per-rid so I think them being in the same location makes sense. We could fix this in arcade somehow, but apparently this whole thing (windows pdbs) is expected to be removed anyway. See dotnet/arcade#15724 and dotnet/arcade#15736 .

<DotNetSdkPreviousVersionForTesting>8.0.406</DotNetSdkPreviousVersionForTesting>
<!-- dotnet 10.0 versions for running tests - used for templates tests -->
<DotNetSdkNextVersionForTesting>10.0.100-preview.5.25277.114</DotNetSdkNextVersionForTesting>
<DotNetSdkCurrentVersionForTesting>9.0.200</DotNetSdkCurrentVersionForTesting>
Copy link
Member Author

Choose a reason for hiding this comment

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

Why is this not the current version? Should we rename the property instead?

Copy link
Member

Choose a reason for hiding this comment

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

These names are arbitrary really. We are following Previous, Current, Next to follow 3 active versions. 9.0 being Current works here allowing Previous=8.0 and Current=10.0.

Copy link
Member

Choose a reason for hiding this comment

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

I would use the same nomenclature as dotnet/runtime:
$(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum)

Current = 10
Previous = 9
Minimum = 8

Copy link
Member

Choose a reason for hiding this comment

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

But maybe that only makes sense if we are on 10 as well. So maybe having Next be 10 until we are version 10...

{ templateName, extraArgs, TestSdk.Current, TestTargetFramework.Current, null },
// Current SDK, Next TFM
{ templateName, extraArgs, TestSdk.Current, TestTargetFramework.Next, "The current .NET SDK does not support targeting .NET 10.0" },
{ templateName, extraArgs, TestSdk.Current, TestTargetFramework.Next, null },
Copy link
Member Author

Choose a reason for hiding this comment

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

Why not keep the current TFM actually be current (meaning 10.x) and then removing the expected error? (which is what I had) That way we are no validating that with a .NET 10 SDK you can build an aspire app targeting 10.

Copy link
Member

Choose a reason for hiding this comment

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

Can you elaborate on what is the missing case here, or the incorrect one?

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
Copy link
Member

Choose a reason for hiding this comment

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

Do we want a property for this? like $(NetCoreAppCurrent)

Copy link
Member Author

Choose a reason for hiding this comment

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

We could, not sure if I'd block merging for this, so if this is the only remaining feedback I'd vote for doing this in the next PR

@radical radical merged commit b6ede04 into main Jun 27, 2025
252 checks passed
@radical radical deleted the UpdateDotNet branch June 27, 2025 22:34
@github-actions github-actions bot locked and limited conversation to collaborators Jul 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-codeflow for labeling automated codeflow. intentionally a different color! area-engineering-systems infrastructure helix infra engineering repo stuff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants