Status: Active Owner: Maintainers Source of truth: this document for its stated scope Parent: CueLoop Documentation
Purpose: define how CueLoop versions releases and communicates compatibility changes.
CueLoop follows semantic versioning:
MAJOR: breaking CLI/config/behavior changesMINOR: backward-compatible featuresPATCH: backward-compatible fixes
- Public command behavior changes must be documented in:
CHANGELOG.md- relevant docs under
docs/
- Breaking changes require migration notes in release docs
- Config schema changes must keep validation/error messaging explicit
- Prefer explicit deprecation windows for user-facing commands/options
- Document deprecations in changelog before removal when feasible
- Remove dead/deprecated paths promptly once cutover is complete
Before tagging:
make agent-ci
make release-gate
make pre-public-checkRelease/versioning invariants:
VERSIONis the canonical source of truth.scripts/versioning.sh sync --version <x.y.z>is the only supported way to bump release metadata.make release-verify VERSION=<x.y.z>is the preferred preflight beforemake release.scripts/release.sh verify <x.y.z>is the publish-ready local snapshot step; it does not publish remotely, but it does prepare release metadata, artifacts, and notes.scripts/release.sh execute <x.y.z>is the only remote-publishing release entrypoint and must consume the verified snapshot.scripts/release.sh reconcile <x.y.z>is the only supported continuation path after a partial remote failure, and it should finish the GitHub release immediately once crates.io has already been published.- Verified release snapshots live under
target/release-verifications/v<version>/state.env. - Release transaction state lives under
target/release-transactions/v<version>/state.env. Cargo.lockis part of synchronized version metadata and must be committed with release bumps.scripts/release.shownstarget/release-artifacts/and clears stale tarballs before packaging.- Make targets automatically prefer the pinned toolchain from
rust-toolchain.tomlwhenrustupis available; use the rustup toolchain bin dir explicitly for direct script invocations if your shell resolves an olderrustc.