Publish and share your open research software
Open research software
Have you built a tool to analyse research data? Perhaps you have some unique code or script that is necessary to replicate the findings in your publication.
These are considered research software and are viewed as important research outputs that we encourage you to publish and share. Many journals now ask authors to submit software along with their manuscript and underlying data.
Publishing your research software involves making software, source code or algorithms available online for reuse by others via a public data or software repository.
Software should be both useable (can be executed) and reusable (can be understood, modified, or incorporated into other software). The FAIR principles for research software provide guidance on making your software outputs visible.
Benefits of publishing
Making your research software open, discoverable and reusable benefits you and the research community. Benefits of publishing software include:
- credit for your work: software or code can be cited like any other research output
- efficiency: preserving code in repositories lets you reuse it or return to previous versions in the future
- reliability: sharing code allows others to identify errors and make improvements
- reproducibility: results can be verified or reproduced without rewriting code from your publication
- transparency: open software is better understood and builds greater trust in the outcomes
- fostering collaboration: potential collaborators can access relevant code and software.
Prepare for publication
Prepare your software with your users in mind. Your users will want to know:
- how your software works
- what they can do with your software
- how to apply the software or code in their own research.
Research software should not be published or shared openly when:
- software is subject to patent or intellectual property controls
- code is sensitive or could be used to access human-identifiable information
- there is sensitive security and access information embedded in the code.
Keep track of versions
Choose a repository with a version control system. Keeping track of code adds resilience to software, supports ongoing maintenance and adds transparency to your work. A code repository should allow you to:
- track changes over time
- link to the version used for a paper or dataset analysis.
Examples of version control code repositories include:
- GitHub
- SourceForge
- Bitbucket
- C-RAN (Comprehensive R Archive Network).
Provide supporting information
When publishing your software, you should have:
- complete source code
- all documentation and commentary supporting the reuse or running of the code or software. This could be in the form of a README.txt file
- details of the version, particularly when integral to any analysis, model, or tool in a publication
- an open-source licence
- a persistent identifier or Digital Object Identifier (DOI) linking to a data or software repository
- data or software availability statement to submit to the journal publisher, including the DOI, citation, and location of the software/code.
Where to publish
Deposit the version of the software you are publishing into a long-term repository so it is indexed, discoverable and accessible.
This will be in addition to your development environment and your version control systems. Think of it like this:
- Develop and make code open in a code repository
- Deposit versions of your code in a long-term data repository
- Describe your software in a software article.
Long term repositories
Select a long-term repository that:
- includes searchable and indexable metadata
- offers a DOI for each version of the software (as defined by the creator)
- enables software citation
- provides a choice of open, standard software licenses
- will be maintained and secure for the long term
- in line with FAIR research software principles.
Choose a repository
UQ repositories
UQ researchers can use UQ Research Data Manager (UQRDM) and UQ eSpace to store, publish and describe your software.
These systems can be used for all research software you create, but work best for simple software projects or script used for analysis, which do not require ongoing maintenance or versioning.
- UQRDM (UQ login required) - store and work on code. Integrated workflows for publishing to eSpace and linking publications, data and software.
- UQ eSpace - publish your software along with metadata, digital object identifier (DOI), and add a license to your software.
Visit Publish a dataset with UQRDM and UQ eSpace for more information.
Contact our Research Data Services team at data@library.uq.edu.au about publishing in UQRDM and UQ eSpace.
Open software repositories
The following repositories are suitable for publishing research software and often link to code versioning tools. Use these tools if your code will be further developed or maintained in the future.
Deposit your software
Follow the instructions for your repository to upload a copy of your software files and complete the required metadata.
You may also include a link to your code repository, such as GitHub.
License your software
Always share your software with an appropriate licence. Applying a licence:
- states and protects your rights
- provides clear guidance on what users may do with the software.
Choose a licence
Make sure you are the creator or owner of the software before choosing a licence. If you are working with other software tools that integrate with your own, you may be constrained by the original licences or terms and conditions of that software.
If there are no existing licences or constraints, and you are the owner of the code, you can select a software license.
Open licences
Most research software is licensed under an open-source model using standard licences. Choose a licence that fits the intended use of the software.
- Visit Open Source Initiative for a list of software licenses suitable for substantial pieces of software, tools, and applications.
- Check Creative Commons licences for small pieces of script or code being published alongside a related dataset.
Commercialisation and copyright
Contact UQ Research to discuss whether software developed at UQ is suitable for commercialisation before you license or share it.
Visit Copyright advice or email copyright@library.uq.edu.au for more information about licensing your work.
Cite your software
Always cite the locations of your software in your publications so readers can find all the relevant information and correctly cite your work.
Visit Citing software to learn how to cite your own software and the software of others.
Resources
Publishing your research software enhances its sustainability and ensures it will be available in the future.