Skip to content

[DISCUSSION] PR Review Process / States / "How to find the PRs in the list that need review" #21038

Open

Description

@alamb

This is related to the broader discussion about organizing DataFusion's growth:

As the number of open PRs grows, it is getting harder to quickly see which PRs need attention and how best to help.

For me personally, I struggle wiht:

  • If I have time to review PRs, it is not obvious which open PRs are waiting on review and which are waiting to incorporate feedback
  • If I have time to merge PRs, it is not obvious which already approved PRs are waiting for the 24 hour period .

For example, I personally use these two searches to find waiting PRs

I think the core issue is that the current way to find PRs mixes together many different states, which makes it harder to triage efficiently

Also, there is currently no documented "review priority".

Describe the solution you'd like

I would like a clearer and more explicit way to find PRs that need community attention.

I think at the core we probably need some sort of triage process and "workflow" for PR review / merge attention. I am acutely aware that we have very little extra capacity for such a process with the existing committers, but I do wonder if having it might attract others who can help the reviews along

Describe alternatives you've considered

For example, a PR priority definition might look like (not saying this is the right one, it is just a strawman)

  • Regression Bugs (what used to work doesn't anymore)
  • Bugs
  • Performance Improvements
  • New Features

For example, a PR review flow might look like this

flowchart LR
      A[Needs Initial Review] --> B[Feedback Received]
      B --> C[Feedback Addressed]
      C --> B
      C --> D[Approved, waiting]
      D --> E[Approved Ready to Merge]
Loading

Additional context

Activity

  1. alamb commented on Mar 18, 2026

    @alamb
    ContributorAuthor

    I think @neilconway may have some thoughts on this one too

  2. adp2201 commented on Mar 18, 2026

    @adp2201

    My recommendation would be to document the PR flow first, and only add labels later if there is still a real gap.

    A lightweight documented flow like this would already help a lot:

    • Needs initial review
    • Waiting on author
    • Ready for re-review
    • Approved, waiting 24h
    • Ready to merge

    By “define the corresponding queries / saved searches”, I mean mapping each of those states to a GitHub PR search so people can quickly see the current list for that state without adding more process immediately.

    For example:

    • Needs initial review → open, non-draft PRs that are not yet approved
    • Waiting on author → PRs with requested changes / unresolved review feedback
    • Ready for re-review → PRs updated after review feedback
    • Approved, waiting 24h → approved PRs that are still inside the waiting window
    • Ready to merge → approved PRs past the waiting window

    I’d try that first using GitHub’s existing signals before adding labels. Labels can help, but they also create maintenance overhead, and stale labels can make things less clear rather than more clear.

    So my preference would be:

    1. document the states
    2. define the matching queries / saved searches
    3. add labels only if there is a state GitHub cannot represent clearly enough on its own
  3. alamb commented on Mar 19, 2026

    @alamb
    ContributorAuthor

    Thanks @adp2201 -- can you provide an example github search for the states you propose (if they exist it would be great). For example, what would be github PRs for these two states (we can use them today!)

    • Approved, waiting 24h → approved PRs that are still inside the waiting window
    • Ready to merge → approved PRs past the waiting window
  4. adp2201 commented on Mar 19, 2026

    @adp2201

    After digging into it a bit more, I don’t think it is straightforward to distinguish those two states accurately with GitHub search alone.

    The closest useful filter for the broad “approved PRs” bucket seems to be:

    • is:pr is:open repo:apache/datafusion review:approved draft:false

    I think that works reasonably well for “approved PRs”, but not for splitting:

    • Approved, waiting 24h
    • Ready to merge

    because the missing piece is the approval timestamp. GitHub search gives us review:approved and updated:, but not “approved at”, which is what we would actually need.

    So I think the realistic options are:

    1. Use a single approved bucket

      • Assumption: reviewers / committers can manually interpret whether a PR is still inside the 24h window
      • Lowest overhead, but does not make the distinction explicit
    2. Use a manual label/state for the 24h distinction

      • Assumption: someone updates it consistently
      • More explicit, but adds maintenance overhead
    3. Use small automation

      • For example, a scheduled GitHub Action that checks approval timestamps and reports or labels PRs accordingly
      • Assumption: we care enough about this distinction to automate it properly

    My current preference would be:

    • use the single approved bucket first
    • only introduce labels or automation if the 24h distinction turns out to be operationally important
  5. alamb commented on Mar 21, 2026

    @alamb
    ContributorAuthor

    So I think the realistic options are:

    I don't know what you are trying to propose (this sounds LLM generated). When you say "bucket" how would that be represented?

  6. kumarUjjawal commented on Mar 22, 2026

    @kumarUjjawal
    Contributor

    Can we do label based approach, for example, every new PR will bel labeled needs review and whenever a committer(I'm not counting community member reviews here because they don't have the ability to change labels as far as I know) reviews the PR they can remove the needs review label and add either needs changes, needs feedback or approved. Apart from the approved the other two will remain in that state until the committer is satisfied with the changes and then can lable it approved. My reasoning for the label approach was purely based on the ability to know state and fileter easily.

  7. adp2201 commented on Mar 22, 2026

    @adp2201

    @alamb "bucket" is what I am referring to for all PRs that are captured with this filter : is:pr is:open repo:apache/datafusion review:approved draft:false. Which is basically, single category that tracks all approved PRs and doesn't distinguish between PRs outside and inside of 24 hours boundary. Reviewers will need to manually check what PRs have passed 24 hours time post PR approval. Let me know if this clarifies..

    @kumarUjjawal the challenge with manual labels is that it adds new process for everything to remember and execute. Whereas, with preconfigured filters, it's much more automatic.

  8. kumarUjjawal commented on Mar 22, 2026

    @kumarUjjawal
    Contributor

    is:pr is:open repo:apache/datafusion review:approved draft:false

    How does this translates to:

    doesn't distinguish between PRs outside and inside of 24 hours boundary.

    Your suggested filter doesn't have anything related to time.

    adds new process for everything to remember and execute.

    in my opinion following predefined process is much more manageable.

  9. alamb commented on Mar 23, 2026

    @alamb
    ContributorAuthor

    I agree that adding some (simple) labels at first would likely be the most effective here

  10. alamb commented on Aug 2, 2026

    @alamb
    ContributorAuthor

    For example, I personally use these two searches to find waiting PRs

    It seems the problem has gotten worse in the last 6 months

  11. alamb commented on Aug 2, 2026

    @alamb
    ContributorAuthor

    An update here from me:

    1. I feel personally overwhelmed by the number of PRs waiting on review (I can't possibly review them all and I struggle to figure out which ones to review first) -- there are currently 208 open!
    2. This problem is likely getting worse due to the combination of AI generated PRs and DataFusion' growth as a project

    Some bright spots:

    1. I have been focusing on doing a final review / merge of PRs that have been reviewed / approved by other reviewers such as @kosiew (which is super helpful)
  12. alamb commented on Aug 2, 2026

    @alamb
    ContributorAuthor

    I got inspired and tried to distill my PR best practices into documentation

  13. added a commit that references this issue on Aug 11, 2026
  14. added a commit that references this issue on Aug 12, 2026
  15. alamb commented on Aug 17, 2026

    @alamb
    ContributorAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions