TL;DR: I propose committers of a PR should not use the “Resolve Conversation” button, and that it should be left to the reviewers to use it.
With the move to GitHub PRs basically underway, I wanted to raise the question about how the “Resolve Conversation” button should be used in PRs. This button appears at the end of any comment thread and anybody can click it to hide the thread from view. The thread is listed in the conversation view, but is minimized, so you have to consciously click the button to expand it.
In Phabricator, there is a “Mark as Done” button. This can be used by the committer to mark when they believe they’ve addressed a concern. It is a little checkbox next to each comment. Reviewers can still see the comment, and have the abiltiy then to collapse the conversation if they are happy with it. If, on the other hand, a contributing marks the thing as done, but the reviewer isn’t happy with it, they can still comment on the topic.
In my company’s downstream GitHub Enterprise repo, I encourage the committer to NOT resolve conversations, and then I can use the Resolve Conversation button to mark when I am satisfied with the resolution. If however, a committer were to resolve it, thinking they’ve resolved it, I wouldn’t immediately be able to tell which comments I had yet to confirm have actually been addressed.
For those wondering whether people would ever mark things as resolved when they ever haven’t actually resolved the issue, my answer is yes, regularly (at least in Phabricator) where they mark things as done but never actually address the commented-on issue.
I’d like to propose the LLVM community adopt the same policy that I follow in my downstream project, namely that the committer shouldn’t click the “Resolve Conversation” button, but rather they should leave reviewers to use it.