Description
At the moment each pull request is expected to have its own edit of CHANGES.txt
- the PR template encourages this. The problem is after a PR sits for a while, there are inevitably conflicts to resolve in that file. This hits you when you need to rebase, for example - you have to perform a relatively useless merge edit because two PRs each added a line in a similar place and git sees a conflict. We would like to implement something to handle keeping these separately and producing a changelog for a release at release time.
For illustration, the CPython project has a system where with each merge, a new file is created with the potential changelog entry, these are then stitched together by a homegrown blurb
tool when it comes time to make a release (and the directory of changes-since-last-release is cleaned out). You can see this in action at https://github.com/python/cpython. Look in Misc/NEWS.d
. That directory contains past version-specific changelogs, while the subdirectory next
containss categorized snips that are candidates for inclusion. The needs of CPython are not the same as SCons, so directly lifting it doesn't entirely make sense, but it serves to illustrate the idea.