Hi folks,
After a lot of back and forth I feel we've reached a sensible strategy that gives the best compromise between a consistent approach, a clean history, and not putting a lot of additional burdens on committers to do complex squashing/rebasing.
The TL;DR of it is that from now on, by default, all of us will merge every feature pull request using squash and merge.
I will soon disable the 'rebase and merge' option on our repository. Please note that although the 'merge commit' option will still be available, we will not be using it for feature pull requests unless there are very exceptional circumstances (see the docs for more on that). We will however still use merge commits to keep master and develop in sync.
Please take a few minutes to familiarize yourself with the dev docs again. Fortunately, the practicalities are not hard: the main thing to remember is to use the 'squash and merge' option when merging a PR, and to take a little time to make sure the commit message is well formatted.
Cheers,
Jeen
PS I fully realize that in these kinds of discussions, it's impossible to please everybody. I'm sure some of you will have arguments in favor of a different approach, and quite likely they're valid arguments too: there is no single "correct" way to do any of this. But at this point I want to finalize this discussion. The outlined strategy is good enough for our purposes, and we should now put it to practice.