-
Notifications
You must be signed in to change notification settings - Fork 1
V9.0.0/net9rc1 support #3
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
WalkthroughThe changes primarily involve updating various project files to support .NET 9.0, including modifications to target frameworks, package dependencies, and configuration settings. Key updates include the removal of .NET 6 support, enhancements to the validation logic in specific classes, and adjustments to the GitHub Actions workflow for building and testing. Additionally, release notes and changelogs have been updated to reflect these changes, ensuring that the documentation aligns with the new versioning and compatibility. Changes
Possibly related PRs
Poem
Recent review detailsConfiguration used: CodeRabbit UI Files selected for processing (1)
Files skipped from review as they are similar to previous changes (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3 +/- ##
==========================================
+ Coverage 74.84% 74.89% +0.05%
==========================================
Files 26 26
Lines 493 494 +1
Branches 42 42
==========================================
+ Hits 369 370 +1
Misses 120 120
Partials 4 4 ☔ View full report in Codecov by Sentry. |
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.
Actionable comments posted: 1
Outside diff range and nitpick comments (3)
testenvironments.json (1)
12-12: Update aligns with .NET 9.0 support, but exercise caution with the release candidate version.This Docker image update is a significant step towards supporting .NET 9.0, which aligns with the overall objective of this PR. However, please note that the image currently includes a release candidate (RC) version of .NET 9.0, which may have some instability or unresolved issues.
Recommendations:
- Thoroughly test the application and its dependencies within this updated Docker environment to identify any potential breaking changes or compatibility issues introduced by the .NET version updates.
- Once .NET 9.0 is officially released, consider updating the image to use the stable version instead of the release candidate.
- If .NET 6.0 and .NET 8.0 are no longer needed after the .NET 9.0 update, consider removing them from the image to reduce the image size and potential attack surface.
src/Codebelt.Extensions.Xunit.Hosting/Codebelt.Extensions.Xunit.Hosting.csproj (1)
Line range hint
1-50: Update documentation and release notes.The removal of the
<ItemGroup>for .NET 6 aligns with the PR objective of deprecating support for that framework version. This change is justified given that the project now supports the latest framework version (.NET 9).However, please ensure that the documentation and release notes are updated to reflect the deprecation of .NET 6 support, so that users are aware of this change.
CHANGELOG.md (1)
10-13: Changelog entry looks good! Consider adding a comma for better readability.The new changelog entry for version 9.0.0 is a great addition. It clearly communicates the focus on ensuring compatibility with the final release of .NET 9.
To improve readability, consider adding a comma before "so" to connect the two independent clauses, as suggested by the static analysis hint:
-This major release is first and foremost focused on ironing out any wrinkles that have been introduced with .NET 9 preview releases so the final release is production ready together with the official launch from Microsoft. +This major release is first and foremost focused on ironing out any wrinkles that have been introduced with .NET 9 preview releases, so the final release is production ready together with the official launch from Microsoft.Tools
LanguageTool
[uncategorized] ~12-~12: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... introduced with .NET 9 preview releases so the final release is production ready t...(COMMA_COMPOUND_SENTENCE_2)
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (16)
- .github/workflows/pipelines.yml (1 hunks)
- .nuget/Codebelt.Extensions.Xunit.App/PackageReleaseNotes.txt (1 hunks)
- .nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/PackageReleaseNotes.txt (1 hunks)
- .nuget/Codebelt.Extensions.Xunit.Hosting/PackageReleaseNotes.txt (1 hunks)
- .nuget/Codebelt.Extensions.Xunit/PackageReleaseNotes.txt (1 hunks)
- CHANGELOG.md (1 hunks)
- Directory.Build.props (3 hunks)
- README.md (1 hunks)
- src/Codebelt.Extensions.Xunit.App/Codebelt.Extensions.Xunit.App.csproj (1 hunks)
- src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/AspNetCoreHostFixture.cs (2 hunks)
- src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj (2 hunks)
- src/Codebelt.Extensions.Xunit.Hosting/Codebelt.Extensions.Xunit.Hosting.csproj (1 hunks)
- src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs (2 hunks)
- src/Codebelt.Extensions.Xunit/Codebelt.Extensions.Xunit.csproj (1 hunks)
- test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj (1 hunks)
- testenvironments.json (1 hunks)
Files skipped from review due to trivial changes (1)
- README.md
Additional context used
LanguageTool
CHANGELOG.md
[uncategorized] ~12-~12: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... introduced with .NET 9 preview releases so the final release is production ready t...(COMMA_COMPOUND_SENTENCE_2)
Additional comments not posted (26)
test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj (3)
4-4: Breaking change: .NET 6.0 support has been removed.The update to the target frameworks is a breaking change as it removes support for .NET 6.0. This is a necessary step to move the project forward and leverage the latest features and improvements in .NET 9.0.
Please ensure that:
- The documentation is updated to reflect this change.
- The breaking change is communicated to existing consumers of this project who might still be on .NET 6.0, as they will need to upgrade their framework version.
9-9: Using a preview version of theCuemon.AspNetCorepackage.The update to the
Cuemon.AspNetCorepackage reference is necessary to align with the .NET 9.0 upgrade. However, please note that9.0.0-preview.5is a preview version, which might be less stable and could contain bugs or breaking changes.Please monitor the package closely for any issues or breaking changes as it progresses towards a stable release. Be prepared to update to the stable version once it becomes available.
10-10: Using a preview version of theCuemon.Extensions.IOpackage.The update to the
Cuemon.Extensions.IOpackage reference is necessary to align with the .NET 9.0 upgrade. However, please note that9.0.0-preview.5is a preview version, which might be less stable and could contain bugs or breaking changes.Please monitor the package closely for any issues or breaking changes as it progresses towards a stable release. Be prepared to update to the stable version once it becomes available.
src/Codebelt.Extensions.Xunit/Codebelt.Extensions.Xunit.csproj (1)
13-13: Verify compatibility and stability of the pre-release package version.The update to the
Cuemon.Corepackage version aligns with the PR objective of supporting .NET 9.0. However, please note that9.0.0-preview.5is a pre-release version, which could potentially introduce instability or breaking changes.Ensure that the updated package version is thoroughly tested for compatibility and stability within the context of this project before merging the changes to production.
src/Codebelt.Extensions.Xunit.App/Codebelt.Extensions.Xunit.App.csproj (1)
4-4: LGTM!The target frameworks have been correctly updated to include .NET 9.0 and remove .NET 6.0, aligning with the PR objective of updating the project to support .NET 9.0 and deprecating .NET 6.0.
.nuget/Codebelt.Extensions.Xunit.App/PackageReleaseNotes.txt (2)
1-2: LGTM!The version and availability updates align with the PR objective of updating the project to support .NET 9.0 while deprecating support for .NET 6.0.
6-6: Verify the removal of .NET 6 support.Removing support for .NET 6 aligns with the PR objective of deprecating support for .NET 6.0. Please ensure that all references to .NET 6 have been removed from the project files and documentation.
Run the following script to verify the removal of .NET 6 support:
src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj (4)
4-4: LGTM!The change in target frameworks aligns with the PR objective of updating the project to support .NET 9.0 while deprecating support for .NET 6.0.
18-19: LGTM!The addition of a specific package reference for
Microsoft.AspNetCore.TestHosttargeting .NET 9.0 aligns with the PR objective of updating package dependencies to support .NET 9.0.
22-23: LGTM!Updating the package reference for
Microsoft.AspNetCore.TestHostto version8.0.8for .NET 8.0 ensures compatibility while aligning with the removal of .NET 6.0 support.
27-28: LGTM!Updating the package references for
Cuemon.Extensions.DependencyInjectionandCuemon.IOto version9.0.0-preview.5enhances compatibility with .NET 9.0 and potentially brings new features or improvements from the referenced packages..nuget/Codebelt.Extensions.Xunit/PackageReleaseNotes.txt (2)
1-2: LGTM!The version and availability changes align with the PR objectives of updating the project to support .NET 9.0 and deprecating support for .NET 6.0.
4-6: LGTM!Updating the dependencies to the latest versions and removing support for .NET 6 (LTS) aligns with the PR objectives and is a good practice.
.nuget/Codebelt.Extensions.Xunit.Hosting/PackageReleaseNotes.txt (2)
1-2: LGTM!The version and availability updates align with the PR objective of adding .NET 9 support and removing .NET 6 support.
4-6: LGTM!Updating the dependencies to the latest versions and removing support for .NET 6 aligns with the PR objectives and is a good practice.
src/Codebelt.Extensions.Xunit.Hosting/Codebelt.Extensions.Xunit.Hosting.csproj (1)
13-19: LGTM!The addition of the new
<ItemGroup>for .NET 9 is a welcome change that allows the project to support the latest framework version. The package references and versions are consistent with the existing<ItemGroup>for .NET 8, indicating a smooth transition to the new framework version..nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/PackageReleaseNotes.txt (2)
1-3: LGTM!The version number and availability are consistent with the PR objectives and AI-generated summary. The formatting looks good as well.
4-6: Verify the impact of removing .NET 6 (LTS) support.The changes to update dependencies and remove support for .NET 6 (LTS) are consistent with the PR objectives and AI-generated summary.
However, removing support for .NET 6 (LTS) is a significant change that may impact users who are still relying on it. Please consider verifying the impact of this change on the user base and providing migration guidance if necessary.
To verify the impact, you can run the following script to search for .NET 6 usage in the codebase and dependent projects:
If the script finds any usage of .NET 6, it indicates that there might be a significant impact on the user base, and migration guidance should be provided.
Verification successful
Removal of .NET 6 (LTS) support is consistent with the codebase
The verification process confirms that the removal of .NET 6 (LTS) support, as mentioned in the release notes, is consistent with the current state of the codebase. The project files show that the supported target frameworks are .NET 8 and .NET 9.
To ensure a smooth transition for users:
- Consider adding a migration guide in the documentation for users still on .NET 6, outlining the steps to upgrade to .NET 8 or 9.
- Update any relevant documentation to clearly state the currently supported .NET versions (8 and 9).
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for .NET 6 usage in the codebase echo "Searching for .NET 6 usage in the codebase..." rg --type-add project:*.csproj --type-add props:*.props --type project -e "net6\." -e "netcoreapp6\." # Search for .NET 6 usage in dependent projects echo "Searching for .NET 6 usage in dependent projects..." rg --type-add sln:*.sln --type sln -e "net6\." -e "netcoreapp6\."Length of output: 391
Script:
#!/bin/bash # Check for the existence of relevant file types echo "Checking for .csproj, .props, and .sln files..." fd -e csproj -e props -e sln # Perform a broader search for .NET version references echo "Searching for .NET version references..." rg -i "targetframework.*net\d+" --type-add project:*.csproj --type-add props:*.props --type project # Verify the functionality of the rg command echo "Verifying rg functionality..." rg --version rg "Codebelt\.Extensions\.Xunit\.Hosting\.AspNetCore" --type-add txt:*.txt --type txtLength of output: 2424
Directory.Build.props (4)
18-18: LGTM!The changes to the
TargetFrameworksproperty for non-test projects align with the PR objective of updating the project to support .NET 9.0 and deprecate .NET 6.0. The addition of .NET Standard 2.0 as a target framework is also a good move to improve compatibility with other .NET Standard compliant libraries.
41-41: LGTM!The correction of the
RepositoryUrlattribute to point to the correct repository URL is important for proper package resolution and source linking. Good catch!
52-52: LGTM!The changes to the
TargetFrameworksproperty for test projects on Linux align with the PR objective of updating the project to support .NET 9.0 and deprecate .NET 6.0. Updating the target frameworks for test projects is important to ensure that the tests are run against the supported frameworks.
56-56: LGTM!The changes to the
TargetFrameworksproperty for test projects on Windows align with the PR objective of updating the project to support .NET 9.0 and deprecate .NET 6.0. Updating the target frameworks for test projects is important to ensure that the tests are run against the supported frameworks. Retaining the .NET Framework 4.8 target is also a good move to ensure backward compatibility for test projects on Windows.src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/AspNetCoreHostFixture.cs (2)
5-5: LGTM!The using directive is correctly added to import types from the
Cuemon.Collections.Genericnamespace.
44-44: Verify the method usage in the codebase.The change to the validation logic in the
ConfigureHostmethod looks good. It enhances the flexibility of the type validation by allowing for a more dynamic approach to type checking.Ensure that all calls to the
ConfigureHostmethod pass the correct type ofhostTestparameter that is assignable fromAspNetCoreHostTest<>.Run the following script to verify the method usage:
Verification successful
ConfigureHost method usage is correct and consistent
After analyzing the codebase, I can confirm that the usage of the
ConfigureHostmethod is correct and consistent throughout the project. The changes made to the validation logic inAspNetCoreHostFixture.csare properly implemented, and all calls to the method pass the correct type ofhostTestparameter.Key observations:
- The
ConfigureHostmethod is correctly implemented inAspNetCoreHostFixture.csusing the new validation logic withArguments.ToArrayOf.- All calls to
ConfigureHostare made withthisas the argument, ensuring type consistency.- The type validation logic is consistent across both
HostFixtureandAspNetCoreHostFixture, using the same pattern but with appropriate type checks for their respective contexts.No issues were found with the usage of the
ConfigureHostmethod in the codebase.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all calls to `ConfigureHost` method pass the correct type of `hostTest` parameter. # Test: Search for the method usage. Expect: Only occurrences with `AspNetCoreHostTest<>` type. rg --type cs -A 5 $'ConfigureHost'Length of output: 13432
src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs (1)
39-39: LGTM! The updated validation logic enhances maintainability.The change from using a hardcoded string literal to dynamically generating the expected type array using
Arguments.ToArrayOf(typeof(HostTest<>))is a positive improvement. It enhances the flexibility and maintainability of the code by avoiding hardcoded type strings.The updated validation logic aligns with the best practices of using strongly-typed validation and avoiding hardcoded strings. It allows for easier updates in the future if the expected type needs to be modified.
Overall, the change improves the robustness and maintainability of the validation logic without introducing any breaking changes or compatibility issues.
.github/workflows/pipelines.yml (1)
29-29: LGTM!The change to update the target framework matrix to include
net9.0and removenet6.0aligns with the PR objective to update the project to support .NET 9.0 while deprecating support for .NET 6.0. The change is localized to the build job and does not affect other parts of the workflow.
| Availability: .NET 9 and .NET 8 | ||
|
|
||
| # ALM | ||
| - CHANGED Dependencies to latest and greatest with respect to TFMs |
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.
Tip
Codebase Verification
Update outdated package references and remove legacy framework support.
The dependency updates are mostly correct for .NET 8 and 9, but there are some issues that need attention:
-
Update the following xUnit-related packages to their latest stable versions:
- Xunit.Priority (currently 1.1.6)
- xunit.extensibility.core (currently 2.9.0)
- xunit.assert (currently 2.9.0)
- xunit.abstractions (currently 2.0.3)
-
Remove or update the project using very old Microsoft.Extensions.* packages (version 2.1.1). This appears to be targeting an outdated framework (netstandard2.0) which is not compatible with .NET 8 or 9.
-
Ensure all projects are targeting only .NET 8 and/or .NET 9, removing any references to older frameworks.
Please make these updates to ensure full compatibility with .NET 8 and 9, and to take advantage of the latest features and bug fixes in the xUnit packages.
Analysis chain
Verify the dependency updates.
Updating the dependencies to align with the new TFMs is a necessary step when transitioning to a new .NET version. Please ensure that all the dependencies have been updated to the latest versions compatible with .NET 9 and .NET 8.
Run the following script to verify the dependency updates:
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify that all the dependencies have been updated to the latest versions compatible with .NET 9 and .NET 8.
# Test: Search for outdated dependencies in the project files. Expect: No results.
rg --type csproj $'<PackageReference Include=".+" Version="[0-8]\.'
Length of output: 99
Script:
#!/bin/bash
# Description: Find .csproj files and search for potentially outdated package references
# Find .csproj files and search for package references with versions < 9
fd -e csproj -x rg -i '<PackageReference Include=".+" Version="[0-8]\.' {}
# Additionally, let's check the contents of the .csproj files to see the target frameworks
fd -e csproj -x cat {}
Length of output: 8704
|



PR Classification
Deprecation and framework update to support .NET 9.0.
PR Summary
This PR updates the project to support .NET 9.0 and removes support for .NET 6.0, including necessary changes to CI pipeline, project files, and documentation.
pipelines.yml: Updated to use .NET 9.0 and removed .NET 6.0 support.Directory.Build.propsand project files (.csproj): Target .NET 9.0 and updated package references.README.mdandPackageReleaseNotes.txt: Updated for .NET 9.0 readiness and improved formatting.AspNetCoreHostFixture.csandHostFixture.cs: Updated type validation method.testenvironments.json: Included new Docker image for .NET 9.0.Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Chores