From 8aeb0ab9e8c31bf66fea6dadecfd7941ecf7869e Mon Sep 17 00:00:00 2001 From: Rolling2405 <223556219+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 19:48:52 -0700 Subject: [PATCH 1/4] chore: bump test and sample projects from net6.0 to net10.0 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. --- samples/NetArchTest.SampleRules/NetArchTest.SampleRules.csproj | 2 +- .../NetArchTest.Rules.UnitTests.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/NetArchTest.SampleRules/NetArchTest.SampleRules.csproj b/samples/NetArchTest.SampleRules/NetArchTest.SampleRules.csproj index 003a474..c479842 100644 --- a/samples/NetArchTest.SampleRules/NetArchTest.SampleRules.csproj +++ b/samples/NetArchTest.SampleRules/NetArchTest.SampleRules.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net10.0 diff --git a/test/NetArchTest.Rules.UnitTests/NetArchTest.Rules.UnitTests.csproj b/test/NetArchTest.Rules.UnitTests/NetArchTest.Rules.UnitTests.csproj index 9b52abc..fad05c4 100644 --- a/test/NetArchTest.Rules.UnitTests/NetArchTest.Rules.UnitTests.csproj +++ b/test/NetArchTest.Rules.UnitTests/NetArchTest.Rules.UnitTests.csproj @@ -1,7 +1,7 @@  - net6.0 + net10.0 false From 23f6608d672b3ab16fc0514e1ee1234123b5b049 Mon Sep 17 00:00:00 2001 From: Rolling2405 <223556219+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 19:49:29 -0700 Subject: [PATCH 2/4] feat: add net10.0 target to NetArchTest.Rules 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. --- src/NetArchTest.Rules/NetArchTest.Rules.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NetArchTest.Rules/NetArchTest.Rules.csproj b/src/NetArchTest.Rules/NetArchTest.Rules.csproj index 84de02a..16fb347 100644 --- a/src/NetArchTest.Rules/NetArchTest.Rules.csproj +++ b/src/NetArchTest.Rules/NetArchTest.Rules.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + netstandard2.0;net10.0 1.3.2 Ben Morris NetArchTest From f012c74587522104e0e1c2e910f9f34bba1057ab Mon Sep 17 00:00:00 2001 From: Rolling2405 <223556219+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 19:49:54 -0700 Subject: [PATCH 3/4] chore: bump Mono.Cecil 0.11.5 -> 0.11.6 Picks up the most recent patch release of Mono.Cecil. No API surface changes; all 292 unit tests pass on both target frameworks. --- src/NetArchTest.Rules/NetArchTest.Rules.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NetArchTest.Rules/NetArchTest.Rules.csproj b/src/NetArchTest.Rules/NetArchTest.Rules.csproj index 16fb347..28c2768 100644 --- a/src/NetArchTest.Rules/NetArchTest.Rules.csproj +++ b/src/NetArchTest.Rules/NetArchTest.Rules.csproj @@ -19,7 +19,7 @@ - + From eca87322809799cdaf5809832f519e23ddde2701 Mon Sep 17 00:00:00 2001 From: Rolling2405 <89894749+Rolling2405@users.noreply.github.com> Date: Thu, 30 Apr 2026 20:10:27 -0700 Subject: [PATCH 4/4] ci: add GitHub Actions workflow for net10.0 build and test 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. --- .github/workflows/ci.yml | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7baa38a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,42 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build-and-test: + name: ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 10.0.x + + - name: Restore + run: dotnet restore "NetArchTest - all projects.sln" + + - name: Build (Release) + run: dotnet build "NetArchTest - all projects.sln" --configuration Release --no-restore + + - name: Test (net10.0) + run: dotnet test "NetArchTest - all projects.sln" --configuration Release --no-build --framework net10.0 --logger "trx;LogFileName=test-results.trx" --results-directory ./TestResults + + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: test-results-${{ matrix.os }} + path: ./TestResults/**/*.trx + if-no-files-found: ignore