Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Release engineering

Note

Project policy: draft. This page is the only home of Shiin’s release rules (ADR-0039).

Commits

Commits follow Conventional Commits 1.0.0. Release tooling generates changelogs from them.

Sign-offs

Every commit carries a Developer Certificate of Origin sign-off, which git commit -s adds.

Versions

Versions before 1.0 may contain breaking changes. After 1.0, patch, minor, and major versions follow semantic versioning.

Builds

The first alpha builds Linux and macOS archives, including a musl target configured for static linking. Windows remains covered by source-level CI; Windows path behavior and daemon transport are not qualified for an initial binary release.

Artifacts

Release archives have signed build-provenance attestations, SHA-256 checksums, and CycloneDX bills of materials. Platform code signing and notarization are not configured; a provenance attestation is separate from an operating system’s executable signature.

What is wired up today

The first published release is v0.1.0-alpha.1. Its tagged workflow publishes the CLI and Unix-daemon archives, installers, checksums, build provenance, and SBOMs. The candidate pipeline is exercised on pull requests before publication:

PieceState
dist-workspace.toml with five Unix targets and shell installersconfigured for CLI and daemon archives
release.yml, generated by dist and repaired by Rust automationcandidate archives are built on hosted pull-request runners
cargo xtask release-smoke <artifact-directory>checks archive checksums, extraction, executable versions, all three hook protocols, and audit verification
Build provenance through github-attestationsconfigured for release archives
CycloneDX bills of materialsgenerated and uploaded in the release workflow; sbom.yml is an optional manual JSON diagnostic
cargo auditable dependency metadataconfigured in dist
Publishing crates to a registrydeliberately not configured; every crate is publish = false until the naming decision in ADR-0003 is settled for a release

The dist configuration supports embedded dependency metadata, SBOMs, pinned actions, and pull-request artifact builds (verified 2026-10-18). After dist generate, run cargo xtask release-ci-fix. That command repairs the generated SBOM output reference and cache-action pin, adds archive qualification, and prevents superseded candidate builds from accumulating. Its check mode refuses unknown templates; CI runs cargo xtask release-ci-fix --check. Tag publication is never canceled by a newer pull-request candidate.

The alpha remains experimental. It does not declare milestone exit criteria complete, freeze a public API, or replace independent security review.

First-alpha qualification record

The candidate implementation at 53cc41d2ae81b20e8b9430b901af8edfc7e4f3df passed its hosted qualification on 2026-10-18:

These results qualify that revision; they do not certify later source changes or establish live-host behavior. The published tag points to merge commit 687836ae55d280e4492c34256f3be9cd044f6362, whose source tree matches the qualified final candidate da83b04. The tagged publication run builds and qualifies the release archives before publication. Human DCO certification and security-sensitive-change review remain human responsibilities; automation does not supply either certification.