You may be convinced of the importance and benefits of depositing research software within a digital repository, so that the exact versions of your software upon which you have published your research results are retained and remains available for future inspection and use, both by yourself and by other researchers. But, you may ask, when is the best time to deposit your software? This guide poses a series of questions to ask yourself and, if the answer to any of these questions is "yes", then that is the time to deposit your software!

When to deposit software

When to deposit software

About this guide

This guide is one of a series of guides on software deposit, written by The Software Sustainability Institute 1, funded by Jisc 2. For an overview of the series, see Michael Jackson (ed.) (07 August 2018). Software Deposit: Guidance for Researchers (Version 1.0). Zenodo. doi:10.5281/zenodo.1327310. Online:

Are you about to publish results derived from your software?

If you are about to publish results derived from the use of your software, whether it is in a journal paper, conference proceeding, presentation, poster or blog post, you'll want to deposit your software into a digital repository.

Your software deposit will allow others who have read your publication to download your software, with the aim of inspecting your software to understand how you got your results and, if desired, to try to replicate or reproduce what you did, or reuse your software in their own research. What is more, your software deposit will have given them a persistent digital identifier which they can cite and which you can then use as a means to measure and demonstrate your impact.

Similar comments apply if you are making a publication about the software itself.

Are you about to share your software?

Even if you're not publishing results derived from your software and are only sharing your software with a researcher you met at a conference, meeting or networking event, creating a software deposit prior to sharing offers the same benefits as described above.

Is your project coming to an end?

If your project is coming to an end then researchers may be leaving, resources may be freed up, and you may no longer have a local resource upon which to host your software.

While repository hosting services such as GitHub 3, BitBucket 4, GitLab 5, CCPForge 6 or Microsoft Visual Studio Team Services 7 are great for hosting live software, they are not so good for archiving software that will no longer be under active development 8. They don't create unique persistent digital identifiers for your repositories, instead you need to use URLs. Your repositories could later be deleted by yourself, breaking links to these URLs, or the repository hosting service may go out of business.

A digital repository allows you to archive your software in a place which will ensure it is available for yourself and others to inspect and reuse long after your project has ended and with a persistent digital identifier too.

Is your project going into a hiatus?

Your project might not be coming to an end but might be going into a hiatus due to a gap between one funding stream ending and another funding stream starting, or being uncertain as to whether you will get future funding, for example. Depositing your software at this stage allows you to preserve a record of what you have developed to this point. It also provides for the same benefits as described above if the hiatus, unfortunately, turns out to be longer than planned, or, in the worst case, permanent.

Are you concerned that others may publish results based on your software before you do?

You may be concerned that if you deposit your software then other researchers culd use your software to generate results and publish these before you yourself have a chance to.

There is a distinction between the time at which software is deposited into a digital repository and the time when it is published so that others can view it. Many digital repositories, including Zenodo 9 and figshare 10, allow you to apply an embargo which allows you to specify a date when you want the deposit to be made publicly available. So, for example, you could choose to set an embargo on your software deposit so that it is only made public after any related papers have been published.

A deposit can be embargoed for a long time. For example, the University of Edinburgh DataShare supports embargoes of up to 5 years 11.

Another advantage of embargoes is that you can prepare your deposit and describe it, via metadata, while the knowledge of the version of your software being deposited is fresh in your mind.

Cite this guide

Please cite as: Michael Jackson (ed.) (07 August 2018). Software Deposit: When to deposit software (Version 1.0). Zenodo. doi:10.5281/zenodo.1327331. Online:

This work is published under a Creative Commons Attribution 4.0 International License (CC BY 4.0),

  1. The Software Sustainability Institute,

  2. Jisc,

  3. GitHub,

  4. BitBucket,

  5. GitLab,

  6. CCPForge,

  7. Microsoft Visual Studio Team Services,

  8. Brown, C.T. (2016) "You can make GitHub repositories archival by using Zenodo or figshare!", 16 November 2016,

  9. Zenodo,

  10. figshare,

  11. "Checklist for deposit", The University of Edinburgh,