Sharing and archiving
Learning objectives:
- Identify suitable methods for sharing your simulation code.
- Learn about reporting and sharing guidelines.
- Understand how to archive repository on Zenodo via GitHub releases.
Relevant reproducibility guidelines:
- NHS Levels of RAP (🥉): Code is published in the open and linked to & from accompanying publication (if relevant).
Journal sharing requirements
If you are publishing a paper about your model, you many come across journal sharing requirements. These policies are becoming more common, and may affect how you prepare your code and data for submission.
Requirements can include:
- Badges or recognition: Many journals award open science badges to articles with shared code or data.
- Mandatory code sharing: Some journals require that you publicly share your code.
Some journals go further by reviewing the code your submit, with requirements like:
- Open licenses
- Clear documentation
- Complete materials
- Details on the environment used
- Runnable materials
Archives
Whilst platforms like GitHub are great for sharing code, they provide no guarantees on how long the code will be stored. For this reason, we recommend also depositing your code in an open science archive.
Open science archives will provide long-term storage guarantees ensuring future access to your work. They and will create a digital object identifier (DOI) (a persistent identifier for your code).
Archives should adhere to recognised principles like TRUST (Transparency, Responsibility, User focus, Sustainability, and Technology) and the FORCE11 standards
Archives can be generalist (for any research discipline), subject-specific, or institutional (hosted by a particular university or research institute). Examples include:
- Zenodo
- Figshare
- The Open Science Framework (OSF)
- The Computational Modeling in the Social and Ecological Sciences Network (CoMSES Net)
If choosing between generalist repositories, the Generalist Repository Ecosystem Initiative (GREI) has resources to support you in choosing an appropriate repository summarised here, with examples including:
How to archive your repository on Zenodo
We will provide a tutorial on how to use one example, Zenodo, it’s what we’ve chose, as easy to use, integration with GitHub. so this shows how to use with github… here is github poage with turotial - https://docs.github.com/en/repositories/archiving-a-github-repository/referencing-and-citing-content
1. Login to Zenodo. Go to https://zenodo.org/login/, and login or sign-up to Zenodo with your GitHub account.
2. Go to Zenodo GitHub page. Click on the arrow in the top right corner, and select “GitHub”.
3. Sync your repository. On this page, you should see a list of your repositories. For the repository you want to archive on Zenodo, toggle the switch from “OFF” to “ON”.
Can’t find your repository?
Click the “Sync now” button to update your repository list.
Make sure your repository is public, else Zenodo cannot access it.
If your repository is part of a GitHub organisation, you may need to approve access for the Zenodo application in the organisation settings.
4. Prepare your GitHub repository. Before archiving, ensure your repository contains:
- A licence.
- A
CITATION.cff
file (this supplies key metadata like title, authors, and version for Zenodo’s record).
5. Create a GitHub release. To trigger Zenodo archiving, create a new release in your repository. For details on how to do this, see the Changelog page.
6. View your Zenodo entry. Click the repository name in Zenodo to view its releases, metadata, and related issues. If all goes well, you should see a new release and DOI listed - for example:
Clicking the DOI (for example: 10.5281/zenodo.17094156) opens the permanent archived version of our repository in Zenodo:
Zenodo communities
The “Communities” feature in Zenodo is useful for grouping related archived repositories in one place (e.g., those from the same project or research group). It’s also valuable for collaborative work, as community members can be granted edit access to manage and update shared records.
To set-up a community, visit https://zenodo.org/communities and select + New community
Once your community is set up, go to your Zenodo record/s and scroll down to “Communities”, then click “+ Submit to community”.
Search for your community, give appropriate permissions, and submit.
From the “Requests” tab of your community dashboard, you can then accept this submission to add it to the community.
Explore the example models
These repositories are shared on GitHub (since the start of development) and are archived on Zenodo.
Test yourself
Ready to put this into practice? Try archiving your simulation repository - even if it’s just an early version or draft!