Release workflow - #238
Merged
Merged
Conversation
- Usually run with a successful run of the Build workflow on a tag - Can be run via manual dispatch on a specific tag, either for testing or fixing issues with release runs - Conforms that the tag exists and a smoke test that the tag matches the version in relevant files, also if it should be marked as a prerelease - Extracts the changelog for the release description and also writes the sha256 hash of the release tarball artifact obtained from the Build workflow
I habitually wrap text in my editor usually by default even when writing these changelog snippets; towncrier, unfortunately, re-wraps them even if they're already wrapped without taking into account logical lines; this is understandable because it's not generally possible to guess when a line break was intentional or not depending on the underlying text format. These are formatted in reST so we can make some reasonable guesses though. This results in much better plain-text formatting of the changelog.
towncrier doesn't work well with entries that start with a bullet list, and unwrap_rst.py doesn't handle that either; could fix; or just something to be aware of...
And a few manual fixes, including documentation of the improved documentation :)
Improve the job summary (I was confused by the link format; turns out it's always like this for unpublished releases, but also write the expected release URL and some more details.
Started out just because I wanted to document the release process somewhere since I forgot myself. Filled it in from some of my notes and whatever else I could think to impart. Still some things could be expanded like how to write tests and more details on code style, but will get to it eventually. Maybe some parts are *too* detailed?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Attempt to automate as much as possible of the release process following a call to
bumpver.I experimented with this extensively over in my fork, and it seems to be pretty solid now.
It turns out it would have been a lot easier to just make "release" a job within one of the existing (probably
build.ymlworkflows) but I started out with wanting to make it a separate workflow entirely and that turns out to be somewhat ill-supported surprisingly. But I stuck to my guns and this seems good enough.In testing the release I also noticed more issues with the changelog that I tweaked, and am pretty happy with now. Some interesting ideas for upstreaming to the relevant tools,
bumpverandtowncrier. I like both of these tools but I feel like I'm fighting them more than I should have to.Added a "Development resources" section to the docs--started out wanting to just to note down the release process once I got it working, but then fleshed it out further, so this is good to have. I will probably add more to it later, especially if I get any new feedback from others getting stuck at various points, because I can't remember off the top of my head all the gotchas.