0.2.0 - 2026-08-06
Release Notes
The release engine can now cut a multi-target, cross-channel release end to end — including
ossctl's own (two crates.io crates + cargo-dist binaries + a Homebrew tap).
Added
ossctl release listandossctl release abandon— inspect release runs (active and
past) and terminally mark an interrupted run un-resumable, over the event-sourced journal.
These back the "is a cut already in flight?" gate and interrupted-run recovery.
Changed
ossctl release cutnow drives a multi-target, cross-channel release end to end. A
contract with several publish targets across crates.io, cargo-dist binaries, and a Homebrew
tap cuts in one run:- Multiple targets in one ecosystem are published in dependency order (e.g.
ossctl-core
beforeossctl) instead of being rejected. - One plan target = one publish unit (ADR-0004): the cargo adapter publishes exactly its
own crate and waits for that crate's workspace dependencies to be index-visible first, so a
multi-crate cut never double-publishes a shared dependency during the crates.io index lag. - CI-delegated targets are skipped, not failed — a cargo-dist / gh-releases target whose
binaries are built by the tag-triggered CI workflow no longer traps the publish phase. - The GitHub Release is left to CI when a CI-delegated target is present, so the engine and
cargo-dist's workflow don't both try to create it. - Post-tag Homebrew phase fetches the tag archive, computes its real
sha256, and finalizes
the formula — no hand-filled hash.
- Multiple targets in one ecosystem are published in dependency order (e.g.
Fixed
- Cargo publishes are pinned to crates.io (
--registry crates-io) and reject any other
registry, preventing a silently misconfigured host from publishing to the wrong destination
while ossctl records a crates.io receipt.
Install ossctl 0.2.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jarimustonen/ossctl/releases/download/v0.2.0/ossctl-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/jarimustonen/ossctl/releases/download/v0.2.0/ossctl-installer.ps1 | iex"Download ossctl 0.2.0
| File | Platform | Checksum |
|---|---|---|
| ossctl-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ossctl-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| ossctl-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| ossctl-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo jarimustonen/ossctlYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>