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.

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 our 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.

Software Registries

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 our 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.

Further Resources

Released by the Research Data Alliance, FORCE11 and Research Software Alliance in 2022, the FAIR Principles for Research Software is useful to keep in mind when publishing your software. You can use this self-assessment tool, developed by the ARDC and the Netherlands eScience Center, to check and demonstrate your software’s FAIRness.

Research Software Communities

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 and help drive a culture change to recognise research software as a first-class research output.