From 36b9859b7640f10e4b031972265892da219dba4c Mon Sep 17 00:00:00 2001 From: Tom Walker Date: Tue, 22 Sep 2026 06:31:38 -0400 Subject: [PATCH 1/2] #31 doc changes from Cake6.3 update --- agent-context/README.md | 2 +- agent-context/context/architecture.md | 2 +- agent-context/context/build-and-release.md | 8 +++++--- agent-context/context/testing.md | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/agent-context/README.md b/agent-context/README.md index 99a8213..19d0e4b 100644 --- a/agent-context/README.md +++ b/agent-context/README.md @@ -22,4 +22,4 @@ Root `README.md` — package usage snippet, troubleshooting, build pipeline requ | `context/build-and-release.md` | `build.cake`, `build/`, `bootstrap.ps1`, `.github/workflows/`, `.config/dotnet-tools.json` | --- -*Last updated: 2026-09-20 | Verified against: 6b6c9cc* +*Last updated: 2026-09-22 | Verified against: bb6a64c* diff --git a/agent-context/context/architecture.md b/agent-context/context/architecture.md index e045362..5ec0bcf 100644 --- a/agent-context/context/architecture.md +++ b/agent-context/context/architecture.md @@ -52,4 +52,4 @@ Plain text, one glyph per line: ` ` (space-separated, exactly 2 Consuming projects reference the package with `OutputItemType="Analyzer"` and mark `.codepoints` files with build action `AdditionalFiles`. See root `README.md` for the exact snippet and troubleshooting steps. --- -*Last updated: 2026-09-20 | Verified against: 6b6c9cc* +*Last updated: 2026-09-22 | Verified against: bb6a64c* diff --git a/agent-context/context/build-and-release.md b/agent-context/context/build-and-release.md index 45ec94b..32c54de 100644 --- a/agent-context/context/build-and-release.md +++ b/agent-context/context/build-and-release.md @@ -1,14 +1,16 @@ # Build & Release ## Local build -`bootstrap.ps1` restores the `dotnet tool` manifest (`.config/dotnet-tools.json`, pins `cake.tool` 3.0.0) then runs `dotnet cake build.cake` twice (bootstrap pass, then real run), passing `buildNumber`, `branch`, `buildPath`, `gitHubApiKey`, `nuGetApiKey`. Checks `$LASTEXITCODE` after each step and exits non-zero on failure — `gitHubApiKey`/`nuGetApiKey` may be omitted for non-release builds (see below). +`bootstrap.ps1` restores the `dotnet tool` manifest (`.config/dotnet-tools.json`, pins `cake.tool` 6.3.0) then runs `dotnet cake build.cake` twice (bootstrap pass, then real run), passing `buildNumber`, `branch`, `buildPath`, `gitHubApiKey`, `nuGetApiKey`. Checks `$LASTEXITCODE` after each step and exits non-zero on failure — `gitHubApiKey`/`nuGetApiKey` may be omitted for non-release builds (see below). ## Cake pipeline (`build.cake` + `build/*.cake`) Tasks, in dependency order: `Clean` → `Build` → `Test` → `Publish` → `Default`. +`build.cake` builds a `BuildConfig` directly off Cake's `Argument()` calls (target, buildNumber, currentRelease, branch, buildPath, API keys, verbose, maxDegreeOfParallelism, currentVersion). `Cake.ArgumentBinder` was removed (#31) — `build/BuildConfig.cake` is now a plain POCO with no binding attributes. + | Script | Role | |---|---| -| `build/BuildConfig.cake` | CLI argument binding (`Cake.ArgumentBinder`) — target, buildNumber, branch, buildPath, API keys, verbose, maxDegreeOfParallelism, currentVersion | +| `build/BuildConfig.cake` | Plain POCO holding parsed CLI arguments — target, buildNumber, branch, buildPath, API keys, verbose, maxDegreeOfParallelism, currentVersion | | `build/BuildPaths.cake` | Resolves `output/`, `output/deploy/`, `output/deploy/test-results/`, `output/artifacts/` | | `build/Utilities.cake` | `GetVersion` (`{CurrentRelease}.{BuildNumber}`), `ParallelInvoke`, `FlushDns` | | `build/BuildOperations.cake` | `DoBuild` — parallel clean of Debug/Release, restore, `DotNetBuild` (Debug config) | @@ -32,4 +34,4 @@ AppVeyor is retired (`.appveyor.yml` removed). - Every release on `main` creates a `Release-{version}` GitHub tag/release with auto-generated notes, and publishes the same `.nupkg` to NuGet. --- -*Last updated: 2026-09-20 | Verified against: 6b6c9cc* +*Last updated: 2026-09-22 | Verified against: bb6a64c* diff --git a/agent-context/context/testing.md b/agent-context/context/testing.md index 3d9a7ac..3515492 100644 --- a/agent-context/context/testing.md +++ b/agent-context/context/testing.md @@ -26,4 +26,4 @@ xunit 2.9.3 in `CodePointEnumGenerator.Tests`, targets `net10.0` (generator itse Via Cake: `Task("Test")` in `build.cake` runs `dotnet test` (framework `net10.0`, `trx` logger) against every `*Tests.csproj`, in parallel (`build/TestOperations.cake`, `build/TestProject.cake`). Locally: `dotnet test` from repo root or the test project directly. --- -*Last updated: 2026-09-20 | Verified against: 6b6c9cc* +*Last updated: 2026-09-22 | Verified against: bb6a64c* From a3c9443f9b8f0d3123f1e6cec747abae11901d4b Mon Sep 17 00:00:00 2001 From: Tom Walker Date: Tue, 22 Sep 2026 06:36:40 -0400 Subject: [PATCH 2/2] #31 Additional details --- agent-context/context/build-and-release.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/agent-context/context/build-and-release.md b/agent-context/context/build-and-release.md index 32c54de..b11bbe1 100644 --- a/agent-context/context/build-and-release.md +++ b/agent-context/context/build-and-release.md @@ -22,9 +22,11 @@ Tasks, in dependency order: `Clean` → `Build` → `Test` → `Publish` → `De Version = `CurrentRelease` (default `1.0.1`) + `.` + `buildNumber` argument, unless `currentVersion` is overridden. ## CI (`.github/workflows/`) -Two GitHub Actions workflows, both `windows-latest` (Cake's `FlushDns` NuGet-publish workaround needs Windows), both ignore changes to `README.md` and `agent-context/**`: -- `ci.yml` — triggers on `pull_request` (any target) and `push` to `main`. Runs `dotnet tool restore` + both Cake steps directly (bypassing `bootstrap.ps1`, so a failed step fails the job natively). No secrets passed; `Publish` no-ops via `IsRelease(branch)`. -- `release.yml` — triggers on `push` to `main` only (no `pull_request`, no tags — avoids retriggering off the tag it creates). Same steps, plus `RELEASE_GITHUB_API_KEY`/`NUGET_API_KEY` repo secrets and `buildNumber=${{ github.run_number }}`. +Two GitHub Actions workflows, both `windows-latest` (Cake's `FlushDns` NuGet-publish workaround needs Windows): +- `ci.yml` — triggers on `pull_request` (any target, unfiltered — runs regardless of which paths changed) and `push` to `main` (filtered: `paths-ignore` skips `README.md` and `agent-context/**`). Runs `dotnet tool restore` + both Cake steps directly (bypassing `bootstrap.ps1`, so a failed step fails the job natively). No secrets passed; `Publish` no-ops via `IsRelease(branch)`. +- `release.yml` — triggers on `push` to `main` only (no `pull_request`, no tags — avoids retriggering off the tag it creates), filtered the same way (`paths-ignore`: `README.md`, `agent-context/**`) — a merge touching only those paths does not cut a release. Same steps, plus `RELEASE_GITHUB_API_KEY`/`NUGET_API_KEY` repo secrets and `buildNumber=${{ github.run_number }}`. + +`paths-ignore` is a per-trigger filter — attaching it under `push` does not exempt `pull_request`. Any PR runs `ci.yml` in full no matter what it touches; doc-only changes are only skipped once merged to `main` (both `ci.yml`'s push job and `release.yml`). AppVeyor is retired (`.appveyor.yml` removed).