What is DOI versioning?

You use DOI versioning when you want to modify the files of a record that's already published.


DOI versioning allows you to:

  • edit/update the record’s files after they have been published.
  • cite a specific version of a record.
  • cite all of versions of a record.


How it works

When you publish an upload on Zenodo for the first time, we register two DOIs:

  • a DOI representing the specific version of your record.
  • a DOI representing all of the versions of your record.

Afterwards, we register a DOI for every new version of your upload.


This is best illustrated by an example of a software package. If the software has been released in two versions (v1.0 and v1.1) on Zenodo, then the following DOIs would have been registered:

  • v1.0 (specific version): 10.5281/zenodo.60943
  • v1.1 (specific version): 10.5281/zenodo.800648
  • Concept (all versions): 10.5281/zenodo.705645

The first two DOIs for versions v1.0 and v.1.1 represent the specific versions of the software. The last DOI represents all the versions of the given software package, i.e. the concept of the software package and the ensemble of versions. We therefore also call the them Version DOIs and Concept DOIs (note, technically both are just normal DOIs).


No version suffix

You may notice that the version DOIs do not include e.g. a “.v1”-suffix. 


Including semantic information such as the version number in a DOI is bad practice, because this information may change over time, while DOIs must remain persistent and should not change. Moreover, Zenodo DOI versioning is linear, which means that the Zenodo version number may in fact not be the real version number of the resource. Take for instance software, where it is common practice to have dot versions and make new releases in a non-linear order (e.g. first v1.0, then v1.1, then v2.0, then v1.2).


The versioning suffix is also not a functionality of the DOI system, i.e. adding .v2 to DOI will not resolve to version 2 of a resource for any DOI from any provider. Different providers also use different patterns such as e.g. .v2, .2, /2. Most importantly, version suffixes are not machine readable. A discovery system that understands DOIs, will not know that .v1 and .v2 of a DOI are in fact two versions of the same resource.


A better solution to this problem is to semantically link two DOIs in the metadata of a DOI. This ensures that discovery systems have a machine-readable way to discover that two DOIs are versions of the same resource.


See also Cool DOIs blog post by Martin Fenner, DataCite Technical Director.