clusterflux-public/docs/releases.md
Clusterflux release 2927ca6912 Public release release-ce2d9c9dc397
Source commit: ce2d9c9dc3979543dd4e40b29e7fba2d55cc8633

Public tree identity: sha256:168e259dfbcbf75b34d46c1c641fd448e474550988c1d2eda802826bf103c0bc
2026-07-19 13:31:53 +02:00

1.5 KiB

Release candidates

Clusterflux release binaries are built once. The public client/node archive and the private-source hosted-service archive are both digest-bound to the same candidate. The hosted archive is deployed, the strict production-shaped batch uses the public archive against it, and finalization copies both archives without rebuilding.

Create the candidate in a dedicated directory:

CLUSTERFLUX_PUBLIC_RELEASE_DIR=target/release-candidate \
CLUSTERFLUX_ALLOW_INCOMPLETE_RELEASE_EVIDENCE=1 \
./scripts/prepare-public-release.js

Deploy target/release-candidate/assets/clusterflux-public-binaries-*.tar.gz. Set CLUSTERFLUX_PUBLIC_RELEASE_MANIFEST to the candidate manifest while running the strict batch. Set CLUSTERFLUX_QUALITY_GATE_EVIDENCE_PATH to the JSON record from the private and public acceptance commands. The result records the source commit, source-tree and public-tree identities, candidate binary digests, deployment generation, and configuration identity.

Finalize into a different directory after the strict result passes:

CLUSTERFLUX_PUBLIC_RELEASE_DIR=target/public-release \
CLUSTERFLUX_RELEASE_CANDIDATE_MANIFEST=target/release-candidate/public-release-manifest.json \
CLUSTERFLUX_FINAL_RESULT_PATH=target/acceptance/cli-happy-path-live.json \
./scripts/prepare-public-release.js

Finalization rejects a changed commit, source tree, public tree, candidate archive, binary digest set, deployment binding, or strict result. It never runs the release binary build when a candidate manifest is supplied.