Source: Code publication. The Turing Way Community. This illustration is created by Scriberia with The Turing Way community, used under a CC-BY 4.0 licence. DOI: 10.5281/zenodo.3332807

Why should you publish software?

Publishing your research software helps ensure your software is citable, preserved, and accessible – which supports scientific reproducibility, replication, and transparency-. Additionally, it helps with gaining appropriate credit for your work. Publishing software also helps the community by enabling reuse of your code and methods. Moreover, it is increasingly required by funders who want researchers to make their data and workflows open and by publishers who aim to improve replicability.


Where to publish software?

Code repositories

It is recommended that an online code repository be used to manage code. A code repository will provide version control, code review, bug tracking, documentation, user support and other features. Repositories can be either private or public, so that code can be maintained during a closed development phase and released for open use at an appropriate stage. Some popular platforms are GitHub, Bitbucket and Sourceforge.


I Put My Software on GitHub, Isn’t That Enough?

That’s great! But no.

GitHub (or GitLab, or BitBucket, or another similar site) may be where you and most of your users interact with the software. However, a stable copy can and should live in the longer term in a designated repository that can assign a DOI to your work.


How to link your Git repository with an online platform?

Making your code citeable is an important part of open science. Several platforms are well integrated with GitHub, reducing friction for creating versioned releases and publishing peer-reviewed research software.

  • Code files can be deposited in the CORA.RDR, a repository of open, curated and FAIR data and code that covers all academic disciplines. CORA.RDR is a shared service provided by participating Catalan institutions (Universities and CERCA Research Centers).
  • If you are using a Git repository, then connect this to Zenodo and have a DOI generated automatically for every release. A full guide on how to automate this using a GitHub webhook is available here.
  • Journal of Open Source Software (JOSS) is an open access, peer-reviewed journal for publishing research software packages. Document the effort involved in developing robust software (including testing and documentation) with a peer-reviewed publication.
  • Journal of Open Research Software (JORS) features peer reviewed Software Metapapers describing research software with high reuse potential. JORS also publishes full-length research papers that cover different aspects of creating, maintaining and evaluating open source research software.


How to make your software more citable?

Making your software citable both gains credit for your work and improves reproducibility of research that relies on the software. There are a variety of ways to make your software citable:

  • Publishing your software in a software journal provides a citation with a persistent identifier and provides peer review.
  • Publishing your software in a major general replication archive provides a citation with a persistent identifier, and usually allows you to publish citable new versions of the software as you choose.
  • If you publish software in a channel that does not directly support citation, you can include a citation file in the software itself.


For more information and assistance, contact Documentation Centre and Library.


Advanced GitHub features (The Turing Way Community).

Citing & publishing software: Publishing research software (MIT Libraries):

How to publish research software (University of Bristol).

Publishing research software: A guide for researchers (University of Reading) (

Last updated: 19/03/2024