Link past ACKs to a collapsible history section#74
Link past ACKs to a collapsible history section#74l0rinc wants to merge 3 commits intomaflcko:mainfrom
Conversation
Add a golden-output test for the Reviews markdown so follow-up refactors show the exact formatting changes.
Move review parsing and selection into `collect_user_reviews()` to isolate the review selection logic for follow-up history rendering.
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste |
9b3659c to
71dfdfa
Compare
Add a Review history details block under the Reviews table that lists every non-ignored review event (type, reviewer, date) linked to the original comment. Inline superscript/brace links were too verbose, so the history now lives in a separate expandable section instead.
71dfdfa to
3c7e659
Compare
|
Seems fine, but the use-case seems also very limited: Solely to refer to the earlier ACKs for the possibility of them containing relevant information. I think, if there is any relevant information, worthy to be mentioned or referred to again, it seems easier to just refer to it or mention it again. This will also make re-reviews less boring. For example, instead of a plain
there could be a
or
Generally, not everyone puts relevant information into their review comment, so this feature could also be misleading. And if someone wanted to re-evaluate all relevant (review) comments, there is probably no easy way out, other than to read all comments. No objected, but I think the use-case is very limited. |
|
Thanks for implementing this! I feel the collapsible history table in shown https://gist.github.com/l0rinc/484dc5670f6a79a522d39acfa4b83b11 is not very usable, though. The problem I have is that before I merge a PR I want to look at previous review comments and make sure earlier concerns have been addressed. And often when I'm reviewing a PR I remember a person previously giving high level feedback but it is hard to find again because there is no easy way to find prior reviews from some person, so I wind up ctrl-f'ing through duplicate comments or searching gmail to scan the reviewer's posts chronologically. To use the example in the gist, I simply want to replace:
with
Simply appending each persons latest review with links to their previous reviews as [0][1][2] links. I don't think this would add much noise, and I don't care about dates or types of previous reviews, I just want links to follow progression of a reviewers opinion and see if they have given meaningful higher level feedback. This is difficult currently because the current UI drops links to more substantive reviews when reviewers reack. |
|
that's what I have attempted before, it's what I meant by:
Let me reimplement that and let's see if that's more useful. |
|
@ryanofsky this is what I tried originally and decided against it - do you think this would be more useful?
Also, what do you think of the unresolved threads section in https://gist.github.com/l0rinc/484dc5670f6a79a522d39acfa4b83b11?permalink_comment_id=5937556#gistcomment-5937556? |
|
Thanks, that looks almost perfect to me, and the unresolved threads seems like a great idea, I really like it. IMO, the previous review output shown above is not too noisy. It seems readable and helpful, and this is an extreme example in a PR open for 2 years with 827 comments. Almost any other PR would have a lot fewer previous reviews. I do think previous review links would be more useful in ascending order. The first review [0] is likely to be a lot more substantive than the second-to-last review and if you are reading the reviews it makes sense to read them in order. Also [0][1][2] looks less strange than [2][1][0], IMO. To be clear, I don't think the existing links to current reviews should be changed, the suggestion is only to add links to previous reviews afterwards as convenient way to see and find them. I do really like the "unresolved threads" table and just have to 2 suggestions on that:
|
|
I will push those suggestions, thanks for the feedback.
Beyond stability ( If the bracket links are shown in ascending order, the visual order becomes inconsistent: With stable indices (oldest = [0]) but reverse display, you get: name -> latest, then [2][1][0] for previous reviews - monotonic in time and no renumbering when a new ACK comes in. |
|
This seems pretty noisey. Looks like a lot of the [0] are also being miscounted as ACK, when they are actually Concept ACK? |
I wonder if such a table will be counter productive, because:
Moreover, not all threads must be "solved". There are sometimes threads which contain tangential fun facts, or make review easier. Sure, those comments could be put in the commit message, or a code comment, but sometimes they are a thread, which I think is fine. Personally I think the workflow for closing threads should be:
|
|
Thanks for the reviews!
Wouldn't that motivate the author to be more responsive?
The reviewer can comment on those treads if this is weaponized.
Sure, they will appear in the list and the maintainer can ignore them. Isn't this better than having unaddressed changes that the maintainers miss?
Possible, I haven't pushed the latest version since we don't seem to have a consensus on how to do this in a way that maintainers find useful. |
I think you answer your own questions: Not all requested changes must be addressed and some can be ignored. There are already different ack-types for reviewers to pick from to indicate if the code is rfm from their perspective, of if something should be addressed. I don't think there is anything wrong by saying "i like the changes, but there is a major flaw in the approach (see inline comment) -> Approach NACK". If a maintainer (and later reviewers) are missing an approach NACK, then I don't think this feature will help them. Conversely, if there is just a minor (style) nit, or non-blocking comment, or follow-up idea, it is also trivial to mention in the review comment (#74 (comment)) I expect that most maintainers will skim the review comments and the last few comments on the thread, so the chance that they are missing something should be slim. |
|
(Still no objection to merging this, especially given that one maintainer likes it. I am just curious why the status quo is insufficient or bad, or where it has failed in the past) |
Context
Inspired by #72 (comment), this adds a dedicated review history section so maintainers can quickly inspect older ACK/NACK context without cluttering the main
Reviewstable.Other attempts
I originally tried superscript links and brace-style links next to the latest ACKs, but both were too verbose and hurt readability, so the history is now a separate collapsible section.
Structure
summary_comment_templateto lock theReviewsmarkdown format and show the effect of each change.collect_user_reviews()to isolate the review selection logic for follow-up history rendering (this also helps with the preview patch below).Review historytable listing all non-ignored review events (type, reviewer link, date).Reproducer
See https://gist.github.com/l0rinc/484dc5670f6a79a522d39acfa4b83b11 for an example output and apply the following patch to try it with any other PR:
Patch for `--preview-reviews` that fetches a PR’s comments/reviews and prints the generated Reviews markdown
After applying locally, you can test it with: e.g.