-
Notifications
You must be signed in to change notification settings - Fork 6.8k
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
add Reject as an option to pull request reviews #15912
Comments
@pabigot The Approve/Comment/"Request changes" review choices are given by GitHub. It's not something this project can change. Anyhow, you can always give a "Request changes" review explaining that it is indeed simply the wrong way, and no marginal change will be enough. Quite a few PRs have been closed after people disagreed on the overall principle. "Contributor has not made requested changes and nobody else cares" is today marked with "stale PR", and there is a few in that state, which are eventually closed if there is no reaction by the author. |
Well, that's annoying. OK then.
I'm really looking for ways of decreasing the amount of time a contributor is left hanging when reviewers don't reach consensus. Even if there are several approving reviews, one "Changes Requested" can block progress. The absence of oversight, though, is indeed hard to work around. I'll leave this open in case somebody can suggest a viable process improvement approach, but if nobody does then somebody can close it. |
@pabigot, I agree with your concerns, I stopped contributing to zephyr exactly because of this. I have been thinking about possible improvements to the review process and I have come up with the following proposal: Replace the code-owner idea with a code-sponsor: The code sponsor is assigned with the task of If the idea is not good the code sponsor convinces the submitter to remove the PR (#15545 is a good example of how to do that). If the idea is good the code review starts and the code sponsor helps in getting the PR approved as fast as possible taking into account the expected code quality. The code sponsor is responsible for removing any reviews that leave the PR in a "stall" state. The code sponsor follows the idea: "Whenever an idea is worth doing it is worth doing fast". Working this way should fasten the approval/merging of PR's and would not leave a PR in some undetermined state where no one approves the PR because someone else has put a "request changes". |
Couldn't you just say "I'm sorry, but I think the basic approach here is wrong, so I won't approve it"? Feels like people fall back on templates and stuff instead of just talking to each other too often in IT. :P |
This leaves open the problem that the only way to surely block a change from being merged is with the Request Changes state. Which we can't improve upon. Edit: We could try to resort to things like a bot that warns-about-then-closes PRs in that state if they don't see any activity from their authors. But this can in turn be annoying if the author is actively submitting other PRs that pave the way for the main one in response to changes requested by reviewers. I suppose they could always resubmit again once those others were in, but it's nice to have an open PR to point to and say "this ultimate goal is why these changes are being made". So the devil would be in the details here.
I don't think this is part of Zephyr's philosophy. Some things that are worth doing take time. This is often the case in open source projects that support a wide variety of hardware architectures, configurations, host operating systems, etc. So I think this proposal is founded on unsound premises for the Zephyr project. |
@pabigot I think this could use TSC attention. It's a symptom of the ubiquitous problems of divergent priorities and more people writing code than are able to review it, but "process for NAKing PRs" seems like low hanging fruit.
|
This issue is digressing into a container of all kind of somehow related frustrations and proposals.
@pabigot : This is something quite a few of us are very aware of, and something we would like to fix. @Thea-Aldrich between others. @Laczen Your proposal misses a few points. @Laczen What you propose about a "code sponsor" has been discussed some time ago, and has not been implemented yet, between other things, because it ignores some realities of the project. The most important one being that in some areas there is more than enough engaged maintainers and activity for this to be a non issue, while in others there is not enough interest to man that role. And this is a role that takes a lot of time.
@Laczen as @mbolivar said, it is certainly not the priority of the project to get code in as fast as possible. I can certainly understand that as a contributor, any of us, would like attention to our PRs by others who are knowledgeable about the area, who would provide quick, constructive feedback and would help us to mature and merge our PRs as soon as humanly possible. But the reality is that the main contributors who can provide useful feedback tend to be very busy with a multitude of other issues, many PRs take a horribly long amount of time and iterations from those maintainers. And some of those PRs, even if of great importance for the author who wants them merged, may be considered less of a priority by the maintainers compared with all that is going on.
@mbolivar, @pabigot , That is a fruit that has already been picked. |
Are you saying you don't think this particular issue is the right place for a discussion, or the issues page in general? Do you have a counterproposal location? Also since you've specifically asked me a question here, I'm going to reply despite this request that nobody comment here ;).
I'm sorry, but this is simply not true. There is a big difference between "I have some issues that, if addressed, would make me willing to merge this PR" (which is how we normally use "Request Changes" -- it's even in the name of the state) and "as subsystem maintainer, this approach is fundamentally flawed and I will never approve it for merge" (which is what NAKing is).
The original request was to add a NAK state, which you've already said we cannot do because GitHub owns this. I do think that "comment and close" from the level 1 code owner (first person in the list of owners in the CODEOWNERS file's entry for a given area) would be a good way to signal NAK rather than "not quite". We generally speaking don't do this. And it seems like low hanging fruit to discuss adding this to our process. That would not have "already been picked" -- I've been maintaining minor things for a while in Zephyr and I know for a fact this is not a common policy which has been discussed and agreed upon. |
TSC re-check: not of interest, use existing process. |
Currently the only negative review option is "Request Changes". Some PRs take a technical approach that is simply wrong and no changes less than a completely different solution would be acceptable.
#15545 is one of those. So was #11880, which if it had been firmly rejected as a solution path, rather than leaving open the possibility it could be adjusted to an acceptable state, would have reduced the amount of time wasted trying to reach consensus.
Adding a "Reject" option that requires an explanation would provide an opportunity for area maintainers to make a decision on technical merits and either overrule the rejection or accept it and close the PR, rather than leaving it in limbo for an arbitrary duration.
Rejection with "Contributor has not made requested changes and nobody else cares" could also be useful in cleanup. (410 open PRs at the moment; there's no way they're all going to be eventually updated and merged.)
The text was updated successfully, but these errors were encountered: