Add unique ID to the notebook metadata
- Dominant language
- Python
- Stars
- 313
- Forks
- 176
- PR merge metrics
- No merged PRs in 30d
Description
It would be nice to have a "practically unique across the universe identifier" in the notebook metadata. This would allow you to recognise a notebook based on this ID. Right now if Alice and Bob have a copy of the same notebook there is no way to know if they are the same or not. Even for Alice on her laptop and her desktop this is hard. If the notebook contained a unique ID it would be clear that (at some point) these were the same notebook.
I can think of three use cases:
* https://discourse.jupyter.org/t/annotating-jupyter-notebooks/2079 -- to annotate notebooks and show the same comments on all copies (Alice's laptop, Alice's desktop, Bob's computer)
* https://github.com/jupyterhub/binderhub/issues/1003#issuecomment-555891940 -- it would allow a service like BinderHub to offer the user the option to restore a notebook from "in browser storage"
* notebook sharing services -- if you upload a notebook to a shared storage for sharing with others then notebook tools could recognise that they are looking at different versions of the same notebook
I'd propose that the notebook format starts recommending that tools which create notebooks add a "unique_id" field to the notebook level metadata that contains a value like `uuid.uuid4().hex`. The value of this field should not be changed by reading and writing to the notebook.
---
I am new to this repo so please close this and link to an existing issue/PR if there is one. I searched for "unique" and didn't find anything.
Contributor guide
Research direction
Start by reviewing the notebook format's metadata specification and the three linked use cases. Determine how a recommended notebook-level unique_id should be generated and preserved across reads and writes, then document the agreed format behavior and validation expectations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook, python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100