Managing dormant pull requests in scikit-image

In yesterdays meeting we discussed how we can address and deal with pull requests that have been inactive for some time.

We propose to use probot/stale to label pull requests (and issues?) as “dormant” (more friendly than “stale”) after more than 6 months. The precise inactivity period and label name are up for discussion but I think the time should be generous. This would provide immediate context to pull requests, provide an automated reminder for participants and help with prioritizing and filtering our open PRs. Currently, it is not intended to automatically close dormant pull requests with the bot. That would be a more controversial suggestion that should not hold up the benefits we see in just using the label. However, the label could help with doing that manually.

During the meeting I also suggested using a new project board to manage dormant pull requests, similar to NumPy’s Inactive PR Management. I think something with columns for “dormant”, “needs review/decision/…” could be a huge help in applying maintainer time more efficiently! Unfortunately GitHub does not seem to support adding labeled PRs automatically like GitLab does. It looks like we would need a GitHub action for that which I don’t like as much. There may already be fitting implementations on the marketplace though?

In general I think we should consider more friendly and simple automation to help with our limited time.

What do you think? I’m planning to setup the dormant label and bot some time after I’m back from EuroSciPy unless this proves controversial.

3 Likes

@InessaPawson, I’m taking the liberty to ping you here because I’d be interested in you experience with NumPy’s approach. :slightly_smiling_face:

1 Like

Thanks very much @lagru and everyone else who participated in the proposal! I agree 100% that “dormant” is much better than “stale” and that manually closing (potentially) feels much better than having the bot/action close it.

I also agree that there is probably a GH action already for this…

Hi, Lars!
This is the policy we recently introduced for inactive PRs: Reviewer Guidelines — NumPy v1.24.dev0 Manual. (Refer to the last two paragraphs.)

In practice, we are taking the exact approach that you outlined in your comment.

We haven’t yet set up a bot to label PRs that didn’t have any activity for over 6 months.

Setting up a GitHub project proved to be very useful. Visualization of the PRs helped us refine our triage practices and recognize some patterns that lead to inactivity (e.g., requests for tests).

If you decide to go ahead with the adoption, I recommend using new GitHub projects (not the classic ones) as they have better features. This is the reason why I moved our GitHub project for the management of inactive PRs here: Inactive PR Management - beta · GitHub.

If you have any further questions, please don’t hesitate to reach out.

2 Likes

Thank you for the feedback Inessa! It’s good to know that you seem to default to a 6 months grace period as well. I particularly find the bit about identifying patterns interesting. That’s another point in favor of using project.

1 Like

I have also set up a GH project for keeping track of PRs from first-time contributors: NumPy first-time contributor PRs · GitHub. The objectives are similar: identify challenges, improve communication and/or documentation, and analyze some metrics related to community health later on.

1 Like

See Add Github actions/stale to label "dormant" issues and PRs by lagru · Pull Request #6506 · scikit-image/scikit-image · GitHub.

3 Likes