Skip to content

chore(release): realign 4 satellite crates + harden release.sh dry-run#65

Merged
akesling merged 1 commit into
mainfrom
akesling/fixes
Apr 28, 2026
Merged

chore(release): realign 4 satellite crates + harden release.sh dry-run#65
akesling merged 1 commit into
mainfrom
akesling/fixes

Conversation

@akesling
Copy link
Copy Markdown
Contributor

Bump toolpath-dot 0.1.2→0.1.3, toolpath-md 0.2.0→0.2.1, toolpath-git 0.1.3→0.1.4, toolpath-github 0.2.0→0.2.1. No source changes — these crates were last released when toolpath was at 0.1.5, so their on-registry manifests still pin that old version. Without these bumps, publishing path-cli (which depends on toolpath = "0.2.0" and toolpath-dot = "0.1.2") drags two majors of toolpath into cargo's publish-time resolution, producing E0308 type mismatches. The new versions inherit the workspace's current toolpath = "0.2.0" via toolpath = { workspace = true }, closing the skew.

scripts/release.sh now defaults to dry-run; pass --execute to publish for real. Confirmation prompt and dirty-tree check only apply under --execute. After the existing test/clippy/doc preflight, a new publish-resolution dry-run loop runs cargo publish --dry-run for every crate slated to publish. Failures referencing another to-be-published crate are deferred (chicken-and-egg); any other failure aborts before real upload. Recognizes three cargo error shapes: "no matching package named", "failed to select a version for the requirement", and "could not find ... in registry". Verified end-to-end that path-cli's dry-run currently extracts toolpath-dot as the deferred dep.

Bump toolpath-dot 0.1.2→0.1.3, toolpath-md 0.2.0→0.2.1, toolpath-git
0.1.3→0.1.4, toolpath-github 0.2.0→0.2.1. No source changes — these
crates were last released when toolpath was at 0.1.5, so their
on-registry manifests still pin that old version. Without these
bumps, publishing path-cli (which depends on toolpath = "0.2.0"
and toolpath-dot = "0.1.2") drags two majors of toolpath into
cargo's publish-time resolution, producing E0308 type mismatches.
The new versions inherit the workspace's current toolpath = "0.2.0"
via toolpath = { workspace = true }, closing the skew.

scripts/release.sh now defaults to dry-run; pass --execute to publish
for real. Confirmation prompt and dirty-tree check only apply under
--execute. After the existing test/clippy/doc preflight, a new
publish-resolution dry-run loop runs `cargo publish --dry-run` for
every crate slated to publish. Failures referencing another
to-be-published crate are deferred (chicken-and-egg); any other
failure aborts before real upload. Recognizes three cargo error
shapes: "no matching package named", "failed to select a version
for the requirement", and "could not find ... in registry".
Verified end-to-end that path-cli's dry-run currently extracts
toolpath-dot as the deferred dep.
@github-actions
Copy link
Copy Markdown

🔍 Preview deployed: https://ea53b630.toolpath.pages.dev

@akesling akesling merged commit d3ba98b into main Apr 28, 2026
2 checks passed
@akesling akesling deleted the akesling/fixes branch April 28, 2026 14:46
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