This is a valid point, and I appreciate you bringing it up. I was contemplating a scenario where PRs would be marked as “Stale” if a reviewer requested feedback from the author and received no response within a specified timeframe, for example (currently these are the many comments “Hello @author, would you have time to keep working on this?”).
I read this post and while I agree with your rationale for (not) automatic closing old issues (since they may very well be still valid), I also agree with Sarah in that the automatic flagging of Stale PRs makes more sense, which is what I’m proposing in this post (“There are configurations around stale PR closing which I think makes more sense in general … , as other people might be reluctant to work on something if there is an open PR and it prompts someone to decide if they want to come back to this if they have just forgotten for example.”).
I don’t agree with this sentence; it feels like an oversimplification of the process. At least to me, this takes around 15-30 minutes per PR. The process involves reading the linked ticket and its comments, the PR history, and general PR comments. Then, reviewing the non-resolved inline comments and identifying who is who (authors vs reviewers). This also includes assessing whether there is a pending need for agreement or if there was an agreement that was not pursued. The next step is the evaluation of whether whatever is left is worth completing using fellow’s time or if we should ask the author whether they have time/interest in pushing the work to the final line. I usually opt for the latter to encourage community participation. However, this means I need to remember 15 or 30 days later to come back to these PRs and close them (or complete the work if it makes sense).
I don’t disagree with this sentence but from my observation of current practices (and this is where I may be over simplifying), it seems that is preferred to be a bit more aggressive with closing PRs, so (new) contributors can more clearly see where there is work to do and can pick up where others left (it seems to be a bit easier for people to build on an existing stale PR than starting from scratch).
It doesn’t bother me, and this isn’t a matter of personal taste or preference. My intention was to contribute to the overall health of the Django project from the perspective of my role as a fellow. Additionally, given that the fellows invest time in pinging and closing stale PRs, I thought we could allocate those minutes to other, less automatable activities, such as reviews of active PRs.
I don’t personally experience this, but I believe others might. New contributors, eager to help as we encourage in the Contributing guide, may feel lost and overwhelmed when confronted with the sizable open PRs queue. Questions may arise on where to start – should it be the oldest, the least recently updated, or the smaller ones? They might also wonder “Why are there so many open PRs? Is this a community that doesn’t pay attention to contributions?”
In any case, your message helped me realize that I could tailor my proposal a bit more for the sake of clarity. If the initial interaction with the bot is an issue (and I agree it is), we could tweak the process as follows:
- Create a new label to flag PRs that may be candidate for closing/cleaning up if there is no activity in a given amount of time (it could be 30 days). This label could be “Stale” or whatever we consider best.
- Do not have a bot adding this flag automatically, but have “humans” setting it. So anyone willing to take the time to review the PR and ticket history could add a summary comment in the PR and set the label, and if no activity occurs in 30 days, the bot does close it.