Q+ 文档

Releasing

STATUS: v1.21.0-dev is a RELEASE CANDIDATE — NOT PUBLISHED, NOT UPLOADED, NOT PUSHED, NOT TAGGED. This document is the release runbook for the project. No publication action is authorized by this document; only the Maintainer can authorize publication, and only then may the steps in Part B be executed.

Part A — Candidate preparation (no publication)

A1. Scope freeze and versioning

A2. Clean build and anchors

A3. Independent acceptance G0–G7

Request an independent acceptance review (separate from the author of the change) covering:

The candidate ships only with a PASS acceptance report and a written non-claims list (see P0_RELEASE_CHECKLIST.md). A failure blocks the candidate.

A4. Release gate and pack assembly

A5. Maintainer decision gate (all required)

The Maintainer must decide, with the release manager's recommendation:

No publication action happens before this gate passes. The candidate remains NOT PUBLISHED until then.

Part B — Publication (only after explicit Maintainer authorization)

  1. Re-verify the archive checksum/size against the pack and run sha256sum -c on all published files; re-run GITHUB_READY checks.
  2. Create the public repository/visibility change and tag the candidate (pre-release tag recommended for -dev labels), only with written authorization.
  3. Create the release; upload the tar, .sha256, SHA256SUMS, release notes, and the non-claims summary. Upload editor artifacts only if the Maintainer approved them; do not publish to a Marketplace without a separate decision.
  4. Verify the downloaded artifacts (checksum, size), deploy the docs site, and verify the download page links.
  5. Announce only after all of the above, using the approved wording and the non-claims list; include the v1.1 deprecation advisory.
  6. Record release evidence (URLs, sha256, gate outputs, dates) and archive it per the retention policy.

Rollback / yank policy

If a published artifact is found defective after authorization: stop promotion, document the defect and affected versions, publish a corrected candidate through the same gate process, and — with Maintainer approval — mark the bad release as withdrawn/yanked in the hosting platform. Do not silently replace checksums or repack a frozen archive; publish a new version with a clear advisory.

Security and embargo

Security fixes follow SECURITY.md. If a defect is security-sensitive, coordinate privately, prepare the candidate and advisory, and publish only after the fix and advisory are ready and the Maintainer approves the disclosure timing.

Status rule

A version label (including -dev) is not a publication claim. Until the Maintainer authorizes publication and Part B completes, every copy must say NOT PUBLISHED (release candidate) and must not state or imply that a release exists, that editor components are published, or that any platform is supported.

← Q+ Hub