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

Release deployment #30

Closed
wants to merge 1 commit into from
Closed

Release deployment #30

wants to merge 1 commit into from

Conversation

brainstorm
Copy link

@brainstorm brainstorm commented Jul 13, 2021

Inspired by the commits I've seen over https://github.com/rust-bio/rust-htslib/blob/master/.github/workflows/release-please.yml.

Ideally we should be using googleapis/release-please#954 as a way to easily publish all sub-crates within this repo, instead of enumerating each one.

Fixes issue #29

/cc @sstadick

@brainstorm
Copy link
Author

brainstorm commented Jul 13, 2021

Actually, that release-please PR is just a wrapper around https://github.com/fasterthanlime/cargo-workspaces#publish... so I guess we could just use that in the meantime to publish all crates within the noodles workspace.... OTOH the PR above seems to be very close to being merged.

@brainstorm brainstorm changed the title Release deployment, should eventually fix issue #29 Release deployment Jul 13, 2021
@sstadick
Copy link

sstadick commented Jul 13, 2021

An alternative method: https://github.com/BurntSushi/ripgrep/blob/master/RELEASE-CHECKLIST.md where something like cargo workspace publish is just run locally.

In the yaml I am personally a fan of only triggering on tags of some sort https://github.com/sstadick/perbase/blob/030904f6178f3fd4c10fcc97379d072abb0b39e4/.github/workflows/main.yml#L5, or v.* as the pattern.

edit to add why I like to trigger on tags it allows for updating the readme on master without needing to do a release.

@brainstorm
Copy link
Author

Thanks @sstadick! By the comment on #29 I'd guess that @zaeleus might publish the first version manually this week before automating it? In any case, let's see which option he prefers from the ones described here.

@sstadick
Copy link

I'm happy regardless of the method a release happens, and super excited to see a version of this on crates.io!

@zaeleus
Copy link
Owner

zaeleus commented Jul 14, 2021

Thanks, but I'd like to publish manually for now, particularly to better understand the process when managing many interdependent crates. For example, there's a small delay between a successful publication and when you can actually use the crate, which can make an automated publication of a crate that depends on it fail. I also learned that crates.io enforces a rate limit after 5 pushes. :P

error: failed to publish to registry at https://crates.io

Caused by:
  the remote server responded with an error (status 429 Too Many Requests): You
  have published too many crates in a short period of time. Please try again
  after Wed, 14 Jul 2021 22:34:44 GMT or email help@crates.io to have your limit
  increased.

@zaeleus zaeleus closed this Jul 14, 2021
@brainstorm
Copy link
Author

brainstorm commented Jul 15, 2021

Yeah, I understand, those gotchas from crates.io are indeed unexpected.

I wonder how @fasterthanlime deals with that kind of rate limiting and dependency (timing) failures when using the recently merged googleapis/release-please#954.

@fasterthanlime
Copy link

We use "cargo workspaces publish", which polls the registry after publishing to wait for it to really show up.

We publish to a private Cloudsmith registry so we haven't run into the crates.io rate limiting!

@zaeleus
Copy link
Owner

zaeleus commented Jul 19, 2021

Just for future reference, I talked to a crates.io team member. He clarified that there is a 5 new crate burst publication rate limit and a 30 existing crate burst publication rate limit (1 publication/minute).

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.

None yet

4 participants