From eeba589da1c727a6b42a96aa22aa195454a9687c Mon Sep 17 00:00:00 2001 From: Theo Gravity Date: Sun, 3 May 2026 02:18:57 -0700 Subject: [PATCH] chore(ci): adopt monorel v0.14.0 and drop cache-priming workaround monorel v0.14.0 (https://github.com/disaresta-org/monorel/pull/57) ships the cacheseed fixpoint fix for issue #54, plus a built-in `primeModuleCache` step that populates the module cache for third-party deps before offline tidy runs. With those fixes upstream, this repo's local workarounds are redundant: - Bump the action pin from v0.11.0 to v0.14.0 in release-pr.yml and release.yml so the cacheseed wrong-h1: bug is fixed for our next release. Without this bump, the next chore(release) commit would ship broken go.sum entries for v2.x.y like v2.1.0 did. - Remove the "Prime module cache for monorel tidy" step from both workflows. monorel itself now does this internally per affected sub-module, filtering managed siblings out so the offline tidy that follows can resolve every transitive dep without needing the consumer to pre-warm the cache. Kept: - `actions/setup-go@v5` with go-version: '1.25' and cache: true. monorel still runs offline tidy with GOTOOLCHAIN=local, so the runner's Go must already match every sub-module's `go` directive. monorel v0.14.0 documents this requirement explicitly in the ci/github action README and in docs/src/workflows.md. - The `if: ... !startsWith(...) 'chore(release):'` filter on ci.yml jobs (added in PR #80). monorel doesn't auto-skip consumer CI workflows; the filter is the consumer's responsibility, and the pattern is now documented upstream. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/release-pr.yml | 19 +++++-------------- .github/workflows/release.yml | 19 +++++-------------- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index e529486..e73a702 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -33,25 +33,16 @@ jobs: with: fetch-depth: 0 - # The monorel CI action runs `go mod tidy` per sub-module with - # GOPROXY=off, so it can only resolve modules already in the local - # cache. Sub-modules also require Go 1.25, which the runner default - # doesn't supply. Install Go 1.25 with caching enabled, then prime - # the module cache via `go mod download` per module so monorel's - # GOPROXY=off tidy can find every transitive dep. + # monorel runs `go mod tidy` with GOTOOLCHAIN=local during release, + # so Go must already be installed at a version satisfying every + # released sub-module's `go` directive (every sub-module here is + # `go 1.25.0`). - uses: actions/setup-go@v5 with: go-version: '1.25' cache: true cache-dependency-path: '**/go.sum' - - name: Prime module cache for monorel tidy - run: | - set -euo pipefail - while IFS= read -r mod; do - (cd "$(dirname "$mod")" && go mod download) - done < <(find . -name go.mod -not -path './.git/*' | sort) - - - uses: disaresta-org/monorel/ci/github@v0.11.0 + - uses: disaresta-org/monorel/ci/github@v0.14.0 with: command: pr diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a2a4602..43a6682 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,26 +42,17 @@ jobs: with: fetch-depth: 0 - # The monorel CI action runs `go mod tidy` per sub-module with - # GOPROXY=off, so it can only resolve modules already in the local - # cache. Sub-modules also require Go 1.25, which the runner default - # doesn't supply. Install Go 1.25 with caching enabled, then prime - # the module cache via `go mod download` per module so monorel's - # GOPROXY=off tidy can find every transitive dep. + # monorel runs `go mod tidy` with GOTOOLCHAIN=local during release, + # so Go must already be installed at a version satisfying every + # released sub-module's `go` directive (every sub-module here is + # `go 1.25.0`). - uses: actions/setup-go@v5 with: go-version: '1.25' cache: true cache-dependency-path: '**/go.sum' - - name: Prime module cache for monorel tidy - run: | - set -euo pipefail - while IFS= read -r mod; do - (cd "$(dirname "$mod")" && go mod download) - done < <(find . -name go.mod -not -path './.git/*' | sort) - - - uses: disaresta-org/monorel/ci/github@v0.11.0 + - uses: disaresta-org/monorel/ci/github@v0.14.0 with: command: release