-
Notifications
You must be signed in to change notification settings - Fork 29.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
doc: require two approvals to land changes #22255
Conversation
480ce68
to
2c99b1d
Compare
LGTM, though I am curious how many (and which exact) changes landed with only one collaborator review this year. That might give us some hints how would this affect the review time and what changes might become harder to land. I expect close to 0. |
I'm generally -1 on this as I don't see the change as being necessary. 1 approval should be enough if the change is relatively constrained and the list of people who have the necessary domain knowledge to adequately review is small. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Making it explicit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With well over 100 collaborators, this seems reasonable.
COLLABORATOR_GUIDE.md
Outdated
sufficient expertise who is able to take full responsibility for the | ||
change. In the case of pull requests proposed by an existing | ||
Collaborator, an additional Collaborator is required for sign-off. | ||
All pull requests must be reviewed and accepted by two Collaborators with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may be a good opportunity to clarify that we mean at least two, and not exactly two.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Considering those numbers and the types of commits, I do not see this as needed.
Maybe we can make exceptions for certain subsystems? AFAICT crypto may need that. |
@jasnell The last time we reviewed changes that had only one approval, none of them fit that description. (Specifically: None of them were "There's nobody who can review this code because it requires specific domain knowledge.") I think preserving the one-approval rule for that reason is preserving it for a problem that we don't actually have. As I wrote at that time:
|
@mcollina With only one exception (85b0f16), all of the commits seem like they could have obtained more reviews with just a little effort. I mean, look at f386c7e. Time to repeat the exercise from last time:
|
@joyeecheung Maybe, although that undermines the simplicity/consistency aspect. The only recent commit where reviews were actively sought and not obtained was a crypto one (85b0f16). On the other hand, that is the only crypto PR that has landed this year with only one review. And there have been a good number of crypto commits. So maybe it's not such a problem for crypto after all? Kind of interested in what @tniessen thinks, as he's the one that was trying to get reviews and only got one. |
@Trott... for me, there's no exercise to go through... this appears to be solving for a problem that doesn't exist. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 👍
IMHO velocity on it's own is not a goal. Having more review should be a great tool to improve code quality, which should be of higher priority. I'd also like for us to put more emphasis on the other parts of that paragraph:
It seems to me that this will go to a vote. In that case we might want to consider expanding the scope of this change (longer review window, cap maximum of approvals, require /CC of "code owners") Ref: nodejs/CTC#144 |
This. 💯 If we can’t get enough reviewers, then we really should force ourselves to put effort into making more people familiar with the relevant code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I agree with @joyeecheung tough that an exception could/should be made for crypto.
Having more reviewers per PR is a fantastic goal. Imposing additional process does not accomplish that, encouraging more folks to get involved does. |
|
One problem is that for some PRs in less glorious and well known parts of the code getting even one review is hard. Can we get an estimate of how many pull requests did not get a single review in 3 days? |
Another issue is that people might not be as responsible when reviewing (e.g run the actual code and play with the changes) when reviewing if they think at least one other person is responsible. I think this has a name in psychology. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’m going to +1 since I think more eyes is good - but I eventually would like us to work towards a better review process.
PR-URL: #23249 Refs: #22255 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]> Reviewed-By: Gireesh Punathil <[email protected]> Reviewed-By: Sakthipriyan Vairamani <[email protected]>
Refs: nodejs#22255 PR-URL: nodejs#24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
Refs: #22255 PR-URL: #24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
Refs: #22255 PR-URL: #24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
Refs: #22255 PR-URL: #24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
Refs: nodejs#22255 PR-URL: nodejs#24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
Refs: #22255 PR-URL: #24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
Refs: #22255 PR-URL: #24561 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]>
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
One Collaborator approval is enough only if the pull request has been open for more than 7 days Refs: nodejs/node#22255
First in a series that will hopefully streamline/simplify our policies. I don't want this to slip in unnoticed and it's a significant procedural change being proposed, so: @nodejs/collaborators
Currently, changes require approval by one Collaborator in most cases.
However there are situations where two approvals are required. For
example, breaking changes require two approvals from TSC members. And
fast-tracking a request requires two approvals.
Additionally, although only one approval is strictly required, in
practice, we nearly always seek a second approval when there is only
one.
Lastly, concerns have been raised about (perhaps unintentionally) gaming
the one-approval system by suggesting a change to someone else, and then
approving that change when the user submits a pull request. This
resolves (or at least mitigates) that concern.
Refs: #19564
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes