bevy-website
bevy-website copied to clipboard
Automatically generate stubs for release notes and migration guides
Each release, we want two lists, scraped from the https://github.com/bevyengine/bevy PRs merged since the last release.
- Release notes: all PRs in the correct time period that have a
Changelogsection OR have anC-Enhancementlabel. - Migration guide: all PRs that have a
Migration Guidesection, OR have aC-Breaking-Changelabel.
(The labels are there to catch stuff that was missed).
The lists generated should record:
- The PR name, number and link
- The authors of all commits
- The area tags listed (e.g.
A-ECS) - The contents of
These lists should be sorted by area tags (just use the first matching one if there's multiple).
These lists should be manually generated via a command-line method, that accepts two arguments:
- Whether to generate release note stubs or migration guide stubs.
- What Bevy version to grab commits after (this should probably stop at the next version's tag, in case we want to do this on a historical basis too?).
Library suggestions
clap, an excellent Rust CLI-builder tool.markdown-extract, to parse the sections.octocrab, for scraping Github. Seems to be the most popular / maintained of the current options?
If anyone wants to tackle this I would suggest doing something similar to all the generate-* tools we already have
Here's a janky shell script for the migration guide: https://gist.github.com/rparrett/46e434ba1fec127738fa8932f9e1d482
I ended up writing a tiny rust app to generate the migration guide #469. It worked surprisingly well.
Oh, I just saw the suggestion to use markdown-extract, that would have been way easier if I used that.
I added support to generate release note in #469 it's not complete yet since it doesn't do any filtering or sorting, but it's a start.
I believe this issue was resolved in #469 , merged in commit https://github.com/bevyengine/bevy-website/commit/f2a3e7dbfec0ec25c792f1b34f18d955ca71d8ab . Issue doesn't need to be open anymore.