-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decide, document, and enforce accepted merge strategies #12417
Comments
This is how I'm thinking to structure the conversation (with my proposal from what I know):
I realize a GitHub issue isn't a good place to collaborate. If this is contentious or there are lots of comments, I can pull out somewhere else like a Google doc. (Someone else feel free to.) Note I wanted to get some initial thoughts down and am out of time for today. I welcome more experienced folks to add usecases or concerns I'm missing. Cc @rjan90 , @rvagg , @aarshkshah1992 as people who have more recently run into some of this. |
Agreed.
Agreed. This would be a good example to put in our docs.
Isn't attribution given in the squashed commit listing all authors, and if someone really wants to see who did what, they can look at the PR? Other than it affecting stats like "X contributed Y lines to Lotus", does it matter?
Agreed that we should do actions like this to minimize commits.
Sure, but I think we need to live with this. I don't think we need to do anything to feed the idea that the number of commits is important or speaks to the significance of the change. I realize its a proxy to the amount of work involved, and definitely a better measure than the number of lines touched, but it's still far from perfect. (Not actionable here right now, but I'd ideally like us to have an expected impact attribution system for a change along the lines of what is done in https://gitrules.ai/.)
I completely agree. I will probably lift that statement into any documentation written here. Any proposals/PRs here, should be guiding to help achieve this aim.
Yeah, I want to see this clean up.
Agreed. Next steps:
|
|
This + ease of doing release chores are the main reasons I prefer squashing. The changelog sorting for prepping a release does take quite some time when there is a lot of PRs that has not been squashed as they show up as:
Without any reference to the PR itself, and you have to manually go and search up the PR number and see that you have it in the autogenerated changelog. While squashed commits shows up as:
I agree that large contributions and/or PRs that has a lot of auto-generated code (typically network skeleton PRs), it is very nice have incremental commits and it would be nice to keep the commits separate and not squash them. Additionally, it would be helpful to:
That would make it more visible when backporting to releases, and potentially help prevent issues like forgetting to cherry-pick all commits, which occurred during the v1.28.1 release. |
Thanks all for the feedback. This makes sense. Unless someone says otherwise, I think the next step is for me to draft a PR to CONTRIBUTING and/or RELEASE_FLOW with this info. That then will enable more targeted suggestions or additional collaboration. I'll plan on doing this the week of 2024-09-02 when I'm back. |
I reviewed the merge strategy board before releasing v1.29.0: #12422. For the Alternatively, we can separate these steps if we prefer not to squash the version string update/make gen/and make docsgen steps in the release branches. |
There's been lots of useful feedback here. I haven't incorporated it into a drafted doc. This is what I want to cover/do next week: Things I want to get documented:
I also want to take this accompanying actions (these are new and hadn't previously been discussed - input welcome @rvagg and @rjan90 ):
I believe 1 and 2 will prevent what we saw happen in #12272, where we had a good commit history that could have been rebased, but instead ended up with a squash commit that also has an ugly "[skip changelog]" prefix. |
Done Criteria
Why Important
Inconsistencies or mis-wielding here was a source of pain in the nv23/1.28.0 release train, especially when wanting to compare branches to ensure the right commits were present. Some places this came up:
This also affects the general tidiness of the commit history which can impact ease which one can quickly grok the progression of changes.
User/Customer
Maintainers but also users who inspect the commit history.
Notes
Tasks
The text was updated successfully, but these errors were encountered: