Skip to content

Add net10.0 target and GitHub Actions CI workflow#158

Open
Rolling2405 wants to merge 4 commits intoBenMorris:masterfrom
Rolling2405:feat/net10-and-ci
Open

Add net10.0 target and GitHub Actions CI workflow#158
Rolling2405 wants to merge 4 commits intoBenMorris:masterfrom
Rolling2405:feat/net10-and-ci

Conversation

@Rolling2405
Copy link
Copy Markdown

@Rolling2405 Rolling2405 commented May 1, 2026

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.0
    Updates NetArchTest.Rules.UnitTests and NetArchTest.SampleRules to target net10.0. The library itself continues to multi-target.

  • feat: add net10.0 target to NetArchTest.Rules
    Adds net10.0 to <TargetFrameworks>, so the library is now netstandard2.0;net10.0. netstandard2.0 is preserved unchanged for downstream compatibility.

  • chore: bump Mono.Cecil 0.11.5 -> 0.11.6
    Patch bump only. 0.11.6 is 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 test
    New .github/workflows/ci.yml runs on push and PR against master. Builds the solution in Release on ubuntu-latest and windows-latest, runs the full 292-test suite against net10.0, and uploads .trx results. 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.0 target on both Linux and Windows in the new workflow. Locally verified:

Passed!  - Failed:     0, Passed:   292, Skipped:     0, Total:   292 - NetArchTest.Rules.UnitTests.dll (net10.0)

The library builds clean on both netstandard2.0 and net10.0 targets with no new warnings.

Notes

  • This PR introduces no public API changes and no behavioural changes.
  • netstandard2.0 is fully preserved.
  • The Azure DevOps pipeline is left in place; the new GitHub Actions workflow is additive.
  • Happy to adjust the workflow (matrix, triggers, naming) to whatever you prefer.

Copilot AI and others added 4 commits April 30, 2026 19:48
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants