On 07Dec2018 1340, Terry Reedy wrote:
Simple bugfix example:
<commit 1> Add test to test_mod that fails with TwinkleError.
Posted to issue by Joe Blow.
<commit 2> Make new test pass using the 'underhand' strategy.

The split above is not really necessary, but PR 10245 squashed changes to 52 files of 15 file types into one initial commit.

https://github.com/python/cpython/pull/10245/commits/17ba155a7b794926ce705ee0e2af787fbd2996e6

View Files displays them alphabetically.  Jump to ... lists them in the same order, but includes the functions changed, so it is hundreds of lines.

I think this PR would have benefited from having perhaps 10 or more initial commits, each with a comment about the group of files included. In icon commit could have said something about the source and purpose of the added icon files.  One commit could have included the venv and test changes that you want to review.  An added message, as long as needed, could have explained these particular changes.


This is great in theory, but if you look back at the original PR it would have been 100+ commits (I was occasionally squashing and force pushing). What you're really proposing is:

* do all the work using the git workflow (stream-of-consiousness commits)
* squash all the commits at the end
* re-expand the single commit into logical groupings of files and re-commit them

So it's easy to sit back and imagine that I had all the perfect changes ready to go and deliberately chose to make it harder to review, but that's not the case at all. Making it sound like this is how development works is really disparaging to people who find themselves not producing perfect commit histories.

And let's be honest, there's no good tooling for turning a series of interdependent commits into a smaller set of sensible ones. Squashing at least gets rid of the changes that were reverted as part of the entire PR, and if you then just want to split by file you're really just asking for extra work. If someone had bothered to say "I'll review the parts of it that are relevant to me if you can split them out" then I would have, but nobody (in public) showed any interest in reviewing the changes at all - I had some private reviews done by colleagues at work, who weren't so demanding about it.

I review as many PRs as I send these days (maybe more? I'm not counting), and I always try to make an effort to have mercy towards people to save them having to work extra hard just to make my life a little bit easier. It grates to have had an incremental change visible in public for over two months, have it be totally ignored the entire time, and then have to defend something that I already did. Luckily I get paid work time for doing this; really can't see why I'd want to suffer through this for free...
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to