-
Notifications
You must be signed in to change notification settings - Fork 69
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
Automate infrastructure for cutting releases #732
Comments
I've found that almost every release requires some manual intervention, in particular curating change log notes. I use |
My initial motivation for the issue was: we ran into an issue with omicron + propolis where we had two copies of progenitor floating around (oxidecomputer/propolis#654) -- one referring to the main branch, and one pinned to v0.5.0. We were discussing how it would be nice to have frequent releases to crates.io and always use that -- which led me to try and figure out what it would take to get a progenitor release out. Somehow I thought I'd written all this out, but apparently I completely missed including this information while filing the issue yesterday -- sorry about that! The release automation grabs the notes from a changelog file (which is required to be in Markdown because it gets pasted into the GitHub release notes). In fact, the release job fails if there are no changelog notes. I do use For nextest, the process I use is documented here. An example release is here. Another benefit of release automation is some degree of rigor in our releases. For example, many open source projects neglect to push tags, or even create them, corresponding to their releases. This isn't a problem for progenitor, but can potentially be one in the future if we scale up the release process. The automated process necessarily requires that a tag be pushed. It would also let us define an allowlist of who can push tags, which can be "all Oxide employees" or narrower than that. RFD 409, which is in prediscussion at the moment, covers some of this. (I really should follow up on bringing it into discussion soon...) |
Turns out I had written all this out, but the tab it was in crashed, and my brain didn't realize that the issue I did post was incomplete. Sorry! |
No problem; my point about the change log was not extracting data from it, but manually adding data to it--people (me) aren't always great at updating it with every commit. If you'd like a new release, it's not much work for me to do that. |
Got it! Do you think you could make a new release soon? Thank you :) |
Sure thing! |
It would be really nice if we had automated infra that would let someone push a tag, then automatically cut a release and push to crates.io based on that.
I've used this pattern before, which involves providing a
CARGO_REGISTRY_TOKEN
as an environment secret.https://github.com/oxidecomputer/cancel-safe-futures/blob/main/.github/workflows/release.yml
The text was updated successfully, but these errors were encountered: