Add net10.0 target and GitHub Actions CI workflow#158
Open
Rolling2405 wants to merge 4 commits intoBenMorris:masterfrom
Open
Add net10.0 target and GitHub Actions CI workflow#158Rolling2405 wants to merge 4 commits intoBenMorris:masterfrom
Rolling2405 wants to merge 4 commits intoBenMorris:masterfrom
Conversation
The .NET 6 TFM is out of support (NETSDK1138). Upgrading NetArchTest.SampleRules and NetArchTest.Rules.UnitTests to net10.0 clears the EOL warning and lets the test suite exercise the package on the current LTS runtime. All 292 unit tests pass on net10.0.
Multi-targets the package so consumers on .NET 10 receive a build compiled directly against the modern BCL while .NET Framework and older .NET Core users continue to consume the existing netstandard2.0 build unchanged. Existing TargetFramework: netstandard2.0 New: netstandard2.0;net10.0 This unlocks .NET 10-specific code paths in subsequent commits (AOT/trim-safety annotations, IsAotCompatible), and makes the package eligible to be referenced by AOT-published consumers.
Picks up the most recent patch release of Mono.Cecil. No API surface changes; all 292 unit tests pass on both target frameworks.
Adds a GitHub Actions CI workflow that complements the existing Azure DevOps pipeline. Runs on push and pull requests against master, builds the solution in Release on Ubuntu and Windows, and executes the full unit test suite (292 tests) against the net10.0 target. The library continues to multi-target netstandard2.0;net10.0; the test project targets net10.0 only, which is what runs in this workflow. The existing Azure DevOps build badge in README.md is preserved.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds .NET 10 support to NetArchTest and complements the existing Azure DevOps pipeline with a GitHub Actions CI workflow. It is intentionally scoped to TFM and CI only — no public API changes, no AOT/trim metadata, no behavioural changes.
Changes
chore: bump test and sample projects from net6.0 to net10.0Updates
NetArchTest.Rules.UnitTestsandNetArchTest.SampleRulesto targetnet10.0. The library itself continues to multi-target.feat: add net10.0 target to NetArchTest.RulesAdds
net10.0to<TargetFrameworks>, so the library is nownetstandard2.0;net10.0.netstandard2.0is preserved unchanged for downstream compatibility.chore: bump Mono.Cecil 0.11.5 -> 0.11.6Patch bump only.
0.11.6is a small bug-fix release with no API changes; this keeps Cecil current and avoids known issues on newer runtimes.ci: add GitHub Actions workflow for net10.0 build and testNew
.github/workflows/ci.ymlruns on push and PR againstmaster. Builds the solution in Release onubuntu-latestandwindows-latest, runs the full 292-test suite againstnet10.0, and uploads.trxresults. The existing Azure DevOps build pipeline and its README badge are preserved unchanged.Test coverage
The full existing unit test suite (292 tests) is exercised against the new
net10.0target on both Linux and Windows in the new workflow. Locally verified:The library builds clean on both
netstandard2.0andnet10.0targets with no new warnings.Notes
netstandard2.0is fully preserved.