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.

معلومات المصدر

المستودع
google/capsem
آخر نشاط في المصدر
٥ أكتوبر ٢٠٢٦ في ١٩:٠٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧٩
التفرعات
١٥

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
9 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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.
عرض على GitHub