Repository navigation
fix(release): sweep intra-workspace path-dep pins 0.6.0 → 0.7.0 - #143
Merged
Merged
Conversation
The Cargo.toml workspace-package version was bumped to 0.7.0 in PR #142, but the per-crate `version = "0.6.0"` pins on path dependencies (introduced in #136 to give `cargo publish` real crates.io coordinates to rewrite to) were not swept. Cargo refuses to resolve `synth-backend = "^0.6.0"` against the local 0.7.0 path-dep, breaking both release.yml and publish-to-crates-io.yml on the v0.7.0 tag. This commit sweeps all 23 intra-workspace `version = "0.6.0"` pins (across 8 crate manifests) to `"0.7.0"`, and bumps the MODULE.bazel `module(version = ...)` declaration to match. The v0.7.0 tag was deleted from origin (no GitHub Release was produced — release.yml's build matrix failed before the 'Create GitHub Release' job, which was skipped) and will be re-pushed against this commit. Local validation: cargo metadata --no-deps # resolves at 0.7.0 cargo build --release -p synth-cli # green Follow-up tracked separately: docs/release-process.md should gain an explicit 'sweep intra-workspace pins' step (or a CI gate that fails when workspace version diverges from path-dep pins) so v0.8.0 doesn't repeat this.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This was referenced May 25, 2026
avrabe
added a commit
that referenced
this pull request
May 31, 2026
#201) * ci(release): gate intra-workspace version-pin desync at PR time (#145) v0.7.0's tag broke release.yml + publish-to-crates-io.yml because [workspace.package].version was bumped while every crates/*/Cargo.toml path-dep pin + MODULE.bazel still carried the old version — cargo refused to resolve (recovered by the 23-pin sweep in #143). The pin sweep was a manual, forgettable step. Add scripts/check_version_pins.py + a `Version Pin Sweep` CI job that fails at PR-merge time if [workspace.package].version drifts from any intra-workspace `{ path = "../x", version = "Y" }` pin or MODULE.bazel's module(version=...). Makes the v0.7.0-class desync structurally uncatchable-too-late rather than caught at tag-push. The script doubles as a local pre-tag check (run from repo root, exits non-zero listing every offending pin). Verified: passes at the current 0.11.11; catches an injected 0.11.10 path-dep desync with a file:line message. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(rivet): mark static-linking reqs implemented + add SYS.4 verification The gale cross-language-LTO arc (synth v0.11.1–v0.11.11) shipped the static-linking capability: ET_REL emission with R_ARM_THM_CALL relocations against import field names (#173) and func_N internal symbols (#167), relocatable fp-relative memory + caller-saved preservation (#197), the .meld_import_table / FLASH / RAM linker-script sections, and the --link cross-linker invocation. gale confirmed the z_impl object links with 5 real kernel relocations. Flip SL-001..SL-007 (system-reqs) and SL-TR-001..003 (sw-reqs) from draft/planned to implemented, and add SL-IV-001 (sys-integration- verification) verifying SL-001..007 with the on-target evidence + regression tests (test_compile_internal_call_produces_relocation_167, test_compile_relocatable_import_uses_direct_func_symbol_197, relocatable_pointer_deref_uses_fp_base_197). rivet validate: error count UNCHANGED at 35 (all pre-existing broken cross-repo links to gale:/kiln:/sigil: externals that have no rivet.yaml to sync against — orthogonal to status). Info-level coverage gaps drop as SL-IV-001 closes the SL-00x verification backlinks. Note: SL-TR-* sw-reqs retain info-level coverage gaps — neither unit-verification (-> sw-detail-design) nor sw-integration-verification (-> sw-arch-component/sw-detail-design) can target a sw-req directly, so closing them needs the full ASPICE chain. Tracked in rivet#350. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.
Summary
version = "0.6.0"pins →"0.7.0"across 8 crate manifestsmodule(version = ...)to 0.7.0Root cause
PR #142 bumped the
[workspace.package] versionto 0.7.0 but did not sweep the per-crate path-dep pins introduced in #136 (e.g.synth-cli/Cargo.toml:synth-backend = { path = "../synth-backend", version = "0.6.0" }). With workspace at 0.7.0 and pins requesting^0.6.0, cargo refuses to resolve — every release-y workflow on the v0.7.0 tag died at the very firstcargo build/cargo publish --dry-run. The original v0.7.0 tag was deleted from origin (no GitHub Release was created;Create GitHub Releasewas skipped after the build matrix failed) and will be re-pushed against this commit's merge once green.Local validation
cargo metadata --no-deps --format-version 1resolves cleanly at 0.7.0cargo build --release -p synth-cligreen in 53sFollow-up
Tracked as a docs/CI gap:
docs/release-process.md(orscripts/publish.rs) should gain an explicit "sweep intra-workspace pins" step — ideally a CI gate that fails when workspace version diverges from any path-depversion =pin. Will file an issue separately so v0.8.0 doesn't repeat the trap.Test plan