Replies: 5 comments 2 replies
-
|
@manuq when you return I am curious what you think here! |
Beta Was this translation helpful? Give feedback.
-
|
A related point: currently we have a CI workflow that runs It would be kinder/more helpful to have the linter just fix the problems. Unlike the tool we currently use, https://github.com/GDQuest/GDScript-formatter can reorder code to match the GDScript style guide. If we use real merges, having extra CI-generated "fix code style" commits would clutter the history, but if we squash-merge, these would be squashed away... |
Beta Was this translation helpful? Give feedback.
-
|
Yes please. As the maintainer who did it wrong twice, the last time adding 52 commits to the project history for a single file change #1800, I find it error-prone to have to check each time if the correct merge option is selected. It also goes against my own working culture. I prefer clean separate commits to a level that makes the review hopefully easier, and to remember why the change was made after the fact. But since we are not teaching Git rebase in our programs, I agree to only allow squash merges. |
Beta Was this translation helpful? Give feedback.
-
|
I'm still very conflicted here because in #1860 it really did make more sense to split the change into atomic commits. There are lots of notes in each commit message. But I don't think it makes sense to review this as 4 separate PRs. I suppose I will need to adapt my style! |
Beta Was this translation helpful? Give feedback.
-
|
I have made this change. Only squash-merge is permitted. I will update the documentation. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
In our contribution documentation we sit on the fence about whether we require a clean commit history. First we say that commit messages should be well written; “Pull requests should contain one commit per self-contained, logical change.”; and so on. But then we say:
Currently the repo is configured to allow both squash-merging and real merging of PRs.
The problem with sitting on the fence is that the maintainer who presses “merge” has to remember to choose the correct option based on the approach that the submitter has used. It is very easy to get this wrong and add many messy commits to our commit history. I have looked into it and there is no way to dynamically adjust the available strategies in a PR, short of doing all merges via some external tool - I don't think the complexity of adding non-standard merg
I think we should standardize on squash-merging and disable the ability to create a merge commit. It would simplify our contribution instructions; reduce the possibility of maintainer error when merging an approved PR; and is more consistent with how we teach learners to use Git. (We don't teach
git rebasebecause we are essentially trying to teach just enough Git for people to collaborate and no more.)This bothers me as someone who has spent 20 years obsessing about commit messages and factoring out his PRs into a series of carefully-crafted commits. But I know I am an outlier here! Many other projects use squash-merge exclusively. (Godot itself is a weird mix: they require PRs to contain exactly 1 commit, and then they create a merge commit. IMO this is the worst of both worlds because it forces contributors to learn to use
git rebasebut also doesn't allow them to prepare logically-structured series of changes.)For when one really wants to do a series of self-contained changes there are tools that can help with this, e.g.
git branchless submitcan open a stack of PRs, one for each commit in a branch.Beta Was this translation helpful? Give feedback.
All reactions