Skip to content

fix(release): sync-versions skips external git deps (unblocks v0.23.0)#260

Merged
brentrager merged 2 commits into
mainfrom
fix-sync-versions-git-deps
Jul 25, 2026
Merged

fix(release): sync-versions skips external git deps (unblocks v0.23.0)#260
brentrager merged 2 commits into
mainfrom
fix-sync-versions-git-deps

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Problem

The Changesets version PR (#222, ships v0.23.0 — the release carrying the th testing coverage CLI) has been red for 10 days on Rust checks:

failed to select a version for the requirement `smooai-smooth-operator-server = "^0.23.0"` (locked to 0.23.0)
candidate versions found which didn't match: 1.23.1

No release has shipped since, so the coverage-measurement dogfood (report-coverage.sh in smooai CI) silently no-ops — it feature-detects th testing coverage and that subcommand isn't in any published th.

Root cause

sync-versions.mjs injects version = "<workspace>" onto workspace.dependencies entries. It skipped smooai-smooth-operator-core (crates.io dep) but not the operator git deps smooth-operator-server / smooth-operator-svc. Those are pinned by rev; the crate version there is 1.23.1, unrelated to the workspace 0.23.0 — so ^0.23.0 can't resolve. The earlier core-only guard (and PR #199) don't cover them because their package names aren't -core.

Fix

Both version passes now skip any entry with a git = key (git deps carry their version at the pinned rev, not the workspace version), keeping the existing crates.io-core name-guard.

Verified against the real Cargo.toml: operator git deps stay version-less; internal path deps (e.g. smooth-policy) still sync. Authoritative test is #222's Rust check re-running green after the version PR regenerates.

Supersedes #199 (narrower core-only fix). Pearl th-1ee32b.

🤖 Generated with Claude Code

…r-core

The version-injection guard matched only smooai-smooth-operator-core, so the
operator git deps (smooth-operator-server/-svc) still got version = <workspace>
stamped each release. At rev 9db9d319 those crates are 1.23.1, not 0.23.0, so
cargo could not resolve and the Changesets version PR (#222) Rust checks failed
— blocking the v0.23.0 release (which carries the th testing coverage CLI).

Both passes now skip any workspace.dependencies entry with a git = key.
Verified: operator git deps stay version-less, internal path deps still sync.

Pearl th-1ee32b.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KTQCKSkMFSE1j6QwD29BGL
@changeset-bot

changeset-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 14aadb0

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@smooai/smooth Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager
brentrager enabled auto-merge (squash) July 25, 2026 16:43
@brentrager
brentrager merged commit 44b9d5d into main Jul 25, 2026
3 checks passed
brentrager added a commit that referenced this pull request Jul 25, 2026
…too (#262)

#260 stopped stamping the operator git deps in Cargo.toml, but the Cargo.lock
pass still bumped smooai-smooth-operator-server/-svc lock entries to the
workspace version (0.23.0). Their git source at rev 9db9d319 is 1.23.1, so
cargo --locked failed to resolve — the version PR (#222) stayed red on a
different line. Skip all three external operator package names by exact match
in the lock pass, mirroring the Cargo.toml git-dep skip.

Pearl th-1ee32b.


Claude-Session: https://claude.ai/code/session_01KTQCKSkMFSE1j6QwD29BGL

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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