This lesson is still being designed and assembled (Pre-Alpha version)

Enable citation of the software

Overview

Teaching: 0 min
Exercises: 0 min
Questions
  • 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

recommendation4

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.md file in your repository.

Solution

Follow the instructions on the GitHub guides page.

Key Points

  • We can publish software without publishing research results.