Publish from GitHub to Zenodo
Zenodo can automatically create new versions of a submission from GitHub releases. However, unfortunately it is not possible to get the DOI for the next release before it is made.
To still provide support to users for citing correctly, do the following:
Connect Zenodo to GitHub, and activate the respective repository.
Include the citation itself including the version number in the
README.md
. Refer to the release notes for the correct DOI. For example:If you use this software for academic work, I would appreciate a citation:
Allefeld, C. (2023). MKernel: A Jupyter Kernel for Matlab (1.0.0)
You can find the Zenodo DOI for this version from its GitHub release notes.
Add a file
CITATION.cff
to the repository with contents like:cff-version: 1.2.0 title: 'MKernel: A Jupyter Kernel for Matlab' message: >- If you use this software for academic work, I would appreciate a citation. type: software authors: - given-names: Allefeld family-names: Carsten email: carsten.allefeld@city.ac.uk orcid: 'https://orcid.org/0000-0002-1037-2735' affiliation: 'City, University of London' identifiers: - type: doi value: 10.5281/zenodo.10028659 description: 'Zenodo publication, concept DOI for all versions' repository-code: 'https://github.com/allefeld/mkernel/' abstract: >- MKernel is a Juypter kernel for Matlab, intended to be better in some respects than the existing options, in particular in supporting Quarto documents. keywords: - juypter - matlab - kernel license: GPL-3.0-or-later version: 1.0.0 date-released: '2023-10-20'
You can use cffinit to create it.
Make a release. This can be done with the GitHub CLI:
gh release create v1.0.0
WarningDo not make pre-releases, since they will be harvested by Zenodo anyway!
Obtain the version-specific DOI from Zenodo and edit the release notes to include it, e.g.
Cite this version with doi:10.5281/zenodo.10028662.
For further releases,
- update the version number in the
CITATION.cff
file and theREADME.md
, - make the release,
- obtain the version-specific DOI from Zenodo,
- and edit the release notes to include it.