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.
This adds a fully automated changelog and version pipeline, fixing #38. I looked into mainly Towncrier and Changie, but both of them weren't super integrated, so I wrote my own solution, which ended up being fairly simple.
The solution here works like this:
Every PR has to have a "This change is user-facing" checkbox to the PR description (checked in the default PR template), and either:
Uncheck it to indicate it's not a user-facing change
Or add a changelog by creating a file in one of
changes/unreleased/{major,medium,minor}
.The file has to be a markdown file with its first line like
#
(and no other lines starting with#
).Every week on Tuesday (presumably after the automated update PR from Monday is merged, but can also be triggered manually at any point), a version PR is opened if the main branch has any unreleased changelogs. This PR includes:
Depending on whether there are any major, medium or only minor changelogs, the appropriate version number is bumped in
Cargo.toml
A new
changes/released/$MAJOR.$MEDIUM.$MINOR.md
file that compiles all previously unreleased changelogs into a single file. Each changelog entry is a Markdown list entry of the formThe author and PR number is automatically determined based on which PR added the changelog file.
Once that PR is merged (optionally with manual updates), the release will be published, with the compiled changelog included.
Currently there's nothing that would ever update the changelog of releases, but I don't expect that to be necessary.
This PR needs more testing and comments before it can be merged.
This work is sponsored by Antithesis ✨