Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to cargo-release for publishing crates #65

Open
conorsch opened this issue Oct 6, 2023 · 1 comment
Open

Switch to cargo-release for publishing crates #65

conorsch opened this issue Oct 6, 2023 · 1 comment
Assignees

Comments

@conorsch
Copy link
Contributor

conorsch commented Oct 6, 2023

Over in the Penumbra monorepo, we've started using cargo release (penumbra-zone/penumbra#2384) to trigger deployments based on tag pushes. In the ibc-types repo, we have a bespoke scripted implementation designed to work around ratelimiting for crates.io.

Based on upstream discussion crate-ci/cargo-release#483, I suspect we've rounded the corner on the ratelimiting issues, because we're now updating crates, rather than publishing brand new crates on the regular. Still, more testing is needed.

Let's try to get the tag -> build -> publish flow as simple and reliable as possible, to minimize the turnaround time between a PR from an external contributor and that new code landing in a published crate version. It'd also be nice-to-have if the workflow is similar to others we use elsewhere, to reduce friction when hopping between repos—thus the suggestion for standardizing on cargo-release.

@conorsch conorsch self-assigned this Oct 6, 2023
@erwanor
Copy link
Member

erwanor commented Oct 6, 2023

Using cargo-release would be a huge win. Another ad-hoc thing we are doing in the release script is upload the crates in a specific order and wait between each upload. We have to do this because some crates depend on one another. When publishing a crate, all its dependencies must be resolvable by crates.io. Since we version every crate in lockstep, this mean we must be careful about the order in which we upload them. What's more, there's some slight caching delay on crates.io's side between the moment the crate publication process finishes and when the crate's new version is actually observable. All of those things seem like things that could be taken care of by cargo-release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Next
Development

No branches or pull requests

2 participants