-
Notifications
You must be signed in to change notification settings - Fork 30.3k
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
Minimum waiting time for PRs with recently pushed commits #56170
Comments
👍 |
I would say it's good enough to just keep it as is. If the new change is substantial enough we should trust people to ask for re-review and give it enough time. More often than not I see people saying things like "if no objections by the end of the week I will land it" instead going straight ahead landing it after changing things substantially. On a side note, one thing I like about Chromium/V8 is that they even allow small unreviewed changes to be committed after a CL is approved so that people don't have to wait for another approval after fixing up nits from "LGTM with nits" (I am not sure how the automation decides it's okay to not require another review, maybe just by the size of the new diff). And these are projects owned by a company where many code has to be approved by their employees and are released very quickly & automatically to canary channels. I'd say for Node.js which has open governance and more trust in collaborators and a staged release process, it's weird that we have less trust in people. If I were to propose a change I would propose something like this to make the process even less strict. If it's just some additional nits like fixing a typo or making linter happy, there is no need for re-approval if the change is made by a collaborator and maybe collaborators can just apply a label to indicate the additional changes & to make the commit queue happy with it. As usual they should use good judgment as to when the change is substantial enough to require an approval, of course. |
It's not exactly correct, the CQ will refuse to land a PR if there has been commits pushed since the last review – in which case the PR must either wait for another collaborator approval or be landed manually. |
I'm +1 for leaving as is, as I don't think we've seen a problem with the way it is. |
Agreed (hence why I also would prefer doc-only change). Again, it's not about any trust problems, but about current guidelines and NCU behaviour. "There's a minimum waiting time since last push that can be ignored if changes were insignificant" would make more sense than "There's a minimum waiting time since the moment PR was originally opened, and also consider waiting after subsequent pushes if changes were not trivial", IMHO.
This is not mutually exclusive. I agree that collaborators should be able to override the automated decision and land formally-not-ready PRs if there's a strong reason to do so, right now it's impossible with Also, if there will be change to NCU, it wouldn't necessarily make landing PR harder, since it would simply delay Automatic detection if latest changes were nits or not would be great, however I don't think such detection can be implemented in robust way, except for purely cosmetic changes (commas, whitespace, comments, etc.). Diff size doesn't sound like a reliable metric for that.
I assume that PR author isn't necessarily a collaborator, so 'single approval' meant exactly this. Even though normally it doesn't cause any issues (and even if it did, it could be fixed in follow-up), it's strange that we rely only on To rephrase it differently, it can be seen from 'responsibility' angle rather than 'trust'. Just like how approving a pull request indicates that the collaborator accepts responsibility for the change., fast-tracking comes with responsibilities of decision that changes are eligible for landing earlier than in 48 hours, and landing comes with responsibility of decision that PR is ready to land without waiting for potential objections/suggestions. |
For PRs opened more than 7 days ago, a single approval is enough, so IIUC the problem you're trying to address is not that My understanding is that the minimal wait time is there so looking at the repo once per day is more than enough to see all the proposed changes and subscribe/chime in to the ones of interest. Subsequent commits should not affect this – but again, it's a judgement call that needs to be made, and I don't think we can automate a judgement call.
I don't think "doc-only" would be a good metric either, a doc-only change can be significant
It would also be quite annoying tbh, one could argue that PRs are currently landing too slow, not too fast. |
+1 for keeping things as they are |
No, the issue is that The metadata was mentioned only as part of how it works for the
Yes, exactly. This is why I was suggesting 24 hours, plus it accounts timezone differences. Worth mentioning that waiting for potential objections isn't limited to collaborators, anyone can track PR and provide their input.
Doc-only in this context means that it won't directly disrupt or slow down anyone's workflow, i.e. both Footnotes
|
Problem
There are guidelines regarding waiting time in PRs:
node/doc/contributing/pull-requests.md
Lines 421 to 432 in c1ccade
node/doc/contributing/collaborator-guide.md
Lines 179 to 181 in c1ccade
node/doc/contributing/pull-requests.md
Lines 344 to 352 in c1ccade
However, the time is always calculated since PR creation and not since last pushed commits (even for significant changes and/or force-pushes).
This effectively creates a situation where a single collaborator approval (and a single green CI for needs-ci
Somewhat related: nodejs/node-core-utils#677
Possible solutions
Doc-only option looks best to me since it won't slow down landing trivial fixups, but it's also always possible to fast-track them or land manually. Maybe there are different opinions on this.
Just to clarify, this issue is not a security concern nor a loophole for potential bad actors etc. The minimum waiting time is supposed to allow anyone to provide their input (including suggestions and explicit blocks), and not having it for subsequent commits sometimes nullifies this ability.
The text was updated successfully, but these errors were encountered: