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

FR: fully automate the release process #2483

Open
thoughtpolice opened this issue Oct 31, 2023 · 1 comment
Open

FR: fully automate the release process #2483

thoughtpolice opened this issue Oct 31, 2023 · 1 comment
Assignees
Labels
github_actions Pull requests that update GitHub Actions code

Comments

@thoughtpolice
Copy link
Collaborator

thoughtpolice commented Oct 31, 2023

This is mostly for me, I was reminded of it because Martin is doing the 0.11 release, and because I brought it up on Discord a while ago. We should get the release process to be fully automated, not only so that Martin doesn't have to do it, but so that the whole lifecycle is more secure and foolproof.

I think the idea was just to do a release every 4 weeks, on the 1st of every month. This is probably OK for now and we could adjust it in the future depending on how users feel.

There actually isn't that much to do in the grand scheme of things. But breaking it down, we at least need to:

  • Tweak CHANGELOG.md automatically
    • We may, frankly, want to just change this process entirely to make it more automation friendly, rather than doing egregious sed hacks or something. Or at least do it right (e.g. an actual markdown parser that can insert changes in the right places.)
  • Bump workspace.package.version in Cargo.toml
  • Update Cargo.lock with those version changes.
  • Commit those changes to main if they build correctly, with a tag
  • Have a workflow that creates a release directly from the tag
  • Publish to crates.io

There are a lot of finnicky little details to sort out with this, but it can all reasonably be achieved with some elbow grease. In the long run it will drastically simplify things, from setting deprecation deadlines to ensuring continuity.

I'll probably experiment in a separate repository with doing the release of a small rust application. There are in fact some workflows to do this automatically but depending on those things might (or might not!) have their own issues.

@thoughtpolice thoughtpolice added the github_actions Pull requests that update GitHub Actions code label Oct 31, 2023
@thoughtpolice thoughtpolice self-assigned this Oct 31, 2023
@ilyagr
Copy link
Collaborator

ilyagr commented Oct 31, 2023

I can think of two tangentially related issues (neither is a prerequisite for this to work):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
github_actions Pull requests that update GitHub Actions code
Projects
None yet
Development

No branches or pull requests

2 participants