Problem/Motivation

Many issues have a patch but no reviewers. They will never commit into CORE.

Few of my issues are 4+ years old. Some of them older enough to close because no more D6 / browser bugs..etc. As my experiences, I tried to post to IRC, TWITTER, BLOG..etc, but no helps. (OK, I have no good Drupal Friend)
(I also dropped to patch complicated issue because that's hopeless all time.)

Let's make rules to help these issues move on, e.g.:

If the waiting time is passing X period, contributors able to self-signed their patches. We can set a new Review Status to "Self-Signed" or something else. Therefore, anyone is interested, or subsystem maintainers should take care of them.

If you're one of:

Subsystem maintainers:
After 3 ~ 6 months: Self-sign sub-modules patches.

Top 30/50 developers:
After 9 months: Self-sign their patches (in their professions. e.g., If you often contribute to JS, you can self-sign JS patches only)

Other members:
After 1 years+

We can start with more strict rules at beginning:
CSS issues: after 1 years+
PHP issues: after 2 years+
JS issues: after 3 years+

Proposed resolution

Use and update Getting an issue addressed sooner.

There has been no support for the following suggestions, in this issue or in Slack, #45. They are being left here so the ideas are easy to find.

See #3317273: Set up a Drupal.org GitLab issues bot.

Suggestions:

Remaining tasks

Build consensus an options to implement.

Comments

droplet created an issue. See original summary.

droplet’s picture

Title: [meta] Policy to help less interested Patch move forward. » [policy, no patch] Policy to help less interested Patch move forward.
mbaynton’s picture

Yeah being a casual contributor to core I don't have the connections to get others to seriously review my work, which sucks. Thanks for proposing something to do about it.

With this approach, I can see it would ensure patches move beyond the dreaded "Needs Review" state of the workflow. But, it would potentially still take a long time. At that point, the only path forward for the patch from there would be for a committer to review it, and I'm concerned that they'd just regard these "self-signed" contributions as a pile of old, possibly no longer relevant, not community reviewed stuff we'd still find our efforts largely or entirely ignored.

What I'd really like to see to help with this problem are two things:

  • For new features, a new feature proposal area of d.o. In one of the core conversations @ NOLA @webchick said it really doesn't work ever to do a feature as a lone wolf, due to this problem. Great, we should have a site where you can find others who have vested interest in given features
  • For already written patches, esp. bugfixes, a review swap area of d.o. On some of my patches I get to the point where I'd gladly dig into someone else's patch enough to perform a quality review of it, if I'd get them to do the same for me in exchange. A formal place to establish these connections on d.o would be very helpful.
dawehner’s picture

I totally agree that this is a huge problem, but I think this is a cultural problem which cannot be solved with a technical solution. I think we should continue to ensure other contributions than writing patches are equally if not more valuated.

In general I think helping others and build a relationship with folks will help you dramatically to help to get your fixes in. On the other hand I cannot stress out more that I believe maintainers should triage their queues, no matter whether its critical, major or normal.

droplet’s picture

Wish Drupal has https://github.com/facebook/mention-bot. (also @see: https://code.facebook.com/posts/597378980427792/)

Personally, I don't think "build a relationship with folks" would work. I can be friend with @dawehner. But you may not understand my JS & CSS work, even non-Views related. `Reputation` would help but not everyone can be another @dawehner (Just as the example, no offense).

Every few months, I can see some CORE Sprints that trying to bring in new contributors. That's GREAT! But don't forget the 10x developers. As my experience, many of novice reviewers doing "behavior testing", not the code quality review. Our patches have test cases covered also! Why don't accept it? ( I can understand how important of code reviews from another person but now the community doesn't work in that way IMO.)

Thanks @mbaynton and @dawehner!! I thought many times before posting this issue in public. I'm always waiting for someone has high Reputation in Drupal to post it, not me! After 1 month of this issue, I can see my failure again.

dawehner’s picture

If the waiting time is passing X period, contributors able to self-signed their patches. We can set a new Review Status to "Self-Signed" or something else. Therefore, anyone is interested, or subsystem maintainers should take care of them.

