Skip to content

fix(release): use scalar Cargo package versions - #162

Merged
jmagar merged 1 commit into
mainfrom
fix/release-please-workspace-versions
Aug 2, 2026
Merged

fix(release): use scalar Cargo package versions#162
jmagar merged 1 commit into
mainfrom
fix/release-please-workspace-versions

Conversation

@jmagar

@jmagar jmagar commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Problem

The corrected Release Please workflow still failed after #158 and #161:

  • run 30751605819
  • job 91506519418
  • error: value at path package.version is not tagged

The npm JSON updater was no longer the failing path. Release Please reached the Rust workspace update, fetched xtask/Cargo.toml, and failed because both root cortex and xtask used version.workspace = true. Release Please 17.3.0 requires scalar [package].version values when its Rust updater rewrites each workspace member. Its cargo-workspace plugin also requires package versions to be strings, so the inherited form is unsupported by both paths.

Fix

  • move the canonical 3.11.1 version from [workspace.package] into root [package].version
  • give xtask an explicit synchronized [package].version
  • track xtask/Cargo.toml and the xtask Cargo.lock entry in release/components.toml
  • add a structural workflow contract requiring scalar, equal package versions and forbidding workspace.package.version

Verification

  • Cargo metadata resolves cortex and xtask to 3.11.1
  • cargo xtask check-version-sync: 16 carriers in sync
  • cargo xtask check-release-versions: 16 carriers in sync
  • complete xtask suite: 26 passed
  • workflow contract suite: 6 passed
  • all-target check: passed
  • strict Clippy: passed
  • pre-commit and pre-push routers: passed
  • exact pinned engine dry run: release-please@17.3.0 release-pr --dry-run exited 0
  • dry run proposed release 3.11.2, updated both package manifests and both Cargo.lock entries, and reported Would open 1 pull requests

The decisive post-merge verification is a green release-please job on main, followed by a successful release-pr-fixup when applicable.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes release-please Rust workspace version updates by switching both workspace members (cortex and xtask) from inherited version.workspace = true to explicit scalar [package].version strings, which release-please@17.3.0 requires. It also strengthens repository “workflow shape” tests and version-carrier tracking so future changes can’t reintroduce the unsupported inherited-version structure.

Changes:

  • Move the canonical version to Cargo.toml root [package].version and set xtask’s [package].version explicitly.
  • Extend release/components.toml to track xtask/Cargo.toml and the xtask entry in Cargo.lock as synchronized version carriers.
  • Add a structural contract test that enforces scalar/equal package versions and forbids workspace.package.version.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
Cargo.toml Switch cortex to scalar [package].version and remove workspace.package.version to satisfy release-please Rust updater constraints.
xtask/Cargo.toml Set xtask to an explicit scalar version synchronized with the root package.
release/components.toml Add xtask manifest + lockfile entry as tracked version carriers for cargo xtask version-sync tooling.
tests/workflow_shapes.rs Add a contract test enforcing scalar/equal workspace member versions and preventing workspace.package.version from returning.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jmagar
jmagar merged commit b951591 into main Aug 2, 2026
19 checks passed
@jmagar
jmagar deleted the fix/release-please-workspace-versions branch August 2, 2026 14:36
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.

2 participants