{"id":20881346,"url":"https://github.com/mkery/verdant","last_synced_at":"2025-04-10T05:02:33.090Z","repository":{"id":34293427,"uuid":"133281359","full_name":"mkery/Verdant","owner":"mkery","description":"An experimental tool that stores and visualizes local versioning in JupyterLab","archived":false,"fork":false,"pushed_at":"2023-01-07T11:00:03.000Z","size":36831,"stargazers_count":148,"open_issues_count":26,"forks_count":21,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-24T08:08:15.348Z","etag":null,"topics":["experimental","history-management","jupyter-extension","jupyterlab","version-control"],"latest_commit_sha":null,"homepage":"https://marybethkery.com/Verdant/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-13T23:09:27.000Z","updated_at":"2024-12-26T18:53:05.000Z","dependencies_parsed_at":"2023-01-15T06:00:26.926Z","dependency_job_id":null,"html_url":"https://github.com/mkery/Verdant","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkery%2FVerdant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkery%2FVerdant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkery%2FVerdant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkery%2FVerdant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkery","download_url":"https://codeload.github.com/mkery/Verdant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246911498,"owners_count":20853657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["experimental","history-management","jupyter-extension","jupyterlab","version-control"],"created_at":"2024-11-18T07:24:34.978Z","updated_at":"2025-04-03T00:08:46.837Z","avatar_url":"https://github.com/mkery.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Verdant\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\n🌱🌿🌱 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.\n\n[Thoughts? We're super interested in making Verdant serve data scientists well. --\u003e Feedback Survey](https://forms.gle/cdqdV1LzwStzk2Qy7)\n\n![Demo Screenshot](tutorial/images/Screenshots/out.gif)\nFigure alt text: \n\u003e The history tab opens the sidebar for Verdant containing three tabs: Activity, Artifacts, and Search. In the currently open Artifacts tab,\n\u003e the user click on a large button titled \"Version Inspector\". Once clicked, the inspector is active, and now when the user mouses over different\n\u003e parts of their notebook, cells and output highlight blue. The use mouses over a code cell and clicks it. The inspector opens up a full history of \n\u003e that code cell with diff highlighting in the side bar of Verdant.\n\n\n[[Full demo on YouTube]](https://www.youtube.com/watch?v=4v_mHIJdZq0\u0026t=4s)\n\nFor design discussion and the research behind this check out our [paper](https://marybethkery.com/projects/Verdant/Towards_effective_foraging_by_data_scientists.pdf):\n\n\u003e Mary Beth Kery, Bonnie E. John, Patrick O’Flaherty, Amber Horvath, and\n\u003e Brad A. Myers. 2019. Towards Effective Foraging by Data Scientists to Find\n\u003e Past Analysis Choices. In Proceedings of ACM SIGCHI, Glasgow, UK, May\n\u003e 2019 (CHI’19), 11 pages. DOI: 10.475/123 4\n\n## Install\n1. __Jupyterlab__: Verdant works with \u003e JupyterLab 3 (latest version). To install or update your JupyterLab: \n  * with pip: `pip install jupyterlab -U` \n  * with conda: `conda install -c conda-forge jupyterlab`\n  * to check version: `jupyter lab --version`\n  * _for windows users!_: due to a bug with lab extensions in earlier 3.0 releases, be sure you have \u003e= `3.0.7` of JupyterLab\n2. __NodeJs__: Jupyterlab needs node to configure and install extensions, not just Verdant\n  * to check if you have node installed `node --version`\n  * to install: [Official NodeJS installers](https://nodejs.org/en/download/)\n3. __Verdant__:\n  * command line `jupyter labextension install verdant-history`\n  * OR open Jupyterlab with `jupyter lab .` and find Verdant in the extensions menu (side panel icon button with the puzzle piece) by searching `verdant`\n4. :tada: If all has gone well, you'll see Verdant's log with a leaf icon in the left pane of Jupyterlab! :tada:\n  * if not, please file an issue with what error you're getting and we'll fix it promptly\n\n## Develop\n\nFor a development install, do the following in the repository directory:\n\n```bash\nyarn\nyarn build\nyarn start\n```\n\nThe last line installs Verdant as an extension and builds JupyterLab. It may take a minute. Upon a successful build, Jupyter Lab will launch in your browser window.\n\nIf you make modifications to the Verdant source code, you'll need to rebuild the package and the JupyterLab app:\n\n```bash\nyarn build\nyarn start\n```\n\nIf you plan on making lots of edits to Verdant, extension building is easier if you use:\n\n```bash\njupyter lab --watch\n```\n\nand then each time you make a change, you'll only have to re-run:\n\n```bash\nyarn build\n```\n\n\n## Acknowledgements\nThis research has been funded by Bloomberg L.P. and has been conducted at the Bloomberg L.P. and at the [Natural Programming Group](https://www.cs.cmu.edu/~NatProg/) at the [Human-Computer Interaction Institute](https://hcii.cmu.edu/) at Carnegie Mellon University. Thank you to the [JupyterLab project](https://github.com/jupyterlab/jupyterlab) and also to all our awesome study participants for volunteering early design feedback!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkery%2Fverdant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkery%2Fverdant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkery%2Fverdant/lists"}