Open source software and code
Get the credit you deserve for all the work you do
Why share open source software and code?
Open source software and code are crucial to the discovery process in every field of research, from bioinformatics to digital humanities. At F1000, we believe that the researchers and software engineers who develop these tools should receive full credit for their work.
So how do you ensure your software and code is easy for others to replicate? Importantly, only well-designed and well-documented code is easy to reproduce, reuse, or modify for new applications by other researchers.
On this page, we answer common questions surrounding publishing open source software and code, including:
- What is open source software?
- What is research software?
- How do I make my research software and code open source?
- What are the advantages of open source software?
- Where can I publish my software and code?
DOWNLOAD OUR FREE GUIDE
How to choose an open source license
Fill in the form below to determine the best license for your research software.
What is open source software?
Open source software is distributed under a license that allows anyone to use, modify, and distribute the software and its source code. Sharing software as open source enables other researchers to:
- Inspect your software
- View the source code
- Understand how you produced your results
As a result, open source software supports transparency, reproducibility, and reusability.
Open source software can be developed collaboratively online and can continuously evolve. Researchers that reuse open source software can make changes in new versions, such as adding features they need for their research or fixing bugs. They can also contribute these improvements to the main project so the wider community can take advantage of them.
What is research software?
F1000 supports the FAIR for Research Software (FAIR4RS) Working Group definition of research software.
When we talk about research software, we refer to:
- Source code files
- Algorithms
- Scripts
- Computational workflows
- Other executables created during the research process or for research purposes
How to make your software and code open source
Create a software management plan
A software management plan (SMP) is a document that details the steps you will take to ensure your software is accessible and reusable. A basic software management plan includes what software you will produce, who is responsible for releasing the software, which version control system you will use, and which license you will apply to each output.
Upload your software and code to an open repository
A repository is a space online for researchers to store data, code, and other research outputs. Open source repositories enable others to find and view hosted software and source code. Repositories support researchers by creating general dissemination guidelines and descriptive metadata.
Apply an open license
Uploading your software to a repository will enable others to find it, but you need to apply an open license for them to use and build upon it. Plus, if the software you’ve created is helpful to other researchers, open licenses establish authorship so you can get the credit and recognition you deserve.
Benefits of open source software
Depositing your research software and code into a repository is an extra step to consider as part of your research project—so what is the value in sharing?
Where can I publish articles on my scientific software?
F1000 publishing venues offer a unique article type, known as Software Tool Articles, that allows you to describe new software you have created to support or conduct research in any field. These articles explore:
- Why you developed the software
- Details of the code, method, and analysis used
- Examples of data input sets
- Examples of outputs and how to interpret these
- Tips on how to maximize the tool’s potential
We also welcome articles describing tools created from existing software, web tools, apps, containers, packages, and workflows.