By releasing software and code you have created and/or developed in your research, you are further contributing to the research landscape and making your approach to research more open, transparent, and reproducible. You can also keep track of versions and track download and citation statistics.
In this video, Peter Kalverla from the Netherlands eScience Center talks about the importance of sharing code for research. He breaks down barriers to code sharing by demonstrating tools for improving code quality and uploading code to a code repository. He also dicusses the benefits of code sharing by demonstrating the process of code reviews and mechanisms for code citation.
Source code management (SCM) or version control systems are tools that not only allow you to manage your research code, but also enable collaboration and code sharing. There are a number of different version control systems, but Git SCM is one of the most widespread.
In this video, Errol from the Digital Skills Training team explains how using Git can benefit your research:
Using a version control system like Git makes it easier to collaborate and share with other researchers. There are a number of code repositories that are specifically designed for managing, sharing and collaborating on version controlled software and code.
Most of these platforms allow you to create an account for free, though some of them have restrictions on the number of repositories you can create, size of file you can upload, or number of contributors you can have.
University managed and supported source code repository
Other source code repositories
Digital object identifiers (DOIs) allow other researchers to cite your code and allows you to track its reuse. You can register a DOI for your code by depositing it with an open research repository. You can submit your code to any data repository, including the University supported data repository, Melbourne Figshare. The integration between figshare and Git, allows you to publish datasets and code straight from GitHub or GitLab to Melbourne Figshare. Once set up, the code is pulled from the Git repository directly to Melbourne Figshare. And if enabled, the 'auto sync' function between Git and figshare can create a new version of the figshare record every time your code is committed in Git.
Publishing code through Melbourne Figshare will generate a permanent and citable record of the output that you can cite from a paper or your thesis.
Once you have a DOI, you may want to include a plain text CITATION file in your code repository that includes information on how you would like your code to be cited. This can include an example citation and a BibTex formatted citation using either the @online or @software entry types. A template CITATION file, using the recommendations of Katz et al. (2021), might look like:
To reference this code in publications, please cite as:
Developer, A. A., Developer, B. B., & Developer, C. C. (yyyy). Title of the software: Subtitle (Version #.#) [Computer software]. Publisher, https://doi.org/DOI
@online{author-title-yyyy,
author = {A. A. Developer and B. B. Developer and C. C Developer},
title = {Title of the software},
version = {#.#},
date = {yyyy-mm-dd},
publisher = {Publisher},
url = {https://URL},
doi = {DOI}
}
You can find an example CITATION file in the Software Carpentries GitHub repository.
Reference:
Katz, D. S., Chue Hong, N. P., Clark, T. et al. (2021). Recognizing the value of software: a software citation guide [version 2; peer review: 2 approved]. F1000Research 2021, 9:1257. https://doi.org/10.12688/f1000research.26932.2