🌱🌿🌱 Verdant is a JupyterLab extension that automatically records history of all experiments you run in a Jupyter notebook, and stores them in a tidy .ipyhistory JSON file designed to be work alongside and compliment any other version control you use, like SVN or Git. Verdant also visualizes history of individual cells, code snippets, markdown, and outputs for you, for quick checks and references as you work.
[Demo preview video] Figure description:
The history tab opens the sidebar for Verdant containing three tabs: Activity (A), Artifacts (B), and Search (C). The Activity tab, shown open here, displays a list of events. A date (D) can be opened or collapsed to see what happened that day. Each row shows a version of the notebook (e.g. version #53) with a text description and visual minimap. Thee minimap shows cells added in green (see G) and deleted in red (F). In (E), a cell was edited and run (in blue), and the following cells were run but remained the same (in grey). The user can open any version (e.g., #53, H) in a ghost notebook tab for quick reference.
For design discussion and the research behind this check out our paper:
Mary Beth Kery, Bonnie E. John, Patrick O’Flaherty, Amber Horvath, and Brad A. Myers. 2019. Towards Effective Foraging by Data Scientists to Find Past Analysis Choices. In Proceedings of ACM SIGCHI, Glasgow, UK, May 2019 (CHI’19), 11 pages. DOI: 10.475/123 4
- JupyterLab
For a development install (requires npm version 4 or later), do the following in the repository directory:
npm install
npm run build
jupyter labextension link .
To rebuild the package and the JupyterLab app:
npm run build
jupyter lab build
This research has been funded by Bloomberg L.P. and has been conducted at the Bloomberg L.P. and at the Natural Programming Group at the Human-Computer Interaction Institute at Carnegie Mellon University. Thank you to the JupyterLab project and also to all our awesome study participants for volunteering early design feedback!