Skip to main content

release-process

Capsem's release process: orthogonal binary/profile CI, signing, notarization, channel deployment. Use for release commands, failures, manifests, or anything affecting what ships.

Quellinformationen

Repository
google/capsem
Letzte Quellaktivität
5. Oktober 2026 um 19:03
Erkannte Sprache von SKILL.md
Englisch
Sterne
79
Forks
15

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
9 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
release-process
description
Capsem's release process: orthogonal binary/profile CI, signing, notarization, channel deployment. Use for release commands, failures, manifests, or anything affecting what ships.
# Release Process ## Manifest handling Read the manifest model in `RELEASE.md`, then use `references/release-graph.md` for concrete paths, authoring tools, retirement, and verification mechanics. Do not infer a selection from ambient cache or workflow state while diagnosing a release. ## Release authority Read root [`RELEASE.md`](../../RELEASE.md) before changing release commands, manifests, workflows, test composition, artifact publication, or update behavior. This skill routes implementation work and preserves operational lessons; it does not restate product policy. ## Reference routing - Read `references/qualification-and-test-composition.md` before changing public release commands, source guards, sandbox/egress, execution-envelope or workflow/shell parity, test composition, artifact staging, `ProfileContent`, or `--force` (dirty outer checkout only; never the `just test` journal). - Read `references/lane-workflows.md` before changing channel locking, preview deployment, profile/binary ownership, nightly sequencing, staged activation, base-image materialization, or corporate authoring. - Read `references/release-graph.md` before changing graph generation, channel membership, manifest authoring, immutable identity, or public activation. - Read `references/installation-verification-and-retry.md` before changing evidence/integrity rules, native package acceptance, installed status, artifact retention, live validation, retry, diagnostic continuation, or Cloudflare deployment checks. - Read `references/ci-invariants.md` before editing release workflows, platform/toolchain/scanner setup, Docker/storage behavior, package rails, or hosted-runner capacity. It contains the hard-won parity lessons. - Read `references/apple-signing.md` before touching signing, notarization, certificates, Tauri keys, Apple agreements, or release CI secrets. - Read `references/post-release-verification.md` after any public deployment and before changing the public installer, transition, or glow-up proof. - Read `references/versions-and-commit-discipline.md` before changing release notes, binary/profile versions, compatibility bounds, profile revision advancement, release-set identities, or release commit practice. ## Operational entrypoints Use the public command forms defined by `RELEASE.md`: ```bash just release-binaries <channel> <source-commit> just release-profile <channel> <profile> <source-commit> ``` Do not dispatch downstream workflows or author source manifests by hand. **Run `just test <source-commit>` to success first**: both commands refuse a source without a complete, passing journal on this machine, because a hosted attempt takes hours to find what the local glow-up and functional lanes find in minutes. The hosted lane still qualifies what it publishes. Only the unattended nightly scheduler (`[release].unattended_channels`) is exempt, and release `--force` never waives the journal. Failed or interrupted runs never count; an approved `just test <commit> force "<reason>"` that passes does. The proof is matched by source identity, the Git tree (every tracked byte, lockfile, and submodule pin), so the intended flow is: fix on a branch, run `just test <branch-head>` there, then get it onto `main` one of two ways: 1. fast-forward `main` to the tested commit, and release that commit; or 2. merge the PR, and release the merge commit only when its tree equals the tested tree (`git rev-parse <merge>^{tree} <tested>^{tree}` prints one hash twice). A merge that brought in anything else has a different tree and is refused; test the merge commit itself. Use focused tests during ordinary development. The release commands and complete local test own their sandbox, egress, machine lock, journal, and teardown, so do not nest or wrap them. For failures, select the reference matching the affected boundary above. Diagnostic continuation, CI-only `--force`, graph retirement, signing, Cloudflare recovery, and installed transition checks all have narrower rules in those references. When a reference appears to change product behavior, reconcile it against `RELEASE.md` and the executable contract tests first. ## Tested operational handoffs Assets and materialized configuration travel as one `ProfileContent` root. Package construction, Debian proof, macOS Tart/physical-VZ proof, and final install/glow-up must derive both paths from that one value and validate it before Docker or Colima. Release CI stages raw manifest inputs into the paired root on the host; the sealed proof never rematerializes them or falls back to checkout `assets`/`cache/target/config` selectors. Linux package replacement embeds `deb-preinst.sh` as `DEBIAN/preinst`. Ordinary replacement uses `systemctl --user stop capsem.service` and retires the stale helper cohort before package replacement. When `/proc/self/cgroup` proves that the old service owns the update, preinstall preserves the old cohort and postinstall defers manifest hydration, status refresh, service registration, and readiness so that service can activate the verified candidate and request its managed restart. ## Version and commit essentials Read `references/versions-and-commit-discipline.md` for release-note, versioning, compatibility, and commit mechanics. Stage explicitly with a conventional subject and never stage release secrets.
Auf GitHub ansehen