Introducing ReviewNB: Visual Diff for Jupyter Notebooks

I’m excited to announce ReviewNB, a code review tool for Jupyter Notebooks.

Problem

Jupyter is great for data exploration but it’s hard to go beyond that & do any kind of collaborative work with it. Following challenges exist in using Jupyter Notebooks with modern version control system like Git,

  • Notebook diffs are hard to read. Hence we can’t do code reviews on GitHub
  • Merging in remote changes is hard due to JSON format of Notebook files (.ipynb)
  • No easy way to share feedback & have a discussion around Notebooks
  • It’s not easy to reproduce Notebook results
  • It’s not easy to test notebook code cells

Solution

ReviewNB aims to tackle some of these problems starting with diff. We built a best in class visual diff for Notebooks stored on GitHub. See examples on our homepage.

How does it work?

  • ReviewNB is a GitHub App available on the GitHub marketplace (app is verified by GitHub)
  • ReviewNB communicates with GitHub APIs to fetch the notebook changes made in a commit or a pull request.
  • We process these changes (git patches) and detect the event occurred at each cell/output. These events could be – cell is modified, inserted, deleted, split, merged and so on.
  • We show these changes to user in a side-by-side diff format. All notebook contents (markdown, code, images, formulas) are rendered as you would see in the Jupyter UI.

This visual diff is much more readable than the messy JSON diff common to Notebooks.

Workflow

ReviewNB is super simple to use. It does not require any local installation or configuration. One can start using it on their GitHub repositories in under a minute.

  • Anyone can install the app on GitHub and select repositories that ReviewNB will have access to (~30 seconds).
  • Once logged in, you can browse Commits or Pull Requests on your repositories.

Screenshot 2018-10-23 at 12.26.53 PM.png

  • Then you can start seeing visual diff for any commit or pull request that you choose

Screenshot 2018-10-23 at 12.44.04 PM.png

  • You can also write comments on the PR diff which would be posted to GitHub PR.

comment_on_diff_right_side

  • Team members can reply to comments & start/resolve conversations

single_conversation

Roadmap

The next thing in our pipeline is a CI platform for Jupyter Notebooks. This would automatically run tests every time you push Notebook changes to GitHub. We built treon, an open source testing framework for Jupyter Notebooks, as a core component of the CI system.

We’re building in the open. That means you can view upcoming features, vote on them, and even request a new one. There are some exciting new things in the pipeline. Our aim is to make Notebooks a first class entity in data science and ML teams.

That’s all for now! There’s more information on our website along with an elaborate FAQ section for common questions you might have. I’m available on amit@reviewnb.com if you want to get in touch. Try out ReviewNB and let me know what you think of it!

 

One thought on “Introducing ReviewNB: Visual Diff for Jupyter Notebooks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s