Publishing Research Software
Publishing research software the right way can have a big impact on how it’s received, and how you can connect to credit or acknowledgement for your work. It depends on the repository you use.
What’s a Repository?
The term ‘repository’ has different meanings. In order to understand those differences we’ll follow the terms used in the Software deposit guidance for researchers developed by the UK Software Sustainability Institute (SSI):
- Digital repository – deposited record or copy
- Source code repository – developed in a version control system
- Repository hosting service – hosted source code repository.
How to Publish Research Software
Research software can be published in a digital repository or a repository hosting service. We would recommend both methods rather than one, as they each provide complementary advantages.
Publishing in a digital repository
A digital repository such as Zenodo, Figshare or a domain specific repository enables users to cite specific releases of the software and to ensure that a stable record of the work is kept beyond the life of a project. Publishing via a digital repository enables you to provide an identifier such as a DataCite DOI or similar. This makes it much easier to link your work to acknowledgment and citation.
Publishing in a repository hosting service
A repository hosting service such as GitHub, GitLab, BitBucket or similar gives users access to the latest version or release of an actively developed codebase. This can be an opportunity to invite collaboration and contributions if openly developed. Be careful to clarify how to cite the software if you publish your software this way, as these services may change over time or cease.
Read the ARDC software citation guide to get published in a way that covers both methods.
We don’t recommend publishing via a personal or work website as these tend to close when the project is complete. They do not make it easier to cite or acknowledge the work over time.
In many communities it’s common practice to register your software in a software registry. There are many kinds and all are good for increasing the discoverability of your software.
Many are also suitable for publishing and identifying software.
Among those registries are some that handle dependency management. If you’re developing software with the intention that it will often be used by others, it’s worth considering submitting your software to one of these language-specific registries.
Explore the Netherlands eScience Center’s list of software registries.
Specifying a Licence
If you make your software available for others to use, you should apply a licence to that software. A software licence protects both software authors and users.
A number of licence types exist for software. When choosing a licence you need to be aware of their requirements and implications.
Read the ARDC Research Software Rights Management Guide for more information about navigating your choices. If you are developing a closed software product we recommend talking to your copyright or commercialisation support services at your institution.
Research Software Communities
Join the Visible Research Software interest group to discuss how to influence change to boost visibility of research software.
Connect with the RSE-AUNZ association to campaign for the recognition and wider adoption of the RSE role within the research ecosystem.
Participate in our Research Software Program. Help us drive a culture change to recognise research software as a first-class research output.