-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal to improve the CHANGELOG process #11539
Comments
I'm 100% in favour of finding a way to automate the changelog process as it's currently pretty painful. Curious about your thoughts on using a tool that already exist, maybe something like https://github.com/release-lab/whatchanged? I haven't spent a lot of time looking into tools, but a quick search makes me think this already exists. |
Typically I would agree, but I think this problem is simple enough that depending on another tool may be a greater pain than rolling our own. There's not much that another tool would solve for us here. I think we'd still be on the hook for writing and maintaining:
If you feel strongly about not rolling our own, I can't blame you. That said, I believe I've already got a simple and fairly robust implementation of the generator part. |
I believe #11540 is ready for review, pending agreement on the general approach. It contains all the features I expect we'd need, except for updates to the CI process which I have drafted but would submit in a followup PR. |
I like the approach. It makes a lot of sense to me. Couple more improvements that we can achieve with this approach:
- `component1`:
- Change 1
- Change 2 |
Yes, already doing this in the proposed implementation actually.
I like this idea. The challenge currently is that we aren't enumerating the components, so there will be some fragmentation due to minor variations in the way people specify the field. This is something that can be added later though. |
Since this issue is the actual proposal, I want to call out another part of the process that I am suggesting here, which was included and discussed on the implementation PR (#11540). In short, I suggested that we document issue #'s in the changelog, rather than PR #'s. This solves another painpoint in the process, where developers were required to open a PR, and push another commit to add the PR number in their changelog entry. By using issue #'s instead, developers can in theory open a PR that requires not additional changes. This also motivates everyone to actually open tracking issues before PRs. |
I love this idea and the implementation! Thank you for that, @djaglowski! This looks complete to me, should this issue be closed? |
Glad to hear it. I wanted to see it in action for a bit before we called it complete. Today I saw a couple PRs go through smoothly, so I think we can close this now. |
Motivation
The current changelog process causes many unnecessary code conflicts and mistakes. For example:
These kinds of problems degrade developer experience, especially when combined with the somewhat flaky CI process that we have. I believe that we can put an end to unnecessary changelog conflicts, and therefore remove one of the top few causes of unnecessary PR delays.
Proposed Solution
In short, I suggest we generate the changelog from yaml files. There are several examples of this strategy being used elsewhere, such as described in this GitLab blog.
Our implementation could look like this:
CHANGELOG.md
, developers will add a yaml file to a./changelog/
directory. The name of the file does not matter, so long as it does not conflict with any other unreleased change.CHANGELOG.md
as part of the release process.I have written a proof of concept for this. There are some TODOs but I think it demonstrates the concept. I'll open a draft PR and link it to this issue. (Edit: see #11540)
Usage
Note that unreleased changes have been removed from
CHANGELOG.md
and converted to yaml files in./changelog/
.The text was updated successfully, but these errors were encountered: