Keep a Changelog
Semantic pull requests [0] + conventional-changelog [1] + squashing PRs and you get almost the same results (and more) with great automation and self-documentation for the whole process:<p>* you'll never forget to add something to changelog<p>* you get links to PRs in your changelog<p>* it's much faster to make edits to PR messages compared to editing files<p>* outside contributors get familiarized with the practice much faster (imagine getting new contributors to update changelogs)<p>We recently adopted this practice at Pyroscope and it's been working out pretty well for us [2], I can certainly recommend it.<p>[0] - <a href="https://github.com/apps/semantic-pull-requests" rel="nofollow">https://github.com/apps/semantic-pull-requests</a><p>[1] - <a href="https://github.com/conventional-changelog/conventional-changelog" rel="nofollow">https://github.com/conventional-changelog/conventional-chang...</a><p>[2] - <a href="https://github.com/pyroscope-io/pyroscope/blob/main/CHANGELOG.md" rel="nofollow">https://github.com/pyroscope-io/pyroscope/blob/main/CHANGELO...</a>