Releases: Cobrust-lang/cobrust
Cobrust v0.6.0
Installation
v0.6.0 adopts the FHS-ish bin/lib/share wheel layout per
ADR-0069. Tarballs extract to a single self-contained
cobrust-v0.6.0/ directory.
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cliOption B — prebuilt wheel (no Rust needed; v0.6.0 layout)
Pick the tarball for your platform + CPU level, extract to a
stable location, and symlink the cobrust binary into your
$PATH. The runtime + stdlib live in lib/ + share/
siblings; do NOT move the binary out of its bin/ directory.
# macOS Apple Silicon M1 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-aarch64-apple-darwin-m1.tar.gz | tar xz -C $HOME/.local/
ln -sf $HOME/.local/cobrust-v0.6.0/bin/cobrust $HOME/.local/bin/cobrust
# Linux x86_64 — glibc baseline (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-x86_64-unknown-linux-gnu-v1.tar.gz | tar xz -C $HOME/.local/
ln -sf $HOME/.local/cobrust-v0.6.0/bin/cobrust $HOME/.local/bin/cobrust
# Linux x86_64 — static musl (Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-x86_64-unknown-linux-musl-v1.tar.gz | tar xz -C $HOME/.local/
ln -sf $HOME/.local/cobrust-v0.6.0/bin/cobrust $HOME/.local/bin/cobrustEach wheel tarball bundles:
bin/cobrust— main driver (also exposescobrust lsp+cobrust dapsubcommands per ADR-0068)bin/cobrust-lsp+bin/cobrust-dap— transitional shim binaries (deleted at v0.7.0; extension v0.1.x compat)lib/cobrust/libcobrust_stdlib.a— prebuilt static stdlib archiveshare/cobrust/runtime/{cobrust_main.c,cpu_features.c}— runtime C entrypoint + CPU feature helpers
Option C — Alpine / distroless container (musl static binary)
FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.6.0/cobrust-v0.6.0-x86_64-unknown-linux-musl-v1.tar.gz | tar xz -C /opt/ \
&& ln -s /opt/cobrust-v0.6.0/bin/cobrust /usr/local/bin/cobrustQuick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Breaking change from v0.5.x
Users who manually cp cobrust /usr/local/bin/ from a flat
v0.5.x tarball MUST re-install via the new tar xz →
ln -s flow above. Per F46: the v0.5.x flat-binary wheel
was unusable for cobrust run regardless because the
runtime + stdlib were not bundled (binary baked the GH
Actions runner workspace path). v0.6.0 fixes both sides.
Cobrust v0.5.2
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Option C — Alpine / distroless container (musl static binary)
FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.2/cobrust-v0.5.2-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.5.1
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Option C — Alpine / distroless container (musl static binary)
FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.1/cobrust-v0.5.1-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.5.0
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Option C — Alpine / distroless container (musl static binary)
FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.5.0/cobrust-v0.5.0-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.4.0
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Option C — Alpine / distroless container (musl static binary)
FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0/cobrust-v0.4.0-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.4.0-rc1
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — glibc (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 — static musl (tier-1, Alpine / distroless / minimal containers)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Option C — Alpine / distroless container (musl static binary)
FROM alpine:latest
RUN apk add --no-cache curl tar
RUN curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.4.0-rc1/cobrust-v0.4.0-rc1-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.3.0
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.3.0/cobrust-v0.3.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.3.0/cobrust-v0.3.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.3.0/cobrust-v0.3.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.2.0
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.2.0/cobrust-v0.2.0-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.2.0/cobrust-v0.2.0-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64 (tier-1)
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.2.0/cobrust-v0.2.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.1.2
Installation
Option A — cargo install (requires Rust toolchain)
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli
# (crates.io publish queued for v0.2.0)Option B — prebuilt binary (no Rust needed)
# macOS arm64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.2/cobrust-v0.1.2-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.2/cobrust-v0.1.2-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Quick start
cobrust new hello && cd hello && cobrust run src/main.cb
# → hello, worldSee Getting Started for the full guide.
Cobrust v0.1.1
⚠️ DEPRECATED — Please use v0.1.2The prebuilt binary tarballs in this v0.1.1 release embed the version
stringcobrust 0.1.0-betainstead ofcobrust 0.1.1because the
workspaceversionfield bump happened AFTER the tag (commit ordering
defect). The v0.1.2 patch fixes this by bumping the version BEFORE
tagging. The v0.1.1 tag and assets remain available as historical
artifacts but should not be used for fresh installs.See
docs/releases/v0.1.2-release-notes.mdfor migration notes.
Cobrust v0.1.1 — Post-v0.1.0 CI Hot-Fix
Patch release on top of
v0.1.0(commitc40623e).
No language / runtime / translator behavior changes — CI hot-fix only.
Why v0.1.1 (not v0.1.0 retag)
v0.1.0is tagged atc40623eand is immutable; retagging would invalidate
any downstream user who pinned by SHA or tag.- The CI failures were infrastructure-level regressions, not language regressions:
the compiler, type checker, translator, and LLM router all behave identically
to v0.1.0. - A patch release preserves release history immutability while clearly signaling
"the canonical working build is now v0.1.1."
What's fixed
Hallucinated SHA pins (4186c8e)
An automated GitHub Actions SHA-pinning step pinned four GitHub Actions steps
to commit SHAs that did not correspond to the tagged versions cited in the comments.
The hallucinated SHAs caused CI to fetch inconsistent action versions, producing
intermittent checkout and toolchain failures on both macOS and Linux runners.
Fix: revert all four SHA pins to their upstream semver tag forms
(actions/checkout@v4, dtolnay/rust-toolchain@stable, etc.), which are
the canonical, reproducible references. A postmortem and machine-enforced
prevention mechanism accompany this fix (see snapshot schema enforcement below).
PyO3 0.22 vs newer-Python host (03003f3 + acc708c)
PyO3 0.22.6 declares a maximum supported Python version of 3.13. Two separate
CI paths surfaced incompatibilities with newer Python hosts:
- macOS runner (Python 3.14 default):
cargo build -p cobrust-<lib> --features pyo3
aborts with "the configured Python interpreter version (3.14) is newer than
PyO3's maximum supported version (3.13)." The five*_pyo3_compiles.rs
harnesses implement a "succeed-or-skip-cleanly" contract per ADR-0011 §6,
but the version-out-of-range error string was not in the skip-matcher list,
causing the harness to panic rather than skip. Fixed in03003f3. - Ubuntu runner (Python 3.11 via apt): The
ci.ymlstep installs
python3-devvia apt, givingpython3.11. PyO3 0.22's macro expansion
under CPython 3.11 ABI emits four classes of-D warnings-fatal errors
(unused import, deprecatedSIGNATUREconstants, and an unsafe-block
requirement onunwrap_required_argument) — all originating inside
pyo3-generated code, not cobrust source. Extended the skip-pattern matcher
to cover all four error signatures inacc708c.
The long-term fix (pyo3 0.22 → 0.23 upgrade) is tracked in internal docs; the
skip-pattern approach is the correct short-term gate while the upgrade sprint
is scheduled.
Project integrity enforcement (5a09e02)
Added a snapshot-lint script and pre-commit hook to prevent state drift between
the repository and its documentation. A postmortem for the SHA-pinning incident
is included. Contributors: see CONTRIBUTING.md
for the one-time hook setup.
Install path
Option A — cargo install (requires Rust toolchain):
cargo install --git https://github.com/Cobrust-lang/cobrust cobrust-cli(crates.io publish queued for v0.2.0)
Option B — prebuilt binary (no Rust required):
# macOS arm64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.1/cobrust-v0.1.1-aarch64-apple-darwin.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux x86_64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.1/cobrust-v0.1.1-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/
# Linux arm64
curl -L https://github.com/Cobrust-lang/cobrust/releases/download/v0.1.1/cobrust-v0.1.1-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv cobrust /usr/local/bin/Platform support note: v0.1.1 ships prebuilt binaries for macOS arm64
(Apple Silicon) and Linux x86_64/arm64 only. Apple Intel (x86_64-apple-darwin)
and Windows (x86_64-pc-windows-msvc) builds are queued for v0.2.0; the
release.ymlworkflow already exercises them as best-effort targets but they
are not currently tier-1 release artifacts. macOS Intel users on supported Rust
toolchains can build from source via thecargo install --git ...path above.
What's queued for v0.1.x / v0.2.0
- pyo3 0.22 → 0.23 upgrade: impact analysis and migration plan complete.
- Recursion / divide-and-conquer examples: extend the existing loop + accumulator examples corpus.
- textwrap generalization: extend N=2 to arbitrary N wrapping strategies.
- LLM bench methodology Option A integration: wire the bench harness to
the LLM router's real-provider path for reproducible latency/cost comparisons.
Acknowledgements
A post-v0.1.0 external review pass identified all three gaps in this release
(hallucinated SHA pins, PyO3 drift, and project integrity gaps) and prescribed
the fixes that were subsequently executed. All identified issues are now resolved.
SHA roster
| Tag | Commit | CI status |
|---|---|---|
v0.1.0 |
c40623e |
red — published before the 3 SHA-pin + pyo3-skip hot-fixes; preserved as immutable historical record |
v0.1.1 |
tag head of this release (see git rev-parse v0.1.1) |
green — fmt 0 / clippy 0 / build 0 / test 0 / doc-coverage 0 / real-llm-smoke skip; verified on parent acc708c (this release's only delta is documentation: documentation cleanup + this roster cleanup) |
Note: avoiding a literal SHA for
v0.1.1in the table is deliberate — the
tag's commit SHA is unknowable inside the very commit that the tag will
reference (self-reference), and amending a published commit onmainis
forbidden by the repo's commit policy (no force-push to main). The
commandsgit rev-parse v0.1.1andgh release view v0.1.1both resolve
to the canonical SHA without ambiguity.