Replies: 2 comments 13 replies
-
I tried to do something like this (long time ago) but it is too difficult and the result is not as wanted. The wanted granularity of (merge) commits and release notes simply does not match. Furthermore, it would be a huge practical problem as the commit message of the merge commits are written by the merger and we want the release notes written by the authors. The constant merge conflicts are a problem of GitHub, not from Git. If you merge locally you see that there are no merge conflicts due the union merging. (doc/news/.gitattributes) Would be interesting if others (like GitLab) are handling this better. Recently GitHub made problems that I could not add someone and needed a reverification that I am employed at an university. So long-term we probably need to move away from GitHub anyway. |
Beta Was this translation helpful? Give feedback.
-
I thought about a few alternatives, but I think the best solution would be this:
This way we still get the granularity we want (n changes per PR) and the difficulty is basically the same as the current system. But crucially, since we use one file per PR there shouldn't be any merge conflicts (not locally and not on GitHub). If a PR is an update to a previous one, we could also allow adding e.g. As a reminder, these are just ideas and I would not implement them before 1.0 (unless somebody has the time to test all this). |
Beta Was this translation helpful? Give feedback.
-
@markus2330 @mpranj @robaerd
Did any of you consider using "Conventional Commits" and the semantic-release system? It would semi-automate the creation of the release notes and reduce merge conflicts (because the
_preparation_next_release.md
isn't needed anymore).https://www.conventionalcommits.org/en/v1.0.0/
https://semantic-release.gitbook.io/semantic-release/
The commit format could be checked with a GitHub action, similar to what we do for the release notes. The check should, however, be separate so that we can develop code without using the convention for every commit. Then at the end of a PR we squash everything down into one (or a few) commit that conform to the convention. Always using a squash merge (AFAIK this can be enforced in the GitHub settings) would also be an option. But then you have to remember to write a correct description when merging, because the commit message for a squash merge cannot be checked AFAIK.
There are some pre-built actions that do checks similar to "Conventional Commits" for PRs (e.g. https://github.com/amannn/action-semantic-pull-request). We could also build something custom. Then we could enforce that the PR description follows "Conventional Commits". I think the PR description is the default suggested by GitHub when using a squash merge.
Note: This is only a vague idea, but I think something like this would be much better than our current
_preparation_next_release.md
. If we do anything like this, it should only be after 1.0. Then PRs should become smaller and which is much more manageable for "Conventional Commits".Beta Was this translation helpful? Give feedback.
All reactions