Problem/Motivation
There is a huge amount of "ongoing" issues in the core queue, leading to many stale issues, hard work that goes unused, and contributor frustration.
Currently between D9 + D10 there are about 2900 issues in needs review. Many issues have been in "need review" for several years at this point. More than 600 issues have been RTBC at least once. And a bit less than 60% of NR issues have a patch that either do not apply or where commit check fails.
Steps to reproduce
https://www.drupal.org/project/issues/search/drupal?text=&assigned=&subm...
Proposed resolution
The idea is to triage the NR queue so that we mark an issue either RTBC or Needs work/postponed/etc.
The goal is to keep that NR queue around 100-200 issues at any point in time.
Remaining tasks
Determine best approaches
Comments
Comment #2
smustgrave commentedSome initial ideas
1.
Starting a dedicated slack channel where users can ask for guidance on older tickets.Already done2. A weekly ticket where users should upload 3-5 tickets they reviewed. Preferably ones older than 3 months.
I wouldn't mind tallying up those numbers. But idea being users could be rewarded with a credit for helping out.
3. Future work for the group could be to make tickets don't sit in "Needs Review" longer than 3 months. Think this will be great for the community as tickets won't just sit there.
4. Bi-weekly "review meetings" where we can as a group review tickets. Would love if some committers could join them when possible to better teach users how to properly review, specifically code review.
Comment #3
smustgrave commentedAnother thing that might help. Defining what it means to be in "Needs Review" notice this status is used for feedback, subsystem maintainer review, etc. Maybe a new status is needed for that kind of stuff?
Comment #4
longwaveI think there are lessons to be learned from the Bug Smash Initiative - the format there seems to work well. Even there we don't always move issues on, but the group discussion/triage is helpful and easy for contributors to spend a small amount of time on.
Re #2.1 it would be good to name the channel in this issue so others can find it!
Re #2.2 separate credit should not be needed, given that a good review gets credit on the issue when it is marked fixed. Bug Smash does award credit for closing issues other than fixed, but that should only be a last resort in the "needs review" queue as far as I can see.
Re #2.3 the Bug Smash "random issue of the day" works well - maybe we just need to adopt this for reviews too, possibly with a time limit so we only pick from more recent issues? (these are more likely to have the contributor still around and actually waiting for feedback; with stale issues the original contributors have already left, in some cases)
Comment #5
smustgrave commented2.2 reason I brought that up is because if someone goes and takes a look at the last 20 issues in the queue. Most likely all 20 will need to be sent back for rerolls, issue summary, etc. But (I May be wrong) that doesn’t count as a review correct?
Comment #6
nod_Thanks, yeah I was planning on doing pretty much what bugsmash started on a different set of issues :)
Comment #7
quietone commentedJust a reminder that How is credit granted for Drupal core issues exists.
I agree with longwave that attention to NR would be best at the front of the queue, for the reasons already mentioned.
What is the plan here for older and stale issues at Needs Review in each category (bug, FR, Plan, Task)? Bus smash has developed strategies and practices for addressing these but I am not aware of that for the other categories.
Comment #8
nod_I think we'll have two phases for this work:
For the 1st phase the plan is just to go out and triage issues manually and see what's the state of the queue. For example I was surprised to see the number of "almost RTBC" patches in the queue. There are some that have been RTBC 5 or 10 times already, and not much is left to fix for a legitimate RTBC so we can concentrate on those first. I personally don't have a set plan on how to deal with X or Y issues kinda just waiting to see what happens while I go through a few pages of issues.
In any case this will introduce changes in how we're working overall. I feel the NR queue is the responsibility of core maintainers, just like the RTBC queue is the one of core committers. But it doesn't seem to work that way in real life so maybe we should discuss that a bit as well? who should be responsible for the NR queue? either overall or by component/module.
Comment #9
catchI don't assign credit for 'needs re-roll', I do sometimes assign credit for 'this needs an issue summary update' if it's not just tagging - i.e. 'current patch doesn't match the issue summary any more so this needs an update' because that's directly saving me time as a committer having to figure out the same thing, hard to quantify though.
What bugsmash does is have a triage issue where you can post about issues you've triaged, and then you get one issue credit when that issue is marked fixed. There might be less duplicates/outdated in the needs review issue but it won't be zero.
Since bugsmash is focused on bugs regardless of status, is the plan here to focus mostly on features and tasks to avoid overlap, or on 'needs review' regardless of category. I don't think it matters as long as the same issue doesn't come up in different channels at the same time.
Comment #10
nod_There are some interesting data already though:
I'll try to make some charts at some point.
Comment #11
catchI think this itself is a symptom of the size of the queue, in that you end up with people spread across dozens of active issues that have been running for months or years, and individual issues literally get forgotten about. Also it's usually the person most actively working on an issue who sets it to CNR and then they can't do much from there except for spam people in slack for reviews.
For anything that's not a module or theme, the components don't really match reality. Me and xjm tried to reorganise this a bit, but ironically that stalled too #2660144: [Plan] Update core components.
Comment #12
smustgrave commentedSo incentivize people to take a look at older review tickets could we do weekly tickets where people can review 2-3 tickets and get a credit for taking the time? Reason I'm saying multiple is because if you take the last few hundred tickets almost all of them don't apply anymore so it's quick and easy. Sure some of them could be closed out but the average person won't know that.
Once we get the queue down maybe we can get a practice going where tickets don't see in needs review longer than a month or two? Just a thought.
Comment #13
smustgrave commentedThink we are also going to need a generic phrase to let people know the queue is being worked on. Haven't received many but have seen a few instances of community frustration.
Example
https://www.drupal.org/project/bartik/issues/2524272#comment-14809058
https://www.drupal.org/project/drupal/issues/54798#comment-14797837
Think nod_ said it perfectly how the queue has become unmanageable. So thinking having some saying may help.
Ultimately I think making some declarative statement that tickets won't sit in review for x amount of time may help community relations. Not saying anything should be rushed through but least if it's in needs work for years that makes more sense then needs review for years.
Thoughts?
Comment #14
quietone commentedSuggestion:
"This issue is being reviewed by the kind folks in Slack, #need-reveiw-queue. We are working to keep the size of Needs Review queue to around 200."
Comment #15
quietone commentedI've been thinking about this for some time and there are few things I keep coming back to though.
1.
The use of 'responsibility' here concerns me. The way this is written, it is open to interpretation and can be read in such a way to mean that the community does not have a responsibility to triage those issues. That once an issue is NR or RTBC a non-maintainer/non-committer has nothing further to do. In practice, we know that is not true. There is even a contributor task to Triage the Drupal core RTBC queue. Nor does the job descriptions for core maintainers that maintainers/committers have this responsibility either.
2. This one is a really a reminder, that triage includes mentoring. It seems worth saying again when the resolution is focused on numbers.
3. A review is not simply marking a patch as needs a reroll. And marking several as such does not meet the existing criteria for credit. Nor does it make sense to me to give credit for something that can be automated.
4. For myself, I think long term progress would be gained by exposing the review process. The new channel could be used for this. There are contributor tasks that lay the process out and could be used as guides. Perhaps, work on an issue all the way to commit, triage one a day, invite people from other channels, etc
Comment #16
smustgrave commentedI like it.
For #15
If we could get that automation done then the goal of this initiative changes I think, from cleaning up old reviews to reviewing valid patches or MRs.
https://www.drupal.org/project/drupalci/issues/2021489 but I don't know when that will land so how to incentivize people to look at those old issues?
I would love some guidance to be posted to the slack channel for easy access to help those review. I'm finding the issue is some of these issues are so old it's difficult to know what to do next.
Comment #17
quietone commentedRegarding incentives, I think it is best to wait for the outcome #2021489: [Policy] Automatically check whether 'needs review' patches apply and pass linting.
Comment #18
smustgrave commentedAlso agree now that I think trying to clean out the review tickets at the end of the list isn't a best approach. Seems to be encouraging more credit farming than usual.
So think the best goal would be to review newer more active tickets in review. So think what needs to happen next (per some suggestions from quietone)
Add some document links to the slack channel to guide users on good reviews
Setup a schedule for doing group reviews.
Maybe start posting daily review tickets for practice?
Any additional thoughts?
Comment #19
catchActively reviewing newer tickets sounds good, we can hopefully get automated linting to clear out the end of the queue anyway and eventually meet in the middle.
I think it would be worth announcing the new channel in #contribute/#bugsmash/#d10readiness
Comment #20
smustgrave commentedSo we are rolling with the review queue (currently around 2400) but the work is slow and getting the numbers down is difficult as reviewers seem to be limited.
We have a slack channel now #needs-review-queue-initiative
We are holding weekly group review meetings.
Just started posting 2 reviews a day.
So still support the idea of a 1 time batch run to see if a ticket has a patch or MR that applies would help us get an edge.
We will have to deal with the fact it will be a feast for credit farmers as there will be almost 2000 issues that will be rerolled even if not relevant.
Once we get the queue under control would like to then discuss how to prevent it from happening again.
Comment #21
smustgrave commentedI think this can be marked fixed. Queue is current 80
Comment #23
ressaTo help keep the momentum of this great initiative and attract more reviewers, perhaps it's worth considering blogging about it? It could be just a short piece every other month, with an update on how many issue got fixed, how the stats are evolving, which new users joined and pledged to review issues, and so on. The blog could get included on Planet Drupal?
Comment #24
smustgrave commentedI mean it would be a small post. Really I imagine it would just be stats or issues tagged for the initiative, maybe average time tickets sit in review, and any initiative changes.
Like it use to be under 2 months but has shifted to 3
Comment #25
quietone commentedSharing the goals and progress via a blog post would spread the word wider about this vital work. And it is more that statistics, it is an opportunity to discuss each part of the review process, when to ping someone, when not to ping someone, what tags to use, why keeping the issue summary up to date help, how to postpone an issue etc. And maybe there is a sense that reviews or reviewers are improving there skills.
If the blog posts included more that statistics, then the frequency the post would likely be less. At that can be a good thing.
Comment #26
ressaThanks @smustgrave and @quietone for the feedback, I really appreciate it. Based on it, I created an issue.