Peer Review & Collaboration for Jupyter Notebooks

1 minute read

Most people know Jupyter notebooks as a scratchpad for data scientists. Jupyter’s ease of use accompanied with its rich ecosystem (visualizations libraries, % magics, widgets, extensions) makes it an indispensable weapon in the data scientist’s armory. Growing number of data science groups are also using notebooks as a communication medium within their teams, with other stakeholders within & outside the organization.

Jupyter as a Communication Medium?

A typical data analysis consists of some input data, steps to cleanup & process the data, description of what’s happening at each step & intermediate / final results in the form of a visualization, interactive widget or tabular data. Jupyter notebooks enable all this in a single document accessible via browser. Author can just create their notebook, push it to GitHub & share the URL with anyone who’d like to review this document. GitHub renders notebooks as intended (except it won’t run Javascript inside the notebooks), but so far, so good!

GitHub doesn’t yet support review or discussion workflow for notebooks. The notebook reviewer might have some questions, clarifications, suggestions for the author. That’s where ReviewNB comes in. It’s a GitHub marketplace app built exclusively to review Jupyter notebooks on GitHub.

How to review Jupyter Notebooks?

You can use GitHub to version control notebooks (there’s a useful JupyterLab git extension as well). Once the notebooks are present in your repositories you can open them via ReviewNB and start the review process.

  • You will be able to write a comment on any notebook cell, ask clarifying questions, provide feedback in the context of a notebook cell.

  • Anybody watching this repository will be notified of your comment and they can chime into the conversation.

  • You can track all open conversations & resolve them when the underlying issue is resolved satisfactorily.

  • All comments are persisted across notebook changes so past discussions are always available if someone wants to refer to it. Of course, you can resolve or permanently delete them if required.

This is one simple way in which ReviewNB enables collaboration workflow for Jupyter notebooks. You can also use ReviewNB to see rich diffs on notebook commits & pull requests on GitHub. More about that here.