-
Notifications
You must be signed in to change notification settings - Fork 442
Update to .NET 10 RC 1 with explicit versioning #3358
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
Conversation
Co-authored-by: saurabhsathe-ms <[email protected]>
Co-authored-by: saurabhsathe-ms <[email protected]>
Co-authored-by: saurabhsathe-ms <[email protected]>
…mTextJsonVersion Co-authored-by: saurabhsathe-ms <[email protected]>
…workflow Co-authored-by: saurabhsathe-ms <[email protected]>
There was a problem hiding this 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 updates the repository to support .NET 10 RC 1 with explicit versioning for CI/CD builds while maintaining flexibility for local development. The key changes address .NET 10's cross-platform AES-GCM support, update package dependencies to RC 1 versions, and standardize property naming across project files.
Key Changes:
- Updated CI/CD to use explicit .NET 10 RC 1 SDK version (10.0.100-rc.1.25451.107) while keeping global.json at 9.0.108 for local development
- Updated test files to handle .NET 10's cross-platform AES-GCM support instead of assuming Windows-only availability
- Renamed
SystemTextJsontoSystemTextJsonVersionfor consistency and updated package references to use the new property name
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/dotnetcore.yml |
Updated CI workflow to use explicit .NET 10 RC 1 SDK version |
build/dependencies.props |
Renamed SystemTextJson to SystemTextJsonVersion and updated .NET 10 package version to RC 1 |
build/dependenciesTest.props |
Renamed SystemTextJson to SystemTextJsonVersion and removed net10.0 conditional override |
test/Microsoft.IdentityModel.AotCompatibility.TestApp/Microsoft.IdentityModel.AotCompatibility.TestApp.csproj |
Fixed target framework condition to properly include net10.0 |
test/Microsoft.IdentityModel.Tokens.Tests/AuthenticatedEncryptionProviderTests.cs |
Added conditional compilation to recognize AES-GCM cross-platform support in .NET 10+ |
test/Microsoft.IdentityModel.Tokens.Tests/ReferenceTests.cs |
Added conditional compilation to recognize AES-GCM cross-platform support in .NET 10+ |
src/Microsoft.IdentityModel.Tokens/Microsoft.IdentityModel.Tokens.csproj |
Updated System.Text.Json package reference to use SystemTextJsonVersion |
src/Microsoft.IdentityModel.Protocols.OpenIdConnect/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj |
Updated System.Text.Json package reference to use SystemTextJsonVersion |
src/Microsoft.IdentityModel.Protocols.SignedHttpRequest/Microsoft.IdentityModel.Protocols.SignedHttpRequest.csproj |
Updated System.Text.Json package reference to use SystemTextJsonVersion |
test/Microsoft.IdentityModel.TestUtils/Microsoft.IdentityModel.TestUtils.csproj |
Reordered package references (cosmetic change) |
This PR updates the repository to support .NET 10 RC 1, enabling the project to build and test against the latest .NET release candidate. The changes use explicit versioning in CI/CD while keeping local development flexible.
Changes Made
SDK and Package Updates
global.jsonto9.0.108to avoid forcing developers to install preview SDK locally10.0.100-rc.1.25451.107) for CI buildsMicrosoft.Extensions.Logging.Abstractions:10.0.0-rc.1.25451.107SystemTextJsontoSystemTextJsonVersionfor consistency across the codebaseBreaking Change: AES-GCM Linux Support
.NET 10 introduces cross-platform support for AES-GCM encryption, which was previously Windows-only. This required updating tests that assumed
PlatformNotSupportedExceptionwould be thrown on non-Windows platforms:AuthenticatedEncryptionProviderTests.csto recognize AES-GCM support on all platforms in .NET 10+ReferenceTests.cswith similar conditional logic usingNET10_0_OR_GREATERProject Configuration
Microsoft.IdentityModel.AotCompatibility.TestApp.csprojto properly include net10.0 target frameworkSystemTextJsonVersionvariable:Microsoft.IdentityModel.Tokens.csprojMicrosoft.IdentityModel.Protocols.OpenIdConnect.csprojMicrosoft.IdentityModel.Protocols.SignedHttpRequest.csprojTesting
All test suites pass successfully on net10.0:
The few failing tests in other test suites are related to Windows BCrypt library usage on Linux, an existing limitation unrelated to .NET 10.
References
Fixes #3343
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.