CE release workflow with automated Zenodo publication

The MUSES Calculation Engine will continue to evolve past the 1.0 release. There will be bug fixes and updates to registered modules, among other changes. The workflow for releasing new versions is important not only for researchers who need to be aware of how CE updates impact their custom-built client software, it is also important how it supports the proper citation of the software when researchers publish results involving output from CE workflows.

The challenge for MUSES developers is that the CE version must exist in multiple files to be rendered or parsed by a variety of consumers. For example, the Django web application needs to know the version so it can be displayed on the web interface and so that metadata can be output with workflow files for provenance tracking. We also want to prominently display the text people should use to cite the CE, including code snippets (like BibTeX) they can copy-paste to make it even easier. Another example is the CITATION.cff file, which is consumed by services like Zenodo, GitHub, Zotero to automatically generate bibliographic info to display.

The latest version v0.9.5 illustrates the new release system. The CE landing page prominently displays a link to learn how to cite the software:

The new user page in the docs includes a link to the CITATION.cff file as well as a BibTeX file for convenience:

There is also a new developer documentation page that explains how the make_release script works. In a nutshell, you invoke the script with a target version (e.g. v1.2.3) and the script uses the Zenodo API to automatically create a draft record for that version, from which it obtains a “prereserved” DOI that it then injects into the citation files. Then, a zip file is made of the source code at that tagged version and uploaded to the Zenodo record. At that point, the Zenodo record is complete and ready to be manually reviewed and published via the web interface.

(You can preview the unpublished draft of v.0.9.5 here.)