Nobody wants to review a large PR from one go. The issue is to split a (relatively large) feature into multiple smaller PRs. The rules of the game are
- This is a single feature, which cannot be meaningfully split into multiple standalone features
- The whole purpose is to make the reviewer's job easier, by making "unit" pull requests. This means that there is more opportunity to describe each unit and better communication with the reviewer. Also, helps focusing the review.
- While units can be covered by unit tests, the meaningful tests require the full functionality.
For an example, let's assume that there is a feature which would be implemented as
niceFeature() {
stepA();
stepB();
stepC();
}
Each step could be reviewed and unit tested independently. So, there could be four branches, each of them being based on the previous one
master
\-> addStepA
\-> addStepB
\-> addStepC
\-> addNiceFeature
The problem is that if during the review of addStepA
, there are some changes to be made, this would require rebasing everything. Which would be fine, but there could be many (possibly conflicting) rebasings with the whole goal of testing the reviewer's suggestions for addStepA
and their impact on the niceFeature
. Is there an easier workflow?