Open aufdenkampe opened 4 years ago
Email response from @rheaphy:
Thank you for this research! I too lean toward option 2.
Even if we save Notebooks as binary data, perhaps we can still use the Jupyter nbdive to perform the diff's. It was designed to handle the JSON, embedded HTML, and other junk. I haven't used it since it assumes you are using Git and until the last couple of weeks, I was using mercurial.
@rheaphy, my commit https://github.com/LimnoTech/HSPsquared/commit/32c93eff0dd3671a5c7c57e420f3909cf71e3dfa should now enable @ptomasula's Option 2 and therefore allow us to use this repo to exchange the Jupyter notebooks that are an essential component of #31.
With merging #43 into Master, we can close this!
Our implementation of Option 2 - Enable notebooks to be handled as binary, described above, is no longer working sufficiently well, as it completely obscures advances in our Jupyter notebooks.
Recent advances in GitHub and GitHub desktop visualization of commit changes has made it easier to deal with the navigating the diff of a the large JSON formated .ipynb file content. For this reason, I think we should revert to our original approach. I'll do this shortly.
Meanwhile, I'm reopening this issue to remind us to explore Option 3 – Use a merge management tool. A few articles on this topic are worth reviewing:
One new option is particularly interesting: https://www.reviewnb.com (free for public repositories)
As we were working on the testing system (#31), @rheaphy, @steveskrip, @ptomasula and I discussed on a call the challenges of git-tracking Jupyter notebooks, because output cells are updated every time they are run even if the Python code or markdown doesn't change.
Let's work out a good way to save and track Jupyter notebooks.
Here's @ptomasula's HSP2 Potential Solutions for Python Notebooks in GitHub email with background and options: