DOI and Citations Setup (Zenodo)¶
Make canvodpy properly citable with a permanent DOI for academic papers using Zenodo + CITATION.cff.
Zenodo¶
Zenodo is a research data repository operated by CERN.
-
Automatic DOI
Each GitHub release automatically gets a permanent DOI (
10.5281/zenodo.XXXXX). No manual uploads. -
Permanent Archival
CERN guarantees 20+ years of preservation. Every release is archived forever — reproducibility guaranteed.
-
FAIR Compliant
Findable · Accessible · Interoperable · Reusable. Searchable by researchers worldwide, indexed by Google Scholar.
-
GitHub Integration
Link your repo once. Every subsequent GitHub release triggers automatic archival and DOI minting.
How It Works¶
1. Initial Setup (One-Time)¶
You link your GitHub repo to Zenodo: - Zenodo watches for new releases - No manual uploads needed
2. Every Release¶
just release 0.1.0
git push && git push --tags
Automatic workflow:
1. GitHub creates release v0.1.0
2. Zenodo detects new release
3. Zenodo archives the release
4. Zenodo mints DOI: 10.5281/zenodo.XXXXX
5. Zenodo creates citation metadata
3. Users Cite Your Work¶
Researchers can cite:
Bader, N. F. (2026). canvodpy: GNSS Vegetation Optical Depth Analysis (v0.1.0).
Zenodo. https://doi.org/10.5281/zenodo.XXXXX
Version-specific DOIs: - v0.1.0 → DOI: 10.5281/zenodo.12345 - v0.2.0 → DOI: 10.5281/zenodo.12346 - Concept DOI → DOI: 10.5281/zenodo.12344 (always latest)
Step 1: Create CITATION.cff (Done)¶
CITATION.cff enables the "Cite this repository" button on GitHub, exports to BibTeX/APA/EndNote, and provides metadata for Zenodo.
Add your ORCID iD
Edit CITATION.cff line 14 and add your ORCID identifier.
Get one at orcid.org/register — it links your publications to your researcher profile.
Step 2: Connect GitHub to Zenodo¶
2.1: Create Zenodo Account¶
- Go to: https://zenodo.org
- Click "Sign up"
- Important: Sign up with GitHub!
- Click "Log in with GitHub"
- This enables automatic integration
2.2: Enable Repository on Zenodo¶
- After logging in, go to: https://zenodo.org/account/settings/github/
- Find
nfb2021/canvodpyin the list - Toggle ON the switch next to it
- Zenodo is now watching for releases!
2.3: Verify Connection¶
- Should see: "✓ Enabled" next to canvodpy
- Zenodo will archive next release
Step 3: Create First Release¶
Option A: Test with Beta Release¶
git tag v0.1.0-beta.2 -m "Test Zenodo DOI creation"
git push --tags
- Creates TestPyPI release
- Zenodo creates DOI
- You can test the process safely
Option B: Production Release¶
just release 0.1.0
git push && git push --tags
- Creates production PyPI release
- Zenodo creates DOI
- This is the "real" first citable version
After Release¶
- Go to: https://zenodo.org/account/settings/github/repository/nfb2021/canvodpy
- You'll see your release listed
- Click to view the DOI
- Copy the DOI badge markdown
Example DOI badge:
[](https://doi.org/10.5281/zenodo.12345)
Step 4: Add DOI Badge to README¶
Add to README.md (after other badges):
[](https://doi.org/10.5281/zenodo.XXXXX)
Replace XXXXX with your actual Zenodo ID.
Tip: Use the "concept DOI" (always points to latest version)
Step 5: Update Documentation¶
Add citation section to README.md:
## Citing canvodpy
If you use canvodpy in your research, please cite:
Bader, N. F. (2026). canvodpy: GNSS Vegetation Optical Depth Analysis (v0.1.0).
Zenodo. https://doi.org/10.5281/zenodo.XXXXX
BibTeX:
\`\`\`bibtex
@software{bader2026canvodpy,
author = {Bader, Nicolas François},
title = {canvodpy: GNSS Vegetation Optical Depth Analysis},
year = 2026,
publisher = {Zenodo},
version = {v0.1.0},
doi = {10.5281/zenodo.XXXXX},
url = {https://doi.org/10.5281/zenodo.XXXXX}
}
\`\`\`
How Citations Work¶
For Researchers Using Your Package¶
From GitHub: 1. Click "Cite this repository" (top right) 2. Choose format (APA, BibTeX, etc.) 3. Copy citation
From Zenodo: 1. Visit Zenodo DOI link 2. Click "Export" → Choose format 3. Copy citation
For Papers¶
Researchers cite specific versions:
Correct:
"We used canvodpy v0.1.0 (Bader, 2026) for VOD calculations."
Reference:
Bader, N. F. (2026). canvodpy v0.1.0. Zenodo. https://doi.org/10.5281/zenodo.12345
Why version-specific? - Reproducibility: v0.1.0 code is archived forever - Transparency: Readers know exactly what was used - FAIR principles: Findable specific version
Concept DOI vs Version DOI¶
Concept DOI (10.5281/zenodo.12344): - Always points to latest version - Use for: General citations, badges
Version DOI (10.5281/zenodo.12345): - Points to specific version (v0.1.0) - Use for: Research papers (reproducibility)
Benefits¶
| Category | What you get |
|---|---|
| Academic recognition | Citable software output — DOI trackable in citations |
| ORCID integration | Links code releases to your researcher profile |
| FAIR compliance | Findable, Accessible, Interoperable, Reusable |
| Permanent archival | CERN preserves every release indefinitely |
| Trusted repository | Used by CERN, NASA, ESA — accepted by all journals |
Troubleshooting¶
Repo not visible on Zenodo
- Ensure you logged in with GitHub (not email)
- Check the repo is public — Zenodo only indexes public repos
- Log out and back in; sync can take a few minutes
No DOI created for a release
- Verify the toggle is ON at zenodo.org/account/settings/github/
- Ensure the GitHub release is published (not a draft)
- Check your Zenodo email for error notifications
How to update citation metadata?
Update CITATION.cff, then create a new release.
Zenodo reads the updated file for the new DOI automatically.
Can I get a DOI for old releases?
No — Zenodo only archives releases created after the integration was enabled. You can create new patch/beta releases to archive historical code states.
Example: How It Looks¶
On GitHub¶
Cite button:
[Cite this repository ▼]
├── APA
├── BibTeX
└── More formats...
On Zenodo¶
Record page:
DOI: 10.5281/zenodo.12345
Title: canvodpy: GNSS Vegetation Optical Depth Analysis
Authors: Nicolas François Bader
Version: v0.1.0
Publication date: 2026-02-04
Resource type: Software
License: Apache-2.0
[Download] [Cite] [Share] [Export]
In Papers¶
Methods section:
"VOD was calculated using canvodpy v0.1.0 (Bader, 2026), an open-source Python package for GNSS-based vegetation analysis."
References:
Bader, N. F. (2026). canvodpy: GNSS Vegetation Optical Depth Analysis (v0.1.0). Zenodo. https://doi.org/10.5281/zenodo.12345
Additional Metadata (Optional)¶
.zenodo.json¶
For advanced metadata customization, create .zenodo.json:
{
"title": "canvodpy: GNSS Vegetation Optical Depth Analysis",
"description": "Python package for VOD calculation from GNSS SNR data",
"creators": [
{
"name": "Bader, Nicolas François",
"affiliation": "TU Wien",
"orcid": "0000-0000-0000-0000"
}
],
"keywords": ["GNSS", "VOD", "vegetation", "remote sensing"],
"license": "Apache-2.0",
"communities": [
{"identifier": "zenodo"}
]
}
Note: CITATION.cff is usually sufficient!
Resources¶
- Zenodo Homepage
- Zenodo GitHub Integration Guide
- CITATION.cff Format
- ORCID Registration
- FAIR Principles
- Making Software Citable
Quick Start Checklist¶
- Get ORCID iD (if you don't have one)
- Update CITATION.cff with your ORCID
- Create Zenodo account (log in with GitHub)
- Enable canvodpy on Zenodo settings
- Create first release (test with beta or go production)
- Copy DOI badge to README
- Add citation section to README
- Update documentation with citation instructions
Questions? Check Zenodo help or ask in discussions!