Persistent Identifiers

Three potential ways to get a persistent identifier are as follows:

Github-to-Zenodo export

If you have your software in a Github repository, Zenodo provides a DOI minting service directly from Github. Zenodo extracts and archives a snapshot of your Github repository as it was at a specific time, and assigns a DOI to that snapshot. Make sure that you check the author list after exporting to Zenodo, in particular to change Github monikers to authors’ names and add ORCIDs when missing. Also, make sure the title of your Github repository is meaningful before you export to Zenodo.


  • If your software is released in discrete releases, and you want different DOIs to be assigned with each of your releases, the Zenodo integration with Github may be useful, as can be tightly integrated with the project releases within your repository.
  • Preservation is done by Zenodo, which is operated by the CERN high-energy physics facility in Europe.


  • Zenodo integration only works with Github.
  • The snapshotted version in Zenodo can become out of sync with the most current software in Github.
  • No curation support.

University library repository

Some university libraries offer the capability to archive software in their digital repositories. They typically also assign persistent identifiers to their repository’s resources, often DOIs.


  • Local & in-person service from professional staff at your local organization.
  • Curation support for creating metadata, organizing files, and the archiving process.


  • Many university library digital repositories are designed to take in many different kinds of digital assets, such as data sets, documents, and images. Thus, their services may not be designed specifically for software, and may not have any features that directly support software.

Some, however, are developing services specifically to host software.

Software Heritage

Software Heritage is an initiative aiming to collect, preserve, and share the entire body of software source code and its development history.



  • Software Heritage does not use DOIs to identify their software.
  • They have their own identifier system.
  • Publishers may expect/require DOIs.
  • SH IDs can be long and unwieldy, as shown in the above example
  • No curation support.
  • No metadata requirements.