From 49acee411bd044d7eebe5f3aafc8a835a8f3e0f8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 13 Oct 2026 15:06:13 +0000 Subject: [PATCH 1/3] chore: pin Verify.NUnit to 32.x Verify 33 adds a maintenance-fee SponsorCheck that fails every test build with SC021. Stay on the latest 32.x and have Dependabot ignore Verify.NUnit major updates. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01WYyYZp6m6MVogVEYzqoEza --- .github/dependabot.yml | 3 +++ _atom/IBuild.cs | 10 ++++++++++ tests/Invex.Process.Tests/Invex.Process.Tests.csproj | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index afbdd26..b610111 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -16,6 +16,9 @@ updates: groups: nuget-deps: patterns: [ "*" ] + ignore: + - dependency-name: "Verify.NUnit" + update-types: [ version-update:semver-major ] open-pull-requests-limit: 10 registries: [ nuget ] target-branch: main diff --git a/_atom/IBuild.cs b/_atom/IBuild.cs index 844a9ee..92a97c7 100644 --- a/_atom/IBuild.cs +++ b/_atom/IBuild.cs @@ -384,6 +384,16 @@ await UnlistPrereleasesBelowVersionForPackages(NugetFeed, }, TargetBranch = "main", OpenPullRequestsLimit = 10, + Ignore = + [ + // Verify 33 adds a maintenance-fee SponsorCheck that fails test builds (SC021). + new() + { + DependencyName = "Verify.NUnit", + UpdateTypes = [SemverUpdateType.VersionUpdateSemverMajor], + Versions = null, + }, + ], }, ], }), diff --git a/tests/Invex.Process.Tests/Invex.Process.Tests.csproj b/tests/Invex.Process.Tests/Invex.Process.Tests.csproj index e33ce2f..7b494f4 100644 --- a/tests/Invex.Process.Tests/Invex.Process.Tests.csproj +++ b/tests/Invex.Process.Tests/Invex.Process.Tests.csproj @@ -16,7 +16,7 @@ - + From 26d257d9ca7077881026a5ec8a056038f879e94f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 13 Oct 2026 15:16:06 +0000 Subject: [PATCH 2/3] docs: move agent instructions to AGENTS.md Match the other Invex repos, which keep agent guidance in AGENTS.md. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01WYyYZp6m6MVogVEYzqoEza --- .github/copilot-instructions.md => AGENTS.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/copilot-instructions.md => AGENTS.md (100%) diff --git a/.github/copilot-instructions.md b/AGENTS.md similarity index 100% rename from .github/copilot-instructions.md rename to AGENTS.md From 9906896ad6051e78d0bf4211eb7ffab43cf85a33 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 13 Oct 2026 15:16:57 +0000 Subject: [PATCH 3/3] breaking: drop net8.0 and net9.0 targets .NET 8 and .NET 9 reach end of support on 2026-11-10. Target net10.0 only, run the test matrix on net10.0 only, and update the docs. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01WYyYZp6m6MVogVEYzqoEza --- .github/workflows/Build.yml | 12 +----------- .github/workflows/Validate.yml | 12 +----------- AGENTS.md | 8 ++++---- README.md | 2 +- _atom/IBuild.cs | 5 ----- docs/getting-started.md | 2 +- src/Invex.Process/Invex.Process.csproj | 2 +- tests/Invex.Process.Tests/Invex.Process.Tests.csproj | 2 +- 8 files changed, 10 insertions(+), 35 deletions(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 644c2d1..e556c9b 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - test-framework: [ net8.0, net9.0, net10.0 ] + test-framework: [ net10.0 ] steps: - name: Checkout @@ -75,16 +75,6 @@ jobs: with: dotnet-version: 10.0.x - - name: Setup .NET 8.0.x - uses: actions/setup-dotnet@v5 - with: - dotnet-version: 8.0.x - - - name: Setup .NET 9.0.x - uses: actions/setup-dotnet@v5 - with: - dotnet-version: 9.0.x - - name: TestProjects id: TestProjects run: dotnet run --project _atom/_atom.csproj -- TestProjects --skip --headless diff --git a/.github/workflows/Validate.yml b/.github/workflows/Validate.yml index 382df84..bb5809d 100644 --- a/.github/workflows/Validate.yml +++ b/.github/workflows/Validate.yml @@ -54,7 +54,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - test-framework: [ net8.0, net9.0, net10.0 ] + test-framework: [ net10.0 ] steps: - name: Checkout @@ -67,16 +67,6 @@ jobs: with: dotnet-version: 10.0.x - - name: Setup .NET 8.0.x - uses: actions/setup-dotnet@v5 - with: - dotnet-version: 8.0.x - - - name: Setup .NET 9.0.x - uses: actions/setup-dotnet@v5 - with: - dotnet-version: 9.0.x - - name: TestProjects id: TestProjects run: dotnet run --project _atom/_atom.csproj -- TestProjects --skip --headless diff --git a/AGENTS.md b/AGENTS.md index 572766a..b1b5976 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,4 @@ -# Copilot Instructions +# Agent Instructions Guidance for AI agents working in **Invex.Process** — a small, focused C# library for running external processes with first-class logging, real-time output streaming, full output capture, and @@ -8,8 +8,8 @@ fail-fast error handling. Keep changes focused and defer to the linked docs for | Project | Role | Target frameworks | |---------|------|-------------------| -| `Invex.Process` | The library: `IProcessRunner` / `ProcessRunner`, `ProcessRunOptions`, `ProcessRunResult`, `ProcessHostExtensions` | `net8.0;net9.0;net10.0` | -| `Invex.Process.Tests` | NUnit test suite, including a public API surface snapshot test | `net8.0;net9.0;net10.0` | +| `Invex.Process` | The library: `IProcessRunner` / `ProcessRunner`, `ProcessRunOptions`, `ProcessRunResult`, `ProcessHostExtensions` | `net10.0` | +| `Invex.Process.Tests` | NUnit test suite, including a public API surface snapshot test | `net10.0` | | `_atom` | Atom build definition (`IBuild.cs`) that generates the GitHub Actions workflows | `net10.0` | Sources live under `src/`, tests under `tests/`, the Atom build definition under `_atom/`, and the @@ -18,7 +18,7 @@ and `toc.yml`. ## Build & language specifics -- **.NET 10 SDK** is required. Library and test projects multi-target `net8.0;net9.0;net10.0`. +- **.NET 10 SDK** is required. Library and test projects target `net10.0`. - C# `LangVersion` 14, `ImplicitUsings` and `Nullable` enabled, `TreatWarningsAsErrors` on. - Global usings live in each project's `_usings.cs` — add shared usings there, not per-file. - `GenerateDocumentationFile` is on and `CS1591` is **enforced** in `src/` — every public type diff --git a/README.md b/README.md index b543fc0..1392759 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Register once with `AddProcessRunner()` and inject `IProcessRunner` anywhere. dotnet add package Invex.Process ``` -Targets `net8.0`, `net9.0`, and `net10.0`. +Targets `net10.0`. ## Getting started diff --git a/_atom/IBuild.cs b/_atom/IBuild.cs index 92a97c7..b3d849f 100644 --- a/_atom/IBuild.cs +++ b/_atom/IBuild.cs @@ -39,8 +39,6 @@ internal interface IBuild : IWorkflowBuildDefinition, static readonly string[] TestFrameworkNames = [ - WorkflowLabels.Dotnet.Framework.Net_8_0, - WorkflowLabels.Dotnet.Framework.Net_9_0, WorkflowLabels.Dotnet.Framework.Net_10_0, ]; @@ -215,8 +213,6 @@ await UnlistPrereleasesBelowVersionForPackages(NugetFeed, Options = [ BuildOptions.Target.SuppressArtifactPublishing, - BuildOptions.Steps.SetupDotnet.Dotnet80X(), - BuildOptions.Steps.SetupDotnet.Dotnet90X(), ], }, new(nameof(CheckPrForBreakingChanges)) @@ -272,7 +268,6 @@ await UnlistPrereleasesBelowVersionForPackages(NugetFeed, Values = TestFrameworkNames, }, ], - Options = [BuildOptions.Steps.SetupDotnet.Dotnet80X(), BuildOptions.Steps.SetupDotnet.Dotnet90X()], }, new(nameof(PushToNuget)) { diff --git a/docs/getting-started.md b/docs/getting-started.md index 14144f0..2c354dd 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -6,7 +6,7 @@ dotnet add package Invex.Process ``` -The package targets `net8.0`, `net9.0`, and `net10.0`. +The package targets `net10.0`. ## Register the service diff --git a/src/Invex.Process/Invex.Process.csproj b/src/Invex.Process/Invex.Process.csproj index ffb5933..15c3e3b 100644 --- a/src/Invex.Process/Invex.Process.csproj +++ b/src/Invex.Process/Invex.Process.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net10.0 diff --git a/tests/Invex.Process.Tests/Invex.Process.Tests.csproj b/tests/Invex.Process.Tests/Invex.Process.Tests.csproj index 7b494f4..0ff4324 100644 --- a/tests/Invex.Process.Tests/Invex.Process.Tests.csproj +++ b/tests/Invex.Process.Tests/Invex.Process.Tests.csproj @@ -1,7 +1,7 @@ - net10.0;net9.0;net8.0 + net10.0 false $(NoWarn);CS1591