Replies: 4 comments 10 replies
-
Yes; approving without resolving conversations is meaningless. I suspect the problem is more often that sometimes finding the open conversations is tedious at best, and in a long list of others' comments it can be easy to miss one. I suspect it's also possible that I've sometimes approved a PR without bothering to check whether I've got unresolved conversations... and in one case, I had a single unresolved conversation that I deliberately left unresolved because "someone else" had replied to that conversation pushing it in a different direction and I thought that person ought to close it (but there's no official way to "hand off responsibility", so the resulting state is at best ambiguous). |
Beta Was this translation helpful? Give feedback.
-
Assuming that we like and want to keep the restriction that all conversations must be resolved before the PR can be merged (which I do), the choice of Approve vs. Request-Changes vs. Comment loses almost all significance except what we attribute to it. I use it to indicate my feeling toward the PR, as though it were the Reviewer-side analog of the Draft vs. "Ready" state: if I feel that the PR should not be merged, that there are significant bugs or other blockers in the proposed changes which must be fixed before I can offer approval, then I mark my review with "Request Changes"; however, if I mark it "Approved", it indicates that any open conversations are modest questions or suggestions which I want considered prior to merging and which really only require acknowledgement from the author -- that is, I would still approve the merge without further changes. If this practice is frustrating or otherwise unhelpful, I can certainly change my approach. I can use "Comment" instead and reserve "Approved" for the point after I've received ack's and resolved all my conversations, but it's not obvious to me that that would be better or even significantly different. As for conversations which linger, I try to be diligent and mark the ones that I started as resolved once the question has been settled or the suggestion/request has been implemented or declined. I'll grant that in a larger review this often requires more scrolling and clicking that might be desired, but it's not actually hard. I concur that we do run into some ambiguities when a single conversation includes more than one issue, particularly when raised by more than one reviewer (and, there's a GitHub pitfall which leads to this, in that you cannot have more than one conversation attached to the same line of code), but I think we can address this by being explicit in our responses: if you have an issue in play in a multi-issue conversation, post a reply when you think it has been resolved, and feel free to review open conversations which were started by other reviewers to confirm that resolving them hasn't fallen to you. My attitude is that the process of code review should be very much a team effort -- it's not just up to the author to gather reviews, and it's not just up to me to offer feedback and walk away -- if I'm involved in a PR, then I feel like it's incumbent upon me to see it through to a successful merge (assuming that the change is something that we agree should be done in the first place), and that includes supporting the other reviewers as well as the author. |
Beta Was this translation helpful? Give feedback.
-
This discussion is coming up on a year still, and is one of the behaviors of our review process that leads me to the opinion that we should be using Gerrit for reviews because it provides the interfaces to accommodate the behaviors team members want to have for code review. |
Beta Was this translation helpful? Give feedback.
-
I definitely agree about Gerrit; especially configuring with +1 vs +2 where +1 covers, literally, "looks good to me but someone else must approve", covering Webb's "yeah, maybe things could be improved but if others are satisfied it can go in anyway" while +2 (and we could configure to require 2 +2s if we wanted) means "ready to go". Within the context of GitHub, however, we need to agree to some sort of protocol, and I don't know what to say here. I've even thought of putting non-essential comments into pre-resolved conversations, but that's not workable ... finding GitHub comments across commits (especially with rebases) is bad enough without expecting someone to find a resolved comment with useful context. |
Beta Was this translation helpful? Give feedback.
-
What is the point of approving a PR if you leave a number of comments to be resolved preventing the PR from being merged?
Why not instead don't approve the PR and leave your comments?
What are we gaining by the current behavior.
If I have all approvals but N unresolved comments, what is the difference between that and no approval?
Beta Was this translation helpful? Give feedback.
All reactions