Repository navigation
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.