Skip to content

Conversation

@Manishearth
Copy link
Member

cargo workspaces publish --from-git works quite well and we should emphasize it more.

Also included substeps for version updating around dependency updates that ought to avoid problems like #7191.

@Manishearth Manishearth requested a review from a team as a code owner October 28, 2025 18:31
* [ ] For utils that have had substantiative changes (new APIs, etc), update them in `workspace.dependencies`. When unsure, just update.
* [ ] Get this PR reviewed and checked in.
* [ ] Perform the release.
* The best way to do this is to use `cargo workspaces publish --from-git`.
Copy link
Member

Choose a reason for hiding this comment

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

Is this obsolete? There seems to be a new --workspace option on cargo publish

rust-lang/cargo#14659

Copy link
Member Author

Choose a reason for hiding this comment

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

No idea. Haven't tried it.

* [ ] Get this PR reviewed and checked in.
* [ ] Perform the release.
* The best way to do this is to use `cargo workspaces publish --from-git`.
* If the release fails at some point and needs a fix, make a new commit for the fix. After a full successful release, make a PR with these commits and merge it with a merge commit. You may need to temporarily change branch protection rules.
Copy link
Member

Choose a reason for hiding this comment

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

so here I disagree. what we should have done is make a normal squash PR, and continue with the release once the PR has been merged

Copy link
Member Author

Choose a reason for hiding this comment

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

This happens multiple times in a release and we should not be waiting for that IMO. Especially if we want to handle the "dirty working tree" problem around dev-deps (#7196)

Copy link
Member

Choose a reason for hiding this comment

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

yes we should. if there are two people working on a release and you're not blocked on approval it takes ~10 minutes to run CI

Copy link
Member Author

Choose a reason for hiding this comment

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

The "dirty working tree" will happen ~10 times per release, if we decide to care about it.

That's a lot of sync time.

Is your goal here to avoid releasing something that breaks CI? I think that's reasonable, for actual changes we should probably not push to main. But I also think the release driver should be allowed to merge them without review.

For cargo publish dev dep changes I do not think we should be doing this. In that case we should push directly, because ideally it's a commit that doesn't actually change anything (it removes a dev-dep which gets immediately added back).

Copy link
Member Author

Choose a reason for hiding this comment

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

I clarified this. I also figured out a process for us to still use workspaces publish without dirtying the tree.

@Manishearth Manishearth requested a review from sffc November 4, 2025 18:50
@Manishearth Manishearth requested a review from sffc November 4, 2025 19:04
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.

3 participants