Use case 2: Export a human-readable dataset to OSF¶
Imagine you have been collecting data and want to share it with others. All your colleagues have only sparse experience with the command line, but are frequent OSF users. Therefore, you place all data in a dataset and export the latest version of your data to the OSF in a human readable way, for others to view it conveniently in the web interface.
As you want a human-readable representation and decide to not share the version history, but only the most recent state of the data, you pick the
exportonly sibling mode.
Creating the OSF sibling¶
Given OSF credentials are set, we can create a sibling in
We will also make the project public (
--public), and attach a custom description (
--description) to it.
The code below will create a new public OSF project called
best-data-ever, a dataset sibling called
osf-exportonly-storage. This sibling is a sole storage sibling – in technical terms, a git-annex special remote – and can only be used with pure git-annex commands.
# inside of the tutorial DataLad dataset $ datalad create-sibling-osf --title best-data-ever \ --mode exportonly \ -s osf-export \ --description "This carefully acquired data will bring science forward" \ --public create-sibling-osf(ok): https://osf.io/<id>/ # note that the sibling name as an appended "storage" suffix! $ datalad siblings .: here(+) [git] .: osf-annex(-) [osf://n6bgd (git)] .: osf-export-storage(+) [osf] # created in this example .: osf-annex-storage(+) [osf]
Publishing the dataset¶
exportonly mode, the only way to publish data is via
git annex export (more on this command here).
This command is a pure git-annex command and can export a tree (a branch, tag, or any other tree-ish accepted by Git including e.g.,
master:subdir) to the OSF without obscuring filenames.
To export the current state (the
HEAD) of the dataset with this command we run:
$ git-annex export HEAD --to osf-export-storage export osf-export-storage .datalad/.gitattributes ok export osf-export-storage .datalad/config ok export osf-export-storage .gitattributes ok export osf-export-storage books/bash_guide.pdf ok export osf-export-storage code/example.txt ok (recording state in git...)
The resulting project has a human readable structure, and all its data can be viewed and downloaded via the OSF interface. It is not possible to clone this dataset with DataLad, however potential users can still download it from the standard OSF interface.