Outputs

There are a few different outputs that zen-do produces. The main one is the Zenodo record, which is the main aim of zen-do. But there are also other outputs that support that final output.

Zenodo record

The Zenodo record is the published version of the deposit at a given “snapshot” or time point, resulting in archiving that snapshot and generating a DOI for it. This record can either be from an new deposit or an update to an existing deposit. The response returned by the API to the publish POST request is the raw JSON that provides information on the published record.

An empty, but fully formed, .zenodo.toml file

Having a template to start working from and filling in is incredibly useful. Rather than reading through documentation and trying to figure out what fields are needed and what they mean, an empty but fully formed .zenodo.toml file is a helpful starting point.

Metadata file formats

While the .zenodo.toml file is the main input, there are many other formats that provide some of the information that Zenodo needs. Or, like the .zenodo.json file, that contain the exact same information but in a different format. Even though Zenodo uses a JSON file in its official documentation, JSON is not pleasant to manually edit and use, while TOML is. So if a user has a .zenodo.json file already, being able to convert to the TOML version is useful.

Likewise, because there are so many different formats for storing project metadata (e.g. CITATION.cff, codemeta.json) that contain some of the necessary information for a Zenodo deposit (but not all), the aim is to minimise how many files a user needs to maintain and edit manually when something changes.

Zenodo deposit information

Finding and listing information on deposits in a user’s Zenodo account is a common task. In particular, we need to check if a deposit already exists for a given .zenodo.toml file before we can create a new deposit or update an existing one. This output is the raw JSON output from a GET request to the Zenodo API.