bevy-website icon indicating copy to clipboard operation
bevy-website copied to clipboard

Automatically generate stubs for release notes and migration guides

Open alice-i-cecile opened this issue 3 years ago • 1 comments
trafficstars

Each release, we want two lists, scraped from the https://github.com/bevyengine/bevy PRs merged since the last release.

  1. Release notes: all PRs in the correct time period that have a Changelog section OR have an C-Enhancement label.
  2. Migration guide: all PRs that have a Migration Guide section, OR have a C-Breaking-Change label.

(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:

  1. Whether to generate release note stubs or migration guide stubs.
  2. 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

  1. clap, an excellent Rust CLI-builder tool.
  2. markdown-extract, to parse the sections.
  3. octocrab, for scraping Github. Seems to be the most popular / maintained of the current options?

alice-i-cecile avatar Jul 22 '22 17:07 alice-i-cecile

If anyone wants to tackle this I would suggest doing something similar to all the generate-* tools we already have

IceSentry avatar Jul 22 '22 18:07 IceSentry

Here's a janky shell script for the migration guide: https://gist.github.com/rparrett/46e434ba1fec127738fa8932f9e1d482

rparrett avatar Oct 19 '22 23:10 rparrett

I ended up writing a tiny rust app to generate the migration guide #469. It worked surprisingly well.

IceSentry avatar Oct 25 '22 05:10 IceSentry

Oh, I just saw the suggestion to use markdown-extract, that would have been way easier if I used that.

IceSentry avatar Oct 25 '22 05:10 IceSentry

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.

IceSentry avatar Oct 25 '22 21:10 IceSentry

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.

TrialDragon avatar Jan 14 '24 23:01 TrialDragon