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/.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/.github/copilot-instructions.md b/AGENTS.md similarity index 97% rename from .github/copilot-instructions.md rename to AGENTS.md index 572766a..b1b5976 100644 --- a/.github/copilot-instructions.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 dee0954..be10838 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ full output capture, and fail-fast error handling. It wraps `System.Diagnostics. dotnet add package Invex.Process ``` -The package targets `net8.0`, `net9.0`, and `net10.0`. It depends on +The package targets `net10.0`. It depends on `Microsoft.Extensions.DependencyInjection.Abstractions` and `Microsoft.Extensions.Hosting.Abstractions`, and logs through `ILogger`, so configure logging on your host (it is by default with `Host.CreateApplicationBuilder`). diff --git a/_atom/IBuild.cs b/_atom/IBuild.cs index 844a9ee..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)) { @@ -384,6 +379,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/docs/getting-started.md b/docs/getting-started.md index f6403a6..1222824 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -9,7 +9,7 @@ if you are adding `Invex.Process` to a host, tool or build for the first time. 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 e33ce2f..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 @@ -16,7 +16,7 @@ - +