implement a way to add the MR to the changelog with the merge without duplicates
Description
The MR has to be reflected in the changelog. Until now the line that needs to be filled in there has been manually injected in the changelog. This creates duplicates when rebasing.
Goal
Automatize the changelog creation.
Evidence
Solution
One approach would be to delete line 1 in https://gitlab.com/foodsharing-dev/foodsharing/-/blob/master/.gitattributes#L1 ... Peter liked it more with this setting, as we kept getting merge conflicts with other changelog entries (e. G. Two users writing line 17 in the changelog will lead to a conflict). That is why he set it to merge two lines in parallel.
These solutions have in common that they use an extra markdown file for each line in the changelog:
- https://gitlab.com/enhorvat/giteasychangelog
- https://gitlab.com/neuland-bfi/changelog
- https://gitlab.com/NebulousLabs/changelog-generator
We could also use a gitlab bot so, that it takes a line of the Merge Request description (### changelog -> 'take everything until a command of our choosing like END') and adds it at the top of the changelog.md During the release process, we could then order the changelog.
Links / references
#1014 (closed) had the following points:
- one more tool that does per-file work, is Towncrier: https://github.com/twisted/towncrier
- An example of how it would look like can be seen in the synapse project: https://github.com/matrix-org/synapse/tree/develop/changelog.d
- When auto-generating during the merge, it would be benefitial to update with the merge request title, link, and author automatically.
- Another way would be to "force" squashing for commits and then auto generate via commit. That would actually have multiple benefits. We just need clear rules then which are enforced.
- the question: How would we handle follow-up merge requests that we used to attach to the previous changelog entry ? For example: https://gitlab.com/foodsharing-dev/foodsharing/-/blob/master/CHANGELOG.md#L20 https://docs.gitlab.com/ee/development/changelog.html
- We enabled squashing MRs by default