14
$\begingroup$

I have prepared Jupyter Notebook with some findings and I shared it with other team members through GitHub to get their feedback in a written form. It used to work like this when working together on a piece of code but does not work for Jupyter Notebook. In GitHub that would mean commenting on HTML or JSON level (internal markup for .ipynb files), not on the document level. An alternative would be for team members to clone the repo and puts inline comments in the document. That's an additional effort for other team member I would like to avoid.

What is the way you collaborate, peer review and provide feedback when working on Jupyter Notebooks?

$\endgroup$
7
$\begingroup$

There are several collaboration platforms with hosted notebooks that can be shared like:

However the base idea of collaborating and sharing notebooks is actually a base function of jupyter. As you might have noticed it is a server-hosted application which by default opens a local server for you to work on.

By simply hosting that server (e.g. on AWS, your internal servers, etc.) you can collaborate on the notebooks directly and interactively.

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Colab doesn't allow realtime collaborative editing anymore unfortunately. $\endgroup$ – daknowles May 20 at 17:19
11
$\begingroup$

CoCalc provides Jupyter notebooks with realtime collaboration, unlike Colab, Kaggle, etc. You just make a project drag and drop ipynb and data files, add collaborators, and everybody can edit everything simultaneously. You can also share content publicly at the share server. I think CoCalc is currently the overall most mature of the realtime Jupyter collaboration platforms (and it is the only open source one 4), but Deepnote is another option that is more focused on data science (but is closed source).

| improve this answer | |
$\endgroup$
  • $\begingroup$ I'm not seeing an open-source CoCalc server, just a free intro plan and paid-for services. $\endgroup$ – Spacedman Apr 29 at 12:31
  • 1
    $\begingroup$ It's here: github.com/sagemathinc/cocalc-docker You can very easily install this yourself on your own hardware or VM. There's also github.com/sagemathinc/cocalc-kubernetes $\endgroup$ – William Stein Apr 30 at 13:17
  • $\begingroup$ Wow! Linked at the very bottom of the last page of the documentation! Almost like they don't want you to find it. I can't undo my downvote unless you make an edit - add a link to the docker image and docs maybe? $\endgroup$ – Spacedman Apr 30 at 14:07
  • 1
    $\begingroup$ We very much want people to find cocalc-docker (e.g., it leads to many commercial support contracts). I also made an edit so maybe you can change your downvote. $\endgroup$ – William Stein May 1 at 15:17
2
$\begingroup$

Using a notebook, you can always convert it to a python script if you just go to "File > Download as > Python (.py)". Then, you can share it with your teammates and have handwritten comments on a printed form of it, regardless of how unusual this practice sounds.

| improve this answer | |
$\endgroup$
1
$\begingroup$

In GitHub that would mean commenting on HTML or JSON level (internal markup for .ipynb files), not on the document level.

This is the crux of the problem. I built ReviewNB specifically to peer review Jupyter Notebooks on GitHub. It integrates directly with your repositories on GitHub and provides visual diff and commenting support (see screenshot below).

For straight up multi-user collaboration you can also setup JupyterHub so everyone can login to the same server, although I'd recommend using GitHub and installing Jupyter locally.

enter image description here

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.