Skip to content

feat(release): per-build prerelease lane + release-notes generator (RIG-2914) - #711

Open
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-native/rig-2914-release-rail
Open

feat(release): per-build prerelease lane + release-notes generator (RIG-2914)#711
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-native/rig-2914-release-rail

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

Stand up the keystone of the compass distribution rail (T1+T2 of the
frozen compass-release-bundling record): a per-build GitHub Release lane
and the release-body / nix-outputs manifest generator it consumes.

  • .github/workflows/release.yml: a separate contents: write-only
    workflow (NOT packages:write) that, on a binary-affecting push to main
    (go/**, versions/go.nix, self) or workflow_dispatch, builds the four
    binaries (compass/-server/-runner linux-amd64 + compass darwin-arm64,
    CGO-free, -trimpath, one -X main.version=0.1.0+g<sha12> stamp),
    writes SHA256SUMS, and cuts an idempotent build-<sha12> prerelease.
    No pull_request trigger and a main-ref guard keep fork-PR code away
    from the write token; concurrency serializes releases; the nix caches
    are named inline (no accept-flake-config); the fork skopeo and the
    language toolchains are provisioned from the pinned nix helpers.
  • tools/release-notes/: a bun/TS tool with a pure, unit-tested core
    (assemble, classifyImageResult, parseArgs) behind an
    import.meta.main edge. It queries GHCR for the image config digest
    (degrading to a recorded-absence line when the image lane has not
    published this sha) and records the nix build-output identity via
    nix path-info.

Acceptance note: the first real Release is minted by the first
qualifying main push AFTER this merges — a contents: write workflow
does not run on the PR event by design, so the absence of a Release on
this PR is expected, not a failure.

Refs RIG-2914
Refs RIG-1746
Ledger-impact: none (implements frozen record docs/designs/platform/compass-release-bundling.md §Plan T1/T2; no design-record edit)
Co-authored-by: Matt Wilkinson matt@rigel.build

…IG-2914)

Stand up the keystone of the compass distribution rail (T1+T2 of the
frozen compass-release-bundling record): a per-build GitHub Release lane
and the release-body / nix-outputs manifest generator it consumes.

- .github/workflows/release.yml: a separate `contents: write`-only
  workflow (NOT packages:write) that, on a binary-affecting push to main
  (go/**, versions/go.nix, self) or workflow_dispatch, builds the four
  binaries (compass/-server/-runner linux-amd64 + compass darwin-arm64,
  CGO-free, -trimpath, one `-X main.version=0.1.0+g<sha12>` stamp),
  writes SHA256SUMS, and cuts an idempotent `build-<sha12>` prerelease.
  No pull_request trigger and a main-ref guard keep fork-PR code away
  from the write token; concurrency serializes releases; the nix caches
  are named inline (no accept-flake-config); the fork skopeo and the
  language toolchains are provisioned from the pinned nix helpers.
- tools/release-notes/: a bun/TS tool with a pure, unit-tested core
  (`assemble`, `classifyImageResult`, `parseArgs`) behind an
  import.meta.main edge. It queries GHCR for the image config digest
  (degrading to a recorded-absence line when the image lane has not
  published this sha) and records the nix build-output identity via
  `nix path-info`.

Acceptance note: the first real Release is minted by the first
qualifying main push AFTER this merges — a `contents: write` workflow
does not run on the PR event by design, so the absence of a Release on
this PR is expected, not a failure.

Refs RIG-2914
Refs RIG-1746
Ledger-impact: none (implements frozen record docs/designs/platform/compass-release-bundling.md §Plan T1/T2; no design-record edit)
Co-authored-by: Matt Wilkinson <matt@rigel.build>
@linear-code

linear-code Bot commented Aug 28, 2026

Copy link
Copy Markdown

RIG-2914

RIG-1746

@github-actions

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-native-rig-2914-rele.compass-eng-docs.pages.dev

Deployed from compass-native/rig-2914-release-rail at 07987af.

@rigel-mintaka
rigel-mintaka marked this pull request as ready for review August 28, 2026 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant