Reviewable changes
Reviewable changes

Support for git spr (stacked pull requests)




Reviewable now supports git spr. Stacking pull requests is a convenient way to isolate the scope of pull requests. Spr is a tool used for stacking pull requests that creates a stack of PRs, making sure all PRs in the stack meet a set of user defined criteria before merging them together.

Reviewable will track PRs in the stack and link to the relevant reviews in the top review discussion for convenience. When a stacked PR is merged using spr, children PRs don't get merged, but closed. Reviewable will track the status of these PRs and update the review state to reflect whether it's actually been merged into the head of stack 😎 .

Ignoring comments from bots




When a user posts a comment (whether via Reviewable or GiHub), we automatically snapshot all revisions to ensure that the comment's context is preserved. This can lead to a mess, though, if you're taking your time pushing commits to a PR before asking for a review and a bot (perhaps CI?) is posting comments as you go. There can be dozens of snapshotted revisions by the time you invite a reviewer! 😅

To avoid this situation, Reviewable now attempts to detect whether a comment was posted by a bot and avoids snapshotting revisions in that case. We detect bots by checking whether the username ends with [bot] (for GitHub Apps bots) or -bot, or the display name ends with (bot). If you have a favorite bot account changing its username could be tricky, but it should be easy to append (bot) to its name since that oughtn't be referenced anywhere. 🥳

Code suggestions




You can now conveniently suggest changes when reviewing code:


And you get a nice, basic code editor when doing so, with syntax highlighting, automatic indents, and so on:


You can use the feature for code quotes, suggestions, or even just ad-hoc snippets to get the benefit of the code editor. And for those of you who like to lay out some options, there can even be multiple suggestions per comment. 😅

There are two major caveats:

  1. There's no click-to-accept functionality; you have to copy the suggestions into your code by hand.
  2. It doesn't interoperate with GitHub's code suggestions, because GitHub doesn't expose any API to do so.

We'll be working to further improve the feature (e.g., more compact diffing, jump to the original suggestion line) so please don't hesitate to share your ideas for how to make things even better!

Showing code coverage




Reviewable can now display code coverage annotations right in your diffs!


To take advantage of this feature you'll need to configure how to fetch coverage reports on your repository's settings page. We currently integrate natively with Codecov but can fetch from other report sources as well. Please get in touch if you need Reviewable to support another report format.

Jupyter Notebook reviews question




Hey folks, we're trying to figure out whether to put first-class support for reviewing Jupyter Notebooks on our roadmap and I was hoping you could chime in with a bit of data:

  1. Do you use Jupyter Notebook at your company?

  2. Do you review notebook changes, and if so what tool do you use to do it?

  3. Would adding support for reviewing fully rendered notebooks in Reviewable be of value to you?

  4. Roughly how many people need to review notebooks and what proportion already use Reviewable?

Thanks in advance for any light you can shed on this subject!

Lodash 4.x support

Reviewable now defaults to the Lodash 4.x module when executing new custom completion code. We'll continue using Lodash 3.x for existing conditions, but if you want to upgrade please add a dependencies directive anywhere in your condition:

// dependencies: lodash4

If you'd prefer to continue using Lodash 3.x for your existing conditions, no updates or flags are necessary.

You can confirm which Lodash version your condition is using here:

Screen Shot 2021-09-16 at 10.25.42 AM.png

If there are any other dependencies you'd like to be able to use when executing your conditions, let us know and we'll do our best to support them!





Video uploads





Reviewable now supports uploading video files in comments. We mirror Github's support of both MP4 and MOV files, with a maximum upload size of 100MB for Enterprise users and 10MB for SaaS users. Maybe you want to demonstrate a new feature, or add some spice to a review — the choice is up to you! You can add video files two ways, either by clicking the upload button or simply dragging and dropping the file into a draft.

Screen Shot 2021-08-05 at 8.36.28 AM.png

If you have any suggestions for how we can make the review experience more enjoyable or experience any issues with uploading videos, please let us know!

Commit message reviewing





Reviewable now supports diffing and reviewing commit messages. This can be an important part of some workflows, but also a big UI improvement even when just figuring out how revisions map to commits.

In new reviews, Reviewable will generate a virtual Commits file that you can diff just like a normal one. This file will always be first in the list and is prefixed with a commit icon but otherwise behaves like a normal file; it will have revisions and support discussions. Note that this file doesn't affect your repository or pull request in anyway — it's generated on the fly solely for diffing and reviewing commit messages.

Screen Shot 2021-07-27 at 11.13.20 AM.png

Screen Shot 2021-07-27 at 11.17.23 AM.png

While the commit file is virtual, it needs to be marked as reviewed as much (or as little) as normal files, depending on your workflow. It's included in review file counters, but not counted in review status messages unless it's the only unreviewed file. It also replaces the synthetic revision commit messages in the main review discussion, which should make following comments there a lot easier.

It's also handled separately from normal files when evaluating a custom review completion condition. You can find it in review.systemFiles and easily check whether it's been reviewed via review.summary.commitsFileReviewed (as it's not included in the other summary file counters).

As always, please let us know if you experience anything undesirable or have suggestions for how we can improve the review process!

Deferred reviews





Reviewable will now automatically defer a review when published with unreviewed files or unresolved discussions. This allows you to post a partial review while visually handing off responsibility for the next action. This can be helpful when discussing larger design issues or other problems that need to be addressed before proceeding with the rest of the review.

Instead of displaying red counters for these deferred files and discussions, they'll now be gray with a red border indicating that there's still work to be done, but you're waiting for others to act first before continuing the review.

Screen Shot 2021-06-30 at 10.07.01 AM.png

In addition to the visual differences, the review will fall from awaiting my action to being reviewed by me until an action is taken to change deferral state — either changes to files you're reviewing or new comments are posted. When this happens, the counters will reset to red and the review will be reactivated.

Note that you can continue manipulating a review as usual while it's deferred, except that Reviewable won't suggest the next set of diffs to review. If you wish, you can also reactivate a deferred review manually by clicking the continue review now button on the review page.

Screen Shot 2021-07-06 at 8.13.00 AM.png

If you have a custom completion condition that computes pendingReviewers from scratch, you'll want to read the docs to see how this change affects you.

As always, please don't hesitate to get in touch if you have any issues or suggestions -- we're happy to help!

Auto grouping of reverted and renamed files





Reviewable will now automatically group reverted and renamed files in the file matrix. This can help you quickly mark as reviewed files that you may not care about reviewing in detail.


Only files that were renamed without any other changes will be grouped this way, and if a file qualifies for both groups (as in the screenshot above) it will prioritize the reverted group. You can break up these automatic groupings with the small ungroup link to put all the files back into their original spots.

More features coming soon — watch this space!