Document the crates.io freeze and the git-dependency workflow - #28
Merged
Conversation
The README described a publish-first coupled-change flow and a semver range that no longer exist: mux-compiler consumes this repo as a git dependency on main, pinned by its Cargo.lock, so merging here is what makes a change available. Drop the crates.io version badge, which would otherwise advertise 0.5.0 as current indefinitely, and say plainly that published versions stay up but no new ones are coming. Also note that a sibling checkout and MUX_RUNTIME_SRC take precedence over the locked commit. That ordering is easy to forget and a stale sibling silently shadows the commit Cargo.lock names.
The compiler no longer builds this crate while compiling a Mux program, so a sibling checkout and MUX_RUNTIME_SRC no longer override anything. Coupled local development now means building here and pointing MUX_RUNTIME_LIB at the archive. Also note that the full feature set is always linked, and that this costs nothing: static linking discards archive members nothing references, so a program that never touches sql carries no SQLite.
The README described the compiler building the library from the git checkout cargo makes for the locked commit. That lookup was removed with the source-build path; the compiler links the archive from cargo's target/ directory, which takes an explicit `cargo build -p mux-runtime` because cargo emits a dependency's rlib and never its staticlib.
The coupled-change steps still described publishing the runtime and bumping a semver pin, local coupled dev still described a sibling checkout and MUX_RUNTIME_SRC, and the release section still described publishing to crates.io. None of those mechanisms remain after ADR 0004. Also drop the note about keeping the full feature list in sync with full_runtime_features(): that parity test went with the feature-trimmed runtime builds.
Contributor
|
| Filename | Overview |
|---|---|
| .github/workflows/ci.yml | Builds this PR’s default-full-feature static archive and exposes it to downstream compiler tests through the job-level runtime override. |
| AGENTS.md | Aligns coupled-development and release guidance with commit-pinned git dependencies and archive overrides. |
| CHANGELOG.md | Documents the crates.io freeze and adds the previously missing Unreleased section. |
| README.md | Replaces obsolete publishing and semver instructions with the current source-based workflow. |
Reviews (2): Last reviewed commit: "Address PR review: keep the downstream s..." | Re-trigger Greptile
Two findings from Greptile on #28, both valid. The Downstream Compiler Smoke Test passed this checkout to the compiler via MUX_RUNTIME_SRC. The compiler no longer reads that variable, so once the ADR 0004 change is on mux-compiler main this job would have linked the runtime its own Cargo.lock pins and silently stopped testing the runtime under review - while still reporting green. It now builds the archive from this checkout and forces it with MUX_RUNTIME_LIB, which is the resolution rule that survives. That matters beyond this job: this is the cross-repo check that catches FFI breaks at their origin, and the argument against automating the compiler's pin rests on it working. The README told contributors to record changes under an `Unreleased` heading that did not exist, while the changelog preamble still described crates.io publishing and semver pinning. Added the heading and replaced the preamble with the freeze and why there is no version to bump.
|
Valgrind Memory Checks - skippedSkipped - no relevant source changed in this PR. Benchmarks (report-only) - skippedSkipped - no relevant source changed in this PR. Commit |
This was referenced Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Closes #26 as unnecessary rather than by publishing. Documentation only.
Why #26 does not need doing
#26 asked for a 0.6.0 publish so mux-compiler could drop its
[patch.crates-io]block. Under ADR 0004 the compiler consumes this repo as a git dependency pinned byCargo.lock, so merging tomainis what makes a change available - there is no publish handshake left to perform.crates.io is frozen: versions through 0.5.0 stay published and are not yanked (yanking frees no name and only breaks anyone pinned), but no new ones go there.
Changes
MUX_RUNTIME_SRC, which the compiler no longer reads. Coupled dev is now: build here, pointMUX_RUNTIME_LIBat the archive.fullin sync withfull_runtime_features()- that parity test went with the feature-trimmed runtime builds.Worth knowing
The compiler now always links the full feature set and never builds this crate while compiling a program. That costs nothing: static linking discards archive members nothing references, so a program that never touches
sqlcarries no SQLite.rc-leak-checkdeliberately stays outsidefull, which makes it the one runtime the compiler cannot produce - hencescripts/leak-check.shforcing it viaMUX_RUNTIME_LIB, and the CI leak job now building it explicitly.Pairs with muxlang/mux-compiler#317; rationale in muxlang/mux-context#32.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.