Open rickynils opened 3 months ago
https://github.com/vweevers/common-changelog/issues/3 is related, but there is no real advice to be found there.
My view is that people who are interested in an older release line, will have no problems finding that branch and the relevant changelog. But other people (the majority?) who use the release line from main
are probably not interested in older release lines and may get confused.
I don't see the point of a unified changelog, and have no idea how that would be managed. It could be painful, for example when a changelog entry links to README.md#new-feature
but that New feature
header does not exist in the main branch. The only scenario that I've encountered myself, quite frequently, is when a temporary release line (e.g. a bunch of hotfixes) get merged into main
along with the changelog entries. This scenario makes sense to me because the changelog is paired with the actual content.
It is not uncommon for a project to have release branches for continued development of older releases. For example, your
main
branch might contain the tags1.0.0
,1.0.1
,1.1.0
and2.0.0
, representing stable releases of your project. But you also have the branches1.x
and2.x
, where1.x
could contain the additional tags1.0.2
and1.1.1
, for example. Those releases could have been published after2.0.0
and will not have their commits on themain
branch.You touch on this subject in this section:
So you can sort of imagine a "unified" changelog with all of the releases that has happened, no matter from which branch they originated. This is fully reasonable to me. But I wonder how to handle this in practice? There will be different versions of
CHANGELOG.md
in themain
,1.x
and2.x
branches. Should I make sure that theCHANGELOG.md
inmain
always is the "unified" version of allCHANGELOG.md
files, or should such merging happen outside the repository?