docs: document the release and install pipeline - #867
Conversation
Add docs/internal/release-pipeline.md, a maintainer-facing runbook for the release/install pipeline: release.yml, the stable/unstable/nightly channels, staging, promotion, pruning, and the operator steps. Marked internal (publicly visible in the repo, not published to the docs site). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
Comment |
…in release-pipeline.md (#900) Co-authored-by: macroscopeapp[bot] <170038800+macroscopeapp[bot]@users.noreply.github.com>
The reference-docs promotion dispatch named the docs-site repo and its GitHub App. That repo is private, so this public repo should not announce it, and the promote pipeline is being reshaped besides. Describe the `reference-docs-promoted` dispatch abstractly (it triggers a docs.minimal.dev rebuild) without naming the target repo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| workflow's approver allowlist (the initiating user is excluded) comments | ||
| `approved` / `denied`; closing the issue without approval counts as denial. | ||
|
|
||
| **nightly-provenance gate.** Before flipping the pointer, the `promote` job |
There was a problem hiding this comment.
🟡 Medium internal/release-pipeline.md:105
The nightly-provenance gate does not actually guarantee that a version completed the smoke suite. verify-nightly-provenance.sh accepts any successful nightly.yml run at the SHA, including a no-op run where the check job found an already-staged version and all release/smoke jobs were skipped — so a manually dispatched or tag-staged version can later pass this gate without ever running smoke tests. This contradicts the claim on lines 108–112 that such builds are rejected and stable only receives fully smoked versions. Either tighten the provenance check to require the smoke jobs to have actually run (not just the workflow to have succeeded), or correct the documentation to state that the gate only confirms nightly.yml reported success, not that smoke tests executed.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @docs/internal/release-pipeline.md around line 105:
The nightly-provenance gate does not actually guarantee that a version completed the smoke suite. `verify-nightly-provenance.sh` accepts any successful `nightly.yml` run at the SHA, including a no-op run where the `check` job found an already-staged version and all release/smoke jobs were skipped — so a manually dispatched or tag-staged version can later pass this gate without ever running smoke tests. This contradicts the claim on lines 108–112 that such builds are rejected and stable only receives fully smoked versions. Either tighten the provenance check to require the smoke jobs to have actually run (not just the workflow to have succeeded), or correct the documentation to state that the gate only confirms `nightly.yml` reported success, not that smoke tests executed.
There was a problem hiding this comment.
fix it for me
we should tighten the provenance
There was a problem hiding this comment.
I'm working on tightening the provenance check. The fix will modify verify-nightly-provenance.sh to verify that the smoke-success job actually ran and succeeded (not just that the workflow completed), ensuring only fully smoke-tested versions can be promoted to stable.
There was a problem hiding this comment.
Added smoke-success job verification to scripts/verify-nightly-provenance.sh. After finding a matching nightly run, the script now queries the jobs endpoint and verifies the smoke-success aggregator job has conclusion == "success" (not "skipped"), ensuring promoted versions actually completed the smoke test suite. Updated tests cover skipped, missing, failed, and cancelled smoke-success scenarios.
Commit 4c8a03f pushed to #911. When checks pass, it will merge automatically into this PR.
…heck (#911) Co-authored-by: macroscopeapp[bot] <170038800+macroscopeapp[bot]@users.noreply.github.com>
smoke-success is if: always() and skip-tolerant, so a no-op nightly run (SHA already staged, smokes skipped) still concluded success and could vouch for a version that was never smoked. The gate now also requires the Linux smoke jobs themselves to have run and passed; smoke-macos alone may be skipped by the RUN_MACOS_CI kill-switch. Test fixtures move to name/conclusion pairs and cover the real no-op shape and the kill-switch shape (31 tests). The runbook text now states the guarantee precisely, drops the unsourced retirement claim, and documents the channel-endpoint target override. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds
docs/internal/release-pipeline.md— the maintainer-facing release/install pipeline runbook. Originally part of #858; pulled out to land on its own.What
A single internal doc covering
release.yml, the stable/unstable/nightly channels, staging, promotion (approval gate + nightly-provenance check +override_provenance), pruning, and the operator runbook. Marked internal (publicly visible in the repo, not published to a docs site).Verification
main(scripts/*.sh,.github/workflows/*.yml,docs/ci-strategy.md).reference-docs-promotedpromotion dispatch is described abstractly (it rebuilds docs.minimal.dev) rather than naming the private docs-site repo.Note
The
docs/internal/README.mdindex row for this doc lives in #858; once both land, that index should regain arelease-pipeline.mdrow.🤖 Generated with Claude Code
Note
Document the release pipeline and strengthen nightly provenance verification
release.yml,nightly.yml,promote.yml,prune-releases.yml, the curl|sh installer behavior, and an operational runbook.smoke-successaggregator job with conclusionsuccess, plus bothsmoke-linux-amd64andsmoke-linux-kvmjobs concludedsuccess; no-op runs where smokes were skipped are now rejected.Macroscope summarized 729a12f.