Zenodo Publishing
One of the publishing media for the created learning materials is Zenodo. Zenodo is a general purpose repository which also assigns a DOI to each submitted entry.
Learning Objectives
- Describe the automated workflows for publishing the Git repository on Zenodo
- Author new version releases of the learning materials
- Examine draft publications on Zenodo
Target Audience
- Attendees of the FAIR-by-Design ToT live webinar
Duration
55 mins
Prerequisites
Learning Tools
- Training BBB room
- GitHub Desktop
- Obsidian
Description of the Automated Publishing Workflow
The templates repository includes existing workflows which when triggered automate the complete Zenodo publishing process. These workflows are generic and also apply to any forks, without the need for any manual changes. In a nutshell, the actions performed by these workflows are:
- validate the metadata information provided in
CITATION.cff
and update the fields which are automatically managed (doi
,version
,date-released
) - implement Signposting Level 1 or Signposting Level 2 compliance, leveraging the existing RDA metadata fields and automatically enriching them, as needed. The Signposting metadata fields are machine readable and placed in the source code of the Git book in a file called
linkset.json
, and as such are not meant to be readable by humans. - create a draft entry on Zenodo, prereserving a DOI
- update files in the repository which should reference the DOI (the syllabus, last slides of all PowerPoint presentations,
CITATION.cff
) - rebuild the Git book, reflecting the version and DOI changes (for example the cite information in the footer)
- release a new version of the Git book
We will go into more details about each of the workflow steps as well as how to trigger them in the activities below.
Activity: Creating a Draft Deposit on Zenodo
The goal of this activity is to describe the way in which the automated publishing workflow is triggered and to verify the resulting Zenodo draft.
Notice: Feel free to follow these steps without any hesitation. The workflow will only create a draft deposit on Zenodo, meaning that it will not be publicly published without your explicit approval which can be given from the Zenodo web interface.
Double-checking the Workflows Configuration
-
Make sure that the workflows which have been copied from the upstream
templates
repository during the forking process are indeed enabled.i. Visit the homepage of the fork ii. Navigate to the
Actions
tab iii. If there is a big green button for enabling the copied workflows, click it. If the green button is missing and instead a list of available workflows is shown on the left-hand side of the screen, it means that the workflows have been enabled as required as part of the previous learning units.The image below shows an example list of available workflows which should be shown once they have been enabled.
Authorizing the Workflows to Use Zenodo
In order for the automated actions to be able to create a draft Zenodo deposit, we must generate an authentication token.
- Navigate to Zenodo and register a new account or login with an existing one.
-
Once logged in, click on the dropdown menu next to the profile button and select
Applications
. -
In the
Personal access tokens
section click on theNew token
button. -
Enter an arbitrary name for the token and make sure to only check the
deposit:write
checkbox in theScopes
section. Click onCreate
. -
Copy the generated access token shown in red. We will need it in a moment. Please note that the token itself is sensitive information, so make sure not to share it with anyone else.
-
Go back to the homepage of your GitHub repository. Click on the
Settings
tab. -
Click on
Secrets and variables
->Actions
in the navigation menu on the left. -
Click on the
New repository secret
button. EnterZENODO_ACCESS_TOKEN
as the name and the copied value from previously as theSecret
value. -
Save the new secret using the
Add secret
button.
Creating the Very First Zenodo Deposit
We are now ready to initiate the automated workflow for submitting the first draft deposit to Zenodo.
-
Navigate to the homepage of the Git repository. On the right-hand side click on the
Releases
section. -
Click on the
Create a new release
button. - Click on the
Choose a tag
dropdown. Enter the desired version number (e.g., 1.0.0). Make sure to use three numbers, as per the Semantic Versioning specification. The first number (also known as major version number) should be incremented in case of major changes or a complete rewrite of the material. The second number (also known as the minor version number) should be incremented when smaller changes are made, such as extending existing learning units with additional content, or adding a new learning unit. The third and last number (also known as the patch version number) should be incremented when the changes do not directly impact the learning content itself and are constrained to technical changes such as fixing typos, adding references, or improving formatting. -
Click on the
Create new tag: 1.0.0 on publish
option. -
Enter the same version number in the
Release title
field. - Provide an optional description in the
Describe this release
field. This is a free-text field, so you are free to enter whatever text you would like. - Create the release by clicking the
Publish release
button. - At this moment the automatic publishing workflow will be triggered. You can follow its progress from the
Actions
page. Wait until a green checkmark appears next to the latest entry in theActions
list. In case of any errors you will receive an email message.
Verifying the Zenodo Deposit
Once the workflow has been successfully executed, it is time to verify the changes that it has made to the repository, together with the uploaded draft deposit on Zenodo.
- Navigate to the Git book homepage, and check the cite footer. Note that the citing information has been updated and it now references the latest published version, as well as the correct DOI.
- Notice that at the top of the Git book homepage the version dropdown includes a new version -
1.0.0
. This is a point-in-time freeze of the content of the repository as it appeared at the time of the release. Any future changes will not be applied to the1.0.0
version of the Git book and will instead be reflected only inlatest
. - Verify that the correct DOI appears on the landing (syllabus) page of the Git book.
- Using the GitHub Desktop client pull the remote changes which have been committed and pushed during the workflow's execution.
- Open any PowerPoint presentation at random. Navigate to the last slide. Verify that the citing information correctly references a new DOI.
- Navigate to Zenodo and click on the
Upload
button in the header, next to the search bar. -
You will be presented by a draft deposit of your Git repository.
-
Note that this draft deposit is still not publicly accessible, but has a DOI pre-reserved which has not been activated. Click on the deposit's name.
- Verify that all metadata has been correctly transferred from the Git repository. Note that you will not be able to make any changes to the deposit once published. Pay special attention to the associated Zenodo community, authors, license, and funding information.
- Important: The only manual change that needs to be performed is to enter the correct language in the
Language
field.
- Important: The only manual change that needs to be performed is to enter the correct language in the
- When satisfied with the deposit's metadata information, scroll down to the bottom of the page and click on the
Save
button. - The deposit can be made public by clicking on the
Publish
button. Please note that publishing the deposit is an irreversible action.- Once published, you will be redirected to the deposit's homepage on Zenodo.
Key Takeaways and Information for Future Versions
We have published the first version of our FAIR-by-Design training. The same steps can be followed for any future version releases. Note that once set, the provided Zenodo secret will not need to be changed or modified in any way from the GitHub web interface. When publishing a newer version of the materials, the workflow will automatically link it to the previous version, so that there is continuity between them, making it easier to view versioning information at a glance from the Zenodo web interface.