Automate Changelog Generation #661
Labels
A-automation
Area: Issues and PRs related to Automation
A-ci
Area: Continuous Integration
C-enhancement
Category: An issue proposing an enhancement or a PR with one
P-high
Priority: High
Milestone
This is part of an effort to remove pain points in the merging process, especially as we are growing the team and have a very long CI pipeline that needs to run as smoothly as possible.
To reduce the number of merge conflicts (and so the number of CI-reruns) that occur while merging PRs we should automate the entire changelog generation process. We add a script and a GitHub action to generate/verify the changelog:
Constraints
release-xX.Y.Z-something
Ideas
diff output.md Changelog.md
=> ifdiff
returns empty, return successGenerate Changelog Diff
L-
label, if no label exitSteps
https://keepachangelog.com/en/1.0.0
git
andgh
)release-vX.Y.Z-something
branchname. If the branch name doesn't parse, return failureL-nochangelog
????output.md
withchangelog.md
, return success if identicalFUTURE:
2. check old sections of the changelog
3. pull their release PR
4. check if it has
L-withdrawn
or something like that5. rewrite the old section to add [ YANKED ]
Verify Changelog Diff
release-vX.Y.Z
continue otherwise skip with return value0
TODO
L-
labels add label requirement to PR merge rulesL-
labels. It isrequired
to pass for every PR.release-
it must be labelledL-release
ANDL-release
, branch name must conform torelease-vX.Y.Z<-arbitrary_string>
. The part in <> is optional, must be lead with a-
character and may not contain whitespaceCHANGELOG.md
file) but without the "Unreleased" sectiongit
andgh
as dependencies). May be a shell script or a small Rust CLI program.publish_draft_release
to ensure it's being run Add gh action release branch name to Release PR merge rules (has to berelease-vX.Y.Z
)The text was updated successfully, but these errors were encountered: