I think a single (squashed if required) commit for the start of a PR.
ANY changes due to comments should be reflected as separate commits on the PR. Once approved, that PR should squash all commits into 1 commit with a message that describes what was done,etc...

In the past I've heard developers ask for the following:

1x commit to address the problem/feature
1x commit with refactors.

I must be honest, but I am yet to find 1 developer that keeps a list of all changes they want to be refactored separate from the bug/feature code. OR better stated I am yet to find where this was sustainable AND productive.

It would definitely discourage the community to refactor, because who keeps track of all the code they would like to refactor and change the code after completing the task. Sounds like double if not triple work to me.

Also, how would this work if there are comments on the code i.e better approaches, have you thought about... or that might lead to errors. Are these changes applied to the core/base commit or against the refactor or both?

Also, a good practice for all is to commit (and push) code on a daily basis on their branches. "WIP - completed x,y,z. need to address: a,g,r" comments are not uncommon and safeguard against loss of equipment, illness of members,etc...

My personal coding style is, I make changes to code as I pass through it.. (change variable names when they don't make sense, refactor methods, etc...) So, I rarely have the time to retrace my steps and post-factum re-apply my refactored changes.

I think the checklist could be reworded, but as everything in this project, we take it in the spirit was intended and don't follow it to the letter. Would the rewording of the checklist enhance/improve/make the intent clearer or not? I don't care either way, but when someone merges a PR into a main branch with many intermediate commits, it just clusters the commit log with "contextually irrelevant" noise. (also makes it harder to follow all the changes that are in a branch). What if I want to rollback a commit into develop, how many does one have to revert, 1 is always simpler than 2-10... Also.. cherry picking becomes simpler...

--Udo

On 5/31/19 13:43, Nabarun Nag wrote:
In my opinion, I am okay will multiple commits within a PR.
But please do squash them to a single  commit when it is pushed to develop.
This helps us a ton if it is single commit.
- bisect operations are easier when it is a single commit during major
failure analysis.
- cherrypick is easier when it is one commit.


I even don’t prefer merge commit messages :
  -  none of the big ASF projects do it.
  -  visualizing on tools is bit skewed.
  -  difficult to analyze failures .


I would like to reiterate Dan’s statement on emphasis on people and empathy
over blanket process and rules.

Regards
Naba



On Fri, May 31, 2019 at 1:32 PM Helena Bales <hba...@pivotal.io> wrote:

+1. I would guess that it is the checklist as part of the PR that is
confusing people.

The other reason that history gets rewritten is when force pushing after a
rebase. While fast-forwarding is necessary on occasion, this can be
accomplished without rewriting history by using a merge.

As part of our document on making PRs, we should include instructions on
how to handle the situation where fast-forwarding is necessary, explicitly
discourage the use of merges and force-pushes once a PR has been opened,
and some guidelines regarding the appropriate number of commits when the PR
is initially opened. Once we have these guidelines, it would be helpful to
link to them from the PR checklist that we currently have, and rework the
checklist so that it is in line with our desired process.

On Fri, May 31, 2019 at 1:20 PM Darrel Schneider <dschnei...@pivotal.io>
wrote:

Something I have noticed is that often when I have requested changes be
made to a pull request is that the changes are force pushed ask a single
commit to the pr. I would actually prefer that the changes show up as a
new
commit on the pr instead of everything being rebased into one commit.
That
makes the history of the pr easier to follow and make it easy to see what
has changed since the previous review. What do others think? Have we done
something that makes contributors think the pull request has to be single
commit? I know the initial pull request is supposed to be but from then
on
I'd prefer that we wait to squash when we merge it to develop.

Reply via email to