Improve our Changelog management #2658
Unanswered
AurelienFT
asked this question in
General
Replies: 1 comment
-
Nice, this sounds like a significant improvement to our workflow. I'm all for it! Thanks for the proposal 🚀 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Discussion
Our team has grown since the last months and we want to be able to merge smaller PRs with a more faster pace. We previously had an issue with long CI times and flakiness (not fully resolved) that we deeply improved. We are currently facing a problem that make developers loose time and reduce our pace : merge conflicts on CHANGELOG.md.
The problem with these conflicts is that they dismiss existing reviews and this will make loose time and focus to multiple developers : the PR authors and the reviewers that need to come back to the PR verify why their review has been dismissed (no other changes than CHANGELOG.md) and re-approve. This can be seen has a small issue but when it affect 100 PR with 2 reviewers per week it's 200 re-approve and their associated time and focus shift that can be avoided.
To address this problem there is few things that we need to make sure we don't sacrify :
Given all of this conditions and some internal rules that we also have I didn't found any solution that can fit our needs and so I designed a solution that I think that can be created and applied easily (not too much dev time (1 day)), don't change too much the developer habitude and can be automated through Github Actions.
I called this solution "Fragmented KeepAChangelog", nothing really revolutionary in CHANGELOG world but I think ""fractionize"" our CHANGELOG is the easiest way to solve all of our problems following our criterias. Now let's breakdown how this could work :
A new folder (with sub-folders) would to be created that would allow every PR to add one or multiple change entry depending on the type of the entry, it could look like :
This format has a sub-folder for each category it prevent text convention in entry change if all the files were in the root which makes developers gain some time and facilitate automation. Each file is named by the PR number to simplify automation also and because they are in sub-folder by category they will not collide if we need an entry in "Added" and "Breaking" (like in the example).
Each file will contain a small text with the changes of his PR containing the same information as the existing format (a small side effect I anticipate is that people will write a bit more if it's one file per PR but I think it's a cool side effect). Example of a file named
1637.md
:When we want to make a release we can have a GitHub Action that will scan this
unreleased
folder and extract all the information to build the section for this new version in the CHANGELOG.md. This action can be triggered either on a specific branch name, a label or a manual trigger this can be determined afterwards. The folder will look like this after :And the CHANGELOG file :
Resolving this discussion
This proposition is open for comments until 15 february 2025. After this date if we didn't had any hard objections or alternative accepted I will develop this system.
Happy to your thoughts @FuelLabs/client
Beta Was this translation helpful? Give feedback.
All reactions