Find everything you need to know about sharing software and code from your research project
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.
Importantly, successfully sharing research software in a reusable way requires more than just releasing it under an open license. Only well-designed and well-documented code is easy to reproduce, reuse, or modify for new applications by other researchers.
DOWNLOAD OUR FREE GUIDE
How to choose an open source license
Fill in the form below to determine the best open source license for your research software.
Here’s your free guide!
Click here to download as a PDF. If you gave us permission to contact you, we’ll also send a copy to your inbox with a bonus resource.
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
Other executables created during the research process or for research purposes
Making research software and code FAIR
You might already be familiar with the FAIR Principles as they apply to research data, but what about research software and code? For research to be transparent, reproducible, and reusable, research software must also be Findable, Accessible, Interoperable, and Reusable.
To improve the sharing and reuse of research software, FAIR4RS revised and extended the existing FAIR Data Principles. They determined that open research software should be:
Software and its associated metadata are easy for both humans and machines to find.
Software, and its metadata, are retrievable via standardized protocols.
Software interoperates with other software by exchanging data and/or metadata, and/or through interaction via application programming interfaces (APIs), described through community standards.
Software is both usable (can be executed) and reusable (can be understood, modified, built upon, or incorporated into other software).
Before sharing your software and code, consider how you can ensure you meet the FAIR principles outlined above.
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.
Copyleft licenses are a method for making a software program freely available and requiring all modified and extended versions of the program to be free, according to the GNU. As such, any software created using an open source component with a copyleft license must also use a copyleft license—even if it only reuses a small part of the code.
Permissive licenses guarantee the freedom to use, modify, and redistribute while requiring minimal restrictions on how others can use open source components. A permissive license permits others to use the source code in proprietary derivative works with no obligation to make future works open source. Permissive licenses typically require users to include a copy of the license text and the original copyright notice in any redistribution of the licensed code.
It’s perhaps unsurprising that permissive open source licenses continue to be the more popular choice among those sharing their software. In 2021, 78% of open source components had permissive licenses.
Most popular open source licenses
Many open source licenses are available, making it difficult to know where to start when selecting a license for your software. The Open Source Initiative (OSI) is a global non-profit organization that acts as a standards body to maintain a shared definition of “open source” and accredit licenses. At F1000, we strongly advise our authors to use OSI-approved licenses to distribute their work.
Some of the most popular OSI-approved licenses include:
Apache License 2.0 (Apache 2.0)
MIT License (MIT)
GNU General Public License (GPL)
Berkley Software Distribution License (BSD)
GNU Library or “Lesser” General Public License (LGPL)
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?
Your software becomes part of the academic record and is retained for future use. You can store a complete record of your research project for future use, retaining the exact version of the software upon which you have published research results.
Open source software drives trust in your findings. When research software is openly available, this enables others to be able to read and analyze the computational parts of an associated research article and validate the findings.
Open source software supports reproducibility and reusability. Research software remains available beyond the lifetime of the original project for other researchers to replicate, reproduce, and reuse.
You can establish ownership and get credit for your research software. When you share your software, others can cite it as part of their research. Citation allows you to get attribution and credit for your research software when others use it.
Research software published openly can be peer reviewed and improved. Making your work open enables you to get feedback and improve your project in ways you may not have come to alone. Peer review might be part of a publisher’s formal peer review process or informally by researchers interested in reusing the software.
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.