This guide walks you through the process of creating a permanent, citable reference for your coding modules using GitHub and Zenodo. By following these steps, you will generate a DOI (Digital Object Identifier) that ensures your work is recognized in academic research.
CITATION.cff FileThe CITATION.cff is a plain-text file that tells GitHub and Zenodo exactly how to format the
citation.
CITATION.cff.cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Lastname"
given-names: "Firstname"
- family-names: "CollaboratorLastname"
given-names: "CollaboratorFirstname"
title: "Title of Your Module"
version: 1.0.0
date-released: yyyy-mm-dd
url: "https://envisionbox.org/your_module_page.html"
repository-code: "https://github.com/YourUser/YourRepo"
type: software
Zenodo needs permission to "watch" your repository for new releases.
Zenodo only archives your code and issues a DOI when you create an official Release on GitHub.
v1.0.0. (Mandatory)Initial Release for EnvisionBox. (Mandatory)Within 1–2 minutes of your release, Zenodo will archive the code.
In your GitHub README.md, add a citation section:
## Citation
> First Name, Last Name. (year). Module Name (Version X.X.X). Zenodo. https://doi.org/10.5281/zenodo.xxxxxxx
[](https://doi.org/10.5281/zenodo.xxxxxxx)
Add the formal citation to the HTML file of your module. If you do not have editing access, please contact a core member.
<p><strong>To cite this module:</strong></p>
<ul class="bulleted-list">
<li>
Lastname, F., & Collaborator, F. (2024).
<em>Title of Your Module (Version 1.0.0).</em>
Zenodo.
<a href="https://doi.org/10.5281/zenodo.XXXXXXXX" target="_blank" rel="noopener noreferrer">
https://doi.org/10.5281/zenodo.XXXXXXXX
</a>
</li>
</ul>
Version DOI: Unique to a specific release (e.g., v1.0.0). It is a permanent
snapshot. Use this in scientific papers for reproducibility.
Concept DOI: A "master" DOI that always redirects to the latest version. Use this on the EnvisionBox website so the link never breaks when you update the code.
Zenodo archives the entire repository as one object. If you have a "monorepo" with multiple folders:
CITATION.cff for the whole collection.Yes. As long as you have "Write" access to the GitHub repo, you can link it to your Zenodo account. The
CITATION.cff ensures correct credit regardless of who triggers the release.