att / rcloud

Collaborative data analysis and visualization
http://rcloud.social
MIT License
431 stars 142 forks source link

Tag the notebook version in some metadata #367

Open cscheid opened 10 years ago

cscheid commented 10 years ago

We'll eventually have to move to different notebook versions (we already have), and if different versions of RCloud open the same gist, Bad Things Happen. We should try to prevent that by warning the user that they need to upgrade RCloud or something like that.

gordonwoodhull commented 10 years ago

so should we go ahead and and add a .meta file to each gist, with json content for now just {"notebook_version"="1.0"}?

gordonwoodhull commented 10 years ago

ping @cscheid

cscheid commented 10 years ago

Agh, I want to defer this to the next release. It's an important decision that needs careful thinking...

gordonwoodhull commented 10 years ago

Not to make this a meta-issue, but other metadata we might include:

cscheid commented 10 years ago

Those are much more complicated issues. Some people have written entire theses on trying to figure those out :)

gordonwoodhull commented 10 years ago

@cscheid wrote:

how about simply notebook_metadata.json? It's long, I know, but we all type fast :p

So how about that file contains an object. One of the fields is rcloud_version, say, and perhaps rcloud_build for the hash.

And then let's reserve a subobject in there for domain-specific data, say domain.

Another thing we talked about putting in there is possibly provenance tracking for when a notebook gets imported or copied and loses its history.

But let's keep this ticket for the original purpose of versioning, and leave space open in the json for arbitrary metadata.

cscheid commented 10 years ago

I'm ok with that proposal. Note that if this is a well-formed json object, we can have RCloud API that manipulates the metadata; so if the notebook execution opens a curated object (via a well-specified API), we can have the execution actually update the metadata.