Open vijayiyer05 opened 1 year ago
- Stand up repository on a third-party organization, e.g. the INCF
Proposed name of repository is example-live-scripts
.
This mirrors the example-notebooks
repository currently established for Jupyter notebook examples.
re name
live
making example-live-scripts
being different from example-scripts
in its nature?
example-notebooks
?
- Document the repository organization guidelines, fine-tune if needed, and implement
The MatNWB working group converged on the following guidelines for the example live script repository, which will be documented in somewhat more detail in the staged repository (e.g., in the README and/or wiki). 👉🏽These are general concepts & are freely shared as potentially also a model for other DANDI example libraries
Folder location guidelines depend on whether example is hosted natively in library or external to library:
<dandiset id>/<org/lab/individual- first commit year>/<mnemonic>/<code>
<dandiset id>/<external repository org>/<external repository name>/<code>
Natively hosted examples should use a permissive license option from ChooseALicense.com, e.g. MIT or BSD.
IF the external example repository uses:
THEN the external example owner has the option to simply copy (clone) specifiic release contents into the DANDI example repository. This is (for some) a simpler option than the Mirrored Example option below (which uses git submodule).
This simplicity comes with one responsibility: the cloned example README should be minimally modified to include a header that 1) points to source repository & 2) identifies the release copied. If the copied release is updated (e.g., for new releases), this header should be updated accordingly.
Besides the convenient case of Cloned Examples outlined above, git submodule is the expected workflow to mirror the example from the source repository to the example library.
- Upload initial examples (following the submitter guidelines per above) Initial Dandiset examples anticipated:
- 000017 by CatalystNeuro
- 000011 by Morteza Abbaszadeh, PhD
- 000217 by Marielle Darwin, PhD
- Configure the Dandihub MATLAB environment to pre-install the repository & set this as the initial working directory for new users.
MetaCell has begun work on refining the Dandihub MATLAB environment via Dockerfile edits. They will likely become the owners of this step.
re name
is there some semantic in using
live
makingexample-live-scripts
being different fromexample-scripts
in its nature?
- but then it should also be open to non-matlab scripts submissions etc.
- may be they could be furnished as notebooks using e.g. https://www.mathworks.com/products/reference-architectures/jupyter.html and thus residing in the same
example-notebooks
?
Thank you @yarikoptic for these good questions.
Live scripts are I would say more like notebooks (i.e., have graphics/rich text/equations/controls/etc) than ordinary scripts, so I think the 'live' qualifier is necessary.
Grouping these examples together with the (mostly or all) Jupyter notebooks in the example-notebooks
would be the natural way to move in the direction I believe you're alluding towards. But this would have a couple of disadvantages in my view:
The MatNWB working group has converged on a set of guidelines for organizing examples, and their derivatives and revisions. It's not intended to impose these on the broader set of notebooks, although they will be fully available to be replicated.
Although there is growing interoperability between the MATLAB & Python ecosystems (including the MATLAB integration with the Jupyter desktop you linked to), there isn't notebook interoperability to my knowledge. So any library mixing both types of notebooks would just present as clutter for a viewer in either home environment.
The MatNWB working group has been working towards establishing an organized library of example live scripts. The consensus view was that it would best be hosted by the DANDI archive organization (or an affiliated one).
Based on discussions, it is proposed to tackle this issue in stages:
See comments below and/or sub-issues for further notes regarding each step.