I've definitely been on both sides: posting a large PR myself, and as a
reviewer asking for PRs to be separated into smaller pieces. If we want
something persisted beyond an email thread I think we could update
CONTRIBUTING.md with a new section about how to post larger changes. Tips
for breaking down PRs that we could document:
- Separating refactoring PRs from the new change that depends on the
refactoring
- Splitting one refactoring of a general area of code into individual
refactoring PRs to iterate from the current state to the desired state.
- Use parent jiras with subtasks as part of planning, before coding.
- Provide design docs or at least detailed PR descriptions to make complex
reviews more manageable.
- A large PR with a description covering multiple disjoint issues may be
better split to independent fixes.

I mention refactoring a lot because those sorts of PRs are frequent
culprits of these large diffs. One example I had recently was refactoring
in https://github.com/apache/ozone/pull/4838 followed by the change
dependent on the refactoring in https://github.com/apache/ozone/pull/4867.
The latter was still a large PRs but splitting helped speed up review and
keep the diff under 1k lines. Made my dev work easier too.

I don't think a large PR should warrant a CI failure either, this seems
like the type of thing that would be up to reviewers to enforce since it
impacts them the most. If you're set to review a large change, ask if there
is any way it can be split to a dependency chain of two or more consecutive
PRs. Having something written in COMTRIBUTING.md will provide a source that
reviewers can point devs towards as a reference in these situations.

Ethan

On Wed, Jul 26, 2023 at 3:02 PM Wei-Chiu Chuang <weic...@apache.org> wrote:

> Hi Ozoners,
>
> In one of the coffee break chats with a colleague of mine, we realized many
> of the PRs in the Ozone project are quite lengthy.
>
> I'm guilty of this myself too. Keeping PR short and sweet is good hygiene.
> It allows reviewers to spot potential problems in the code easier, and your
> PR is more likely to be reviewed and iterated quickly.
>
> How would you like to see the PR quality improved? I'd like to urge
> everyone to break down PRs but I don't necessarily want a GitHub Action
> that enforces length limit. :)
>
> Weichiu
>

Reply via email to