One thing I'm wondering is, what would "Self-Signed" actually mean. Is this basically another term of RTBC? How would those patches get to the next level afterwards?

But don't forget the 10x developers

In my humble opinion there is nothing like a 10x developer. The people which actually are 10x more productive are the ones which enable 10x more people to get something done.

droplet’s picture

One thing I'm wondering is, what would "Self-Signed" actually mean. Is this basically another term of RTBC? How would those patches get to the next level afterwards?

Yes, that is. We trust committers would make their right decision. If not, we will create another unhealthy section for the community.
"Self-Signed" status & "the X period for the different group of developers" make things more controllable at beginning. Then we can revise its performance to next steps. Ideally, it should reduce the commit path for follow-up issues, we human will make mistakes (even with current RTBC system) but we can fix it instantly.

There's should be a new Priority system for each sub-system also. It can lead the important issues of each section to move forward and more predictable for next releases.

Many developers give up Drupal because they faced issues like this: #2700495: Method removing expired drupalSettings.ajax tries to remove settings when there is no ajax defined. Not these issues: https://www.drupal.org/project/issues/search/drupal?version[0]=8.x&statu...

In my humble opinion there is nothing like a 10x developer. The people which actually are 10x more productive are the ones which enable 10x more people to get something done.

Only if 10x more people also has good performance. I'd better say it as "skilled (Drupal CORE) developer" in above comment :) Finding new & retain developers also important for the community. Current state, both contributors will lose their passion soon.

dawehner’s picture

Yes, that is. We trust committers would make their right decision. If not, we will create another unhealthy section for the community.
"Self-Signed" status & "the X period for the different group of developers" make things more controllable at beginning. Then we can revise its performance to next steps. Ideally, it should reduce the commit path for follow-up issues, we human will make mistakes (even with current RTBC system) but we can fix it instantly.

While this seems to be an improvement for particular users, as you move nearer to the commit, I think this basically just replaces the time people spend in reviewing a patch with time spend by the committers doing the same. This at the end actually scales even less.

dawehner’s picture

Wish Drupal has https://github.com/facebook/mention-bot. (also @see: https://code.facebook.com/posts/597378980427792/)

I agree that something like this could be helpful.

Here is an interesting thing rust is doing, they randomly pick a person to review stuff example. In general all stuff in https://github.com/servo/highfive/tree/master/handlers would be just amazing!

joelpittet’s picture

I was thinking how I could help this problem. One way may be to allow this: if the patch provides pass/fail proof of a bug fix? Meaning it it has test coverage as well.

Could that be a middle ground of sorts? Also an "incentive" to write tests which are at times painful to write.

lokapujya’s picture

The way to help move the patch forward is to make it easier to review. Update your issue description and make it more clear.

chx’s picture

I can say with authority this has been a problem for more than a decade. A casual google search found this post from our esteemed Drupal 8 core release manager from 2007 and I would like to point out this tidbit from it:

More people are writing patches than reviewing them.

This is the hard truth: writing a piece of code is a trivial exercise, writing a test is perhaps a little harder but only because it's more tedious but understanding the potential implications of it in the vast Drupal code ecosystem? What are the future implications, does this change make the code more brittle? Harder to maintain? Now that's a challenge (one that most reviewers actually fail but that's for another time).

What we need here is a mark that "I think this is a change limited to its own namespace" -- the chances of #2800727: Views NumericFilter regular_expression operator wrong method 'op_regex' breaking anything outside of NumericFilter is nil. So that's marked as "I hope this is easy to review". On the other hand, while #2798981: ListNormalizer fails to pass on context variable to field items. is a very small change it actually needs thinking: is this the first time the context is actually passed? If so, are the other classes ready? Etc. So it's not marked because it's bleeds outside of its own namespace.

Now we can direct people to the easy review issues and have the people who actually have an oversight over the whole shebang spend their time on the "bleeding" ones.

lokapujya’s picture

Chx, so do you think we should add a new field (to the issue) that helps categorize the scope of an issue? the goal being to help identify how big of a review is needed.

lokapujya’s picture

Maybe an issue needs to be checked off (reviewed by) multiple people. For example: A javascript expert, a subsystem maintainer, a documentation reviewer, A QA expert (to examine the tests.)

chx’s picture

That'd be the death of the issues, we are struggling to find one person currently.

Probably yes, a namespace one/many selector. It'd be an almost mechanical setting and easy for reviewers to escalate to many if they catch the patch is broader than the writer thought.

lokapujya’s picture

How about we have a new block, "Issues for review" that somehow suggests issues to review. Because "Issues for [username]" only shows issues that you've commented on.

Also, if we could somehow label comments as a review, then we could keep a count of reviews. Keeping a count will help generate more reviews.

jmuzz’s picture

+1 for a review swap area like was mentioned in #3. I would review more patches if it would lead to more of my patches being reviewed.

It could potentially be one and the same with an "Issues for review" block. For example, say you review an issue that appears in your "Issues for review" block. Then one of your issues could start appearing in other people's "Issues for review" block. To get it seeded and reward prolific reviewers, reviewing 5 issues that don't appear in your block could get one of your issues to start appearing.

What about other incentives? The primary contributor for a patch gets special recognition in their profile. Everybody who posted a patch is automatically selected to receive regular recognition by the automatically generated git commit. The reviewers don't get anything unless the committer explicitly adds them. A new section on the profile pages could be added that tracks how much reviewing a person does. It would likely need the new option to mark a post as a review mentioned before, but it could generate more reviewing.

droplet’s picture

Maybe an issue needs to be checked off (reviewed by) multiple people. For example: A javascript expert, a subsystem maintainer, a documentation reviewer, A QA expert (to examine the tests.)

It's another problem. It helps to optimize the workflow. Few of my issues & I've seen, we spent many hours on coding but blocking by reviewers at final, and then I've seen everyone will find hard to communicate with each other. (the reviewer became the new "blocker" for issues since they will never come back to the discussion)

Many cases, things are predictable. We needed different maintainers' feedback before actual work.

New modules & styling pattern missing a good foundation at beginning. After many hours of works, we're trying to convert ourselves to accept bad work. Or dropping a TODO there: "We can improve it later". It's bad for Drupal. We'll find hard & can't to redefine the patterns afterward.

https://www.drupal.org/node/2113931#comment-11579441
(Many hidden gateway in Drupal Review System actually)

Also @see: #2747641: Add status "Needs Feedback" to issues

While we're lack of contributors, we have to ensure their time is valuable.

quietone’s picture

Although I don't have patches waiting months in review I have peeked at the older issues and wonder about the processes involved that causes this and the person who's work sits waiting. And yet, review is not easy, as chx states in #12.

Of the ideas mentioned above, here is what I prefer. A review swap area (#3, #17) is interesting and something I would participate in. Identifying the scope of the patch (#12) would certainly help potential reviewers find patches that better match their own skills. And definitely, the reviewers needs to be acknowledged (#17).

Finally, a section in the handbook that explicitly explains the actions that need to be taken in a review. For example, there is a novice code contribution guide, but not a novice code review guide. Or, at least, not one that I can find.

jmuzz’s picture

@quietone The problem with a novice code review guide or novices reviewing code in general is that novices aren't supposed to set any issue status to RTBC.

The patch has received a thorough review and test by one or more experienced developers, and they have deemed it as ready to be committed to the project.

So what about relaxing this restriction?

The whole section seems to discourage using RTBC in general. Is that necessary?

I've had patches that get reviewed once or twice and then after making the requested updates the reviewer just stops commenting. Perhaps more issues would move forward if that section of the documentation was more encouraging. Getting reviews alone isn't helpful unless it's going to lead to RTBC.

dawehner’s picture

requested updates the reviewer just stops commenting

Yeah, I think most of the people are lazy, its an intrinstic property of humans.

Getting reviews alone isn't helpful unless it's going to lead to RTBC.

Interesting view of the world.

Personally I think the problem is really that there are not enough people reviewing others people's changes.

joelpittet’s picture

@jmuzz where are you referencing that quote in #20? That needs to change, RTBC shouldn't need to be by 'experienced developers' in all cases. Some changes don't require developers as they would be suited for writers or designers or other types, and we don't promote that view in core mentoring.

dawehner’s picture

I have to agree with @joelpittet
Noone got fired to set an issue to RTBC ;)

jmuzz’s picture

Maybe some of these people are lazy. Maybe some of them don't feel they are in a position to be able to RTBC issues because they are not an experienced developer (emphasis from documentation).

I don't think the problem is that too many people are RTBCing things, so maybe the documentation could be more friendly about it.

I wasn't trying to promote a personal view. I thought that comment was fairly objective. Sometimes an issue gets a review, the developer comes back to work on it more, then it never gets reviewed again or reaches RTBC. We should be able to agree that isn't the result we are hoping for.

jmuzz’s picture

@joelpittet The documentation page that appears on is here: https://www.drupal.org/node/156119 .

It's linked to right under the Status dropdown in the issue metadata.

joelpittet’s picture

@jmuzz I found it in the Status docs and changed it to remove that, thanks for pointing that out. I've had people think that they had to be 'experienced' and was wondering were they were getting that notion from, now I know.
https://www.drupal.org/issue-queue/status

droplet’s picture

Needs inform the novice spirits' leaders also :)

quietone’s picture

@jmuzz, I'm not sure I expressed my point well. I am trying to say that there isn't a guide to what actions to take when reviewing. Nor what actions are suitable for what type of patches (typos, complex random fails, documentation, coding standard fixes etc).

@joelpittet, thanks for updating the Status doc.

there are not enough people reviewing

Based on the backlog of NR patches, this is true. Perhaps, at sprints, there could be a mentor and space for people wanting to learn or improve their reviewing skills? At least, the few sprints I have been too this wasn't available. The focus was on fixing things and helping new comers. Maybe things are different at a DruplCon?

sarmiliboyz’s picture

Version: 8.0.x-dev » 8.4.x-dev

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

quietone’s picture

Issue summary: View changes
quietone’s picture

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

quietone’s picture

There has not been any discussion here for 7 years. Several proposals have been made which were added to the Issue Summary 2 years ago. There has been no response since then.

Lately a great deal of work has been done, lead by smustgrave to make the size of the 'Needs review' queue manageable, They are doing that by actually doing the reviews, asking questions in various Slack channels and sometimes also finalizing patches. This has resulted in a significant drop of the number of issues with the 'Needs Review' status. And most importantly, most of those issues are being committed and Fixed.

So, is there anything else to do here? Is there anything in the proposals that anyone would like explore or implement?

quietone’s picture

I asked in #contribute about this. smustgrave, FeyP, andy-blum, dww and cilefen responded. There was no objection to closing this issue.

In the discussion, the topic of self-RTBC was raised. It was pointed out that this is not good practice as it defeats the purpose of code review, which is to get more eyes on the change. And, tt also puts more work on the core committers. Although, at least one experienced contributes will self RTBC when making minor formatting changes.

There were two suggestions that someone may wish to follow up on.

  1. For an auto comment for issues tagged 'Needs usability review' that states that there is a regular usability review meeting.
  2. An auto triage bot that makes suggestions when a new issue is filed

For the first point, there are currently 142 Open issues that are tagged 'Needs usability review'. I wonder how many of those are stalled because people do not know how to prepare for and join the review?

I am not yet closing this issue because i need to think about how to address the two suggestions (and I am on holiday right now). I will ask in the Slack thread if anyone wants to make issues for those.

quietone’s picture

Issue summary: View changes
quietone’s picture

Issue summary: View changes
Status: Active » Closed (outdated)

Thank you, FeyP, for adding the ideas from the Slack discussion to an existing issue about an automated issue bot. That issue is #3317273: Set up a Drupal.org GitLab issues bot.

Now that is done there is nothing more to do here, so I am closing this as outdated.

quietone’s picture

Adding parent to help find related issues

quietone’s picture

Version: 11.x-dev » 10.2.x-dev