From bfc412d55be0bd53b141e64f1db25f87a2f9c052 Mon Sep 17 00:00:00 2001 From: David Meister Date: Wed, 27 May 2026 14:36:00 +0000 Subject: [PATCH] Publish rainlang_parser: version-pin workspace deps + add to release set Now that rainlang_bindings (0.1.12) and rainlang_dispair (0.1.7) are on crates.io, parser can publish. cargo publish requires path deps to carry a version, so pin the workspace dependency entries, and add rainlang_parser to the Package Release crates list (dependency order: bindings, dispair, parser). Verified parser packages cleanly against the published bindings/dispair. The three crates now release as a lockstep unit, so a change to any member republishes all three and cargo-release keeps parser's pins in sync. Co-Authored-By: Claude Opus 4.7 --- .github/workflows/package-release.yaml | 20 +++++++++++--------- Cargo.toml | 2 ++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/package-release.yaml b/.github/workflows/package-release.yaml index cb8e1b939..39308af79 100644 --- a/.github/workflows/package-release.yaml +++ b/.github/workflows/package-release.yaml @@ -6,16 +6,18 @@ on: jobs: release: # Single workspace publish (rainix#191): one job bumps + publishes the - # rainlang crates in dependency order — bindings then dispair (both leaves - # on alloy). One commit, one push (via the PUBLISH_PRIVATE_KEY deploy key, - # which bypasses main's required-review protection), namespaced tags. + # rainlang crates in dependency order — bindings and dispair (leaves on + # alloy), then parser (depends on both). One commit, one push (via the + # PUBLISH_PRIVATE_KEY deploy key, which bypasses main's required-review + # protection), namespaced tags. # - # rainlang_parser and rainlang-eval are not included yet: - # - parser's workspace deps (rainlang_bindings/dispair) need `version = ...` - # added before `cargo publish` accepts it (path-only today); fold it in - # once bindings + dispair are on crates.io. - # - eval has a foundry-evm git dep that blocks `cargo publish` entirely. + # The set releases as a unit (lockstep): a change to any member bumps and + # republishes all three, so parser's workspace pins on bindings/dispair are + # rewritten to the matching versions in the same cargo-release commit. + # + # rainlang-eval is still excluded — its foundry-evm git dep blocks + # `cargo publish` entirely. uses: rainlanguage/rainix/.github/workflows/rainix-autopublish.yaml@main with: - crates: rainlang_bindings rainlang_dispair + crates: rainlang_bindings rainlang_dispair rainlang_parser secrets: inherit diff --git a/Cargo.toml b/Cargo.toml index 51e453a10..fbb9b4609 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,9 +41,11 @@ path = "crates/parser" [workspace.dependencies.rainlang_dispair] path = "crates/dispair" +version = "0.1.7" [workspace.dependencies.rainlang_bindings] path = "crates/bindings" +version = "0.1.12" [workspace.dependencies.rainlang-eval] path = "crates/eval"