jupyter / jupyter/nbformat

Add unique ID to the notebook metadata

Open
#148 13 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.