Skip to content

fix(release): give crates explicit versions for release-please#129

Merged
kevincodex1 merged 1 commit into
mainfrom
fix-release-please-workspace
Jun 30, 2026
Merged

fix(release): give crates explicit versions for release-please#129
kevincodex1 merged 1 commit into
mainfrom
fix-release-please-workspace

Conversation

@kevincodex1

@kevincodex1 kevincodex1 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes the Release Please workflow, which failed with value at path package.version is not tagged. release-please's Rust workspace strategy versions each member crate in its own Cargo.toml and cannot rewrite an inherited version.workspace = true.

Motivation & context

After #127 merged, the release-please run on main errored:

✔ found workspace with 5 members, upgrading all
Error: release-please failed: value at path package.version is not tagged

The root Cargo.toml is a virtual workspace and all five crates inherit version.workspace = true, so there is no literal version string for the Rust updater to bump.
Closes #

Kind of change

  • Bug fix
  • Feature
  • Security fix
  • Docs
  • Tests / CI
  • Refactor (no behavior change)
  • Breaking or protocol change (issue required first)

What changed

  • Root Cargo.toml: removed [workspace.package].version (no longer the source of truth).
  • All five crates (gitlawb-core, gitlawb-node, gl, git-remote-gitlawb, gitlawb-attest): replaced version.workspace = true with explicit version = "0.3.9"; they still inherit edition/rust-version/license/authors/repository from the workspace.
  • release-please now bumps all five in lockstep and updates Cargo.lock. Inter-crate deps uirement), so nothing else needs syncing.

How a reviewer can verify

cargo metadata --no-deps >/dev/null && echo "workspace resolves"
grep -rn '^version' crates/*/Cargo.toml   # each is version = "0.3.9"
grep -n 'version' Cargo.toml | head        # no version under [workspace.package]

After merge, the Release Please workflow should succeed and open a chore(main): release 0.4.0 PR.

Before you request review

- [x] Scope is one logical change; no unrelated churn
- [ ] cargo test --workspace passes locally — N/A (version-literal change; cargo metadata v
- [x] New behavior is covered by tests (required for fixes) — N/A, release tooling
- [x] cargo fmt --all and cargo clippy --workspace --all-targets -- -D warnings are clean — N/A, no code changed
- [x] Commit titles use Conventional Commits (feat(...), fix(...), docs(...))
- [x] Docs / .env.example updated if behavior or config changed (or N/A)
- [x] Checked existing PRs so this isn't a duplicate

Notes for reviewers

The five crate versions are now managed by release-please and bumped together; treat them as generated. [workspace.package] still centralizes the other shared fields.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **Chores**
  * Standardized crate versioning so each package now carries its own explicit release version.
  * Updated workspace settings to clarify that versions are managed per crate and kept in sync for releases.
  * This helps make versioning clearer and reduces reliance on inherited workspace values.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

release-please's Rust workspace strategy versions each member crate in its own
Cargo.toml and cannot rewrite an inherited `version.workspace = true`, so it
failed with 'value at path package.version is not tagged'. Give each of the five
crates an explicit version = "0.3.9" (kept in lockstep by release-please) and
drop the now-unused [workspace.package].version. Inter-crate deps are path-only,
so no version requirements need syncing.
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 198f4991-870b-4608-8cf6-e88a96cf2970

📥 Commits

Reviewing files that changed from the base of the PR and between 3f08d99 and 44e0aed.

📒 Files selected for processing (6)
  • Cargo.toml
  • crates/git-remote-gitlawb/Cargo.toml
  • crates/gitlawb-attest/Cargo.toml
  • crates/gitlawb-core/Cargo.toml
  • crates/gitlawb-node/Cargo.toml
  • crates/gl/Cargo.toml

📝 Walkthrough

Walkthrough

The workspace-level version field is removed from Cargo.toml and replaced with comments noting that versions are managed per-crate. All five crate manifests are updated to pin version = "0.3.9" explicitly instead of inheriting from the workspace.

Changes

Per-crate version pinning

Layer / File(s) Summary
Workspace version removal and per-crate pins
Cargo.toml, crates/*/Cargo.toml
Removes version = "0.3.9" from [workspace.package] and pins each crate (git-remote-gitlawb, gitlawb-attest, gitlawb-core, gitlawb-node, gl) to version = "0.3.9" directly.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

A bunny hopped through each Cargo.toml,
Snipped the workspace thread that held them whole.
"Each crate," she declared, "shall own its own tag,
Release-please shall manage the version bag!"
🐇 Hop hop, 0.3.9 for all! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately describes the main change: making crate versions explicit for release-please.
Description check ✅ Passed The description follows the template and covers the required sections, with only a minor missing issue number in 'Closes #'.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-release-please-workspace

Comment @coderabbitai help to get the list of available commands.

@kevincodex1 kevincodex1 merged commit 788a868 into main Jun 30, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant