Skip to content

docs(platform): design record — bundle nix outputs, images, binaries as GitHub Releases - #460

Open
rigel-mintaka wants to merge 2 commits into
mainfrom
compass/rig-1746-releases-bundling-design
Open

docs(platform): design record — bundle nix outputs, images, binaries as GitHub Releases#460
rigel-mintaka wants to merge 2 commits into
mainfrom
compass/rig-1746-releases-bundling-design

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Design record (no implementation) for a GitHub Releases bundling lane per Matt's directive. Resolves four forks: (1) surface = compass GHA (not the internal CD monorepo — in-repo GITHUB_TOKEN, public download point, artifacts are compass-built); (2) artifacts = per-arch binaries attached + image referenced by GHCR digest + nix-outputs narHash manifest (no multi-GB tarballs); (3) versioning = per-build build-<sha12> prereleases on qualifying main pushes + a v* semver lane; (4) auth = workflow GITHUB_TOKEN with contents: write, no PR triggers.

Matt's rulings folded in: OQ-1 (binary set — defer the desktop lane, RIG-2477), OQ-2 (RIG-2103 retargeted onto the T4 Release-asset cutover), OQ-3 (per-build trigger = every qualifying push, binary-affecting scope), and OQ-7 (the whole-product semver policy Fork 3 deferred — pre-GA 0.MINOR.PATCH → v1.0.0 at GA; manual bump now → release-please at GA; one whole-product version stamped into every binary, distinct from the wire-protocol interop axis; post-1.0 MAJOR = breaking user-facing contract). OQ-4/5/6 stay deferred (non-load-bearing).

Freezes on merge as the T1-T5 contract. A companion distribution/install record stacks on this branch as its publishing rail.

Spec-impact: none. Refs RIG-1746

Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Aug 21, 2026

Copy link
Copy Markdown

RIG-1746

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-rig-1746-releases-bu.compass-eng-docs.pages.dev

Deployed from compass/rig-1746-releases-bundling-design at d21e670.

Changed pages:

@rigel-mintaka
rigel-mintaka force-pushed the compass/rig-1746-releases-bundling-design branch 4 times, most recently from fb7a543 to 7b2ecff Compare August 22, 2026 13:32
rigel-mintaka added a commit that referenced this pull request Aug 24, 2026
…608)

Design record for how Compass reaches users' machines: the client app's
full per-OS matrix (Linux x86_64 tarball + macOS arm64 signed/notarized
.app-in-dmg), install channels (homebrew tap, nix flake, raw release
assets), the headless self-host stack's host-level KVM bring-up, and
postgres provisioned as a zero-config container (BYO-DSN opt-out).

Scope expansion of RIG-1746 ruled by Matt (2026-08-24). Composes with the
#460 release-bundling record as its publishing rail; does not redesign the
Release mechanism, only extends its Fork 2(i) asset boundary.

Status: Draft. Four load-bearing Open Questions carried for Matt at the
design-PR gate (Apple Developer account, postgres image mechanism,
DL-183 pgid-format-v2 for container teardown, darwin CI cadence). Ledger
rows DL-241..244 land in this PR at freeze once the OQs are ruled.

Ledger-impact: proposes DL-241..244 (client per-OS matrix, install
channels, host-KVM stack, postgres-as-container); rows land at freeze
after the load-bearing OQs are ruled. No status flips (DL-217 already
Superseded by DL-238).

Co-authored-by: Matt Wilkinson <matt@rigel.build>
…as GitHub Releases

Design record (no implementation) for a GitHub Releases bundling lane per Matt's directive. Resolves four forks: (1) surface = compass GHA (not orion Woodpecker — in-repo GITHUB_TOKEN, public download point, artifacts are compass-built); (2) artifacts = per-arch binaries attached + image referenced by GHCR digest + nix-outputs narHash manifest (no multi-GB tarballs); (3) versioning = per-build `build-<sha12>` prereleases on qualifying main pushes + a `v*` semver lane reserved for RIG-1746, with orion config-publish cutting over from `go install` to Release-asset download (retargets RIG-2103, pending ruling); (4) auth = workflow GITHUB_TOKEN with contents: write, no PR triggers.

Five Open Questions batched for Matt (binary-set boundary, RIG-2103 disposition, trigger breadth, closure attachment, prerelease retention).

Spec-impact: none. Refs RIG-1746

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass/rig-1746-releases-bundling-design branch from 7b2ecff to 8867ab5 Compare August 24, 2026 04:38
…ases record (RIG-1746)

Fork 3 explicitly deferred what vX.Y.Z *means* across the product (cadence,
changelog, what bumps major) to RIG-1746's own semver policy. Matt ruled that
policy (2026-08-24); this folds the ruling into the record as OQ-7 (RESOLVED),
parallel to the OQ-1/2/3 rulings, so the frozen contract carries the semver
policy the T3 tag lane implements.

OQ-7, four points (all grounded on main HEAD):
- Pre-GA 0.MINOR.PATCH (current 0.1.0 stamp, compass-stack/main.go:38); cut
  v1.0.0 at GA, when the MAJOR-gates-breaking-contract rule turns on.
- Bump: manual now (push vX.Y.Z, T3 rail cuts Release + :vX.Y.Z image);
  release-please conventional-commit automation at GA.
- One whole-product version stamped into every binary (main.go:36-38,232 —
  version feeds Deps.ExpectedVersion, attach-check hard-fails on skew; client
  and server strict same-version). DISTINCT from the wire-protocol interop axis
  (clientAPIVersion="compass.v1", compass-app/bridge_service.go:467; server
  apiVersion, compass-server/main.go:33).
- Post-1.0: MAJOR = breaking user-facing contract (CLI/flags, operator
  config+DSN+stack layout, or wire protocol); MINOR = compatible features;
  PATCH = fixes.

Refs RIG-1746

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass/rig-1746-releases-bundling-design branch from 8867ab5 to d21e670 Compare August 24, 2026 04:46
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