Enable citation of the software
Overview
Teaching: 0 min
Exercises: 0 minQuestions
Why explicitly enable software citation?
How to make a software citable?
Objectives
Understand why you should enable software citation
Create a citation.cff file
Publish software on Zenodo
Recommendation 4
Enable citation of the software

Why making a software citable is important
Citation helps software developers be recognized for their work. Additionally, a citation is an integral part of scientific accountability and reproducibility.
However, citing software is inherently more difficult than citing a paper. To an outsider especially, even seemingly trivial things such as identifying who should be recognized as an author can be difficult. It is therefore convenient when software developers themselves provide the information necessary to cite.
A citation file
By adding a machine-readable citation file CITATION.cff to your code base,
you can define how the software should be cited.
The CodeMeta metadata schema and the Citation File Format are specifically designed to enable citation. For either one, you write a plain text file with citation metadata, which you then distribute with your software.
Initialize your citation file
We can use the tool cffinit to initialize the
CITATION.cff.
Publish your code in zenodo
Browse to Zenodo and archive a snapshot of your repository created in the lesson Use a publicly accessible repository with version control.
Solution
Follow the instructions on the GitHub guides page.
A persistent identifier
Software is continuously evolving, and ideally when someone uses your software, they cite the exact version of the software they use. To facilitate that, you can make a persistent identifier (Digital Object Identifier or DOI, Uniform Resource Name or URN, Archival Resource Key or ARK, etc) for a snapshot of your software, so that the identifier will continue to resolve to exactly that version in the future.
Archiving services
There are several archiving services that help you create such an identifier, either semi-automatically, or in a fully automated manner, for example, each time you make a new release of your software:
Adding a DOI to your repository
Browse to your repository created in the lesson Use a publicly accessible repository with version control. Add the DOI generated in the previous exercise (Publish your code in zenodo) to the
README.mdfile in your repository.Solution
Follow the instructions on the GitHub guides page.
Key Points
We can publish software without publishing research results.