StaPH-B Guide for Using Open Source Software
What is open source software and why should I consider using it
Open source software is software that allows anyone to view and modify the underlying source code. Source code is the portion of software that users don’t typically see, it is the set of instructions that inform a program how to operate. Open source software supports an open and transparent development process that empowers innovation. Open source software allows others to copy and learn from the code or modify and share it. On the other end of the spectrum is proprietary or closed source software which often does not allow viewing, copying, or modifying the source code. Both proprietary software and open source software are distributed with licenses that describe what users are allowed to do with the software and code (See the license section for more on this).
Using open source software provides several distinct advantages including:
- Greater control over how the software operates
- Increased security since many developers are viewing the source code and increasing the chances errors are identified and corrected
- More training and learning opportunities as others are able to view and study code
- Greater stability as issues are identified, shared, and fixed by the community
- Larger open source software projects often inspire a community of users and developers to form around
Advantages in open source software in bioinformatics
- Scientific community exists on the bleeding edge of technology development and the community revolves around open source approaches
- The public health bioinformatics community collaborates through open source projects minimizing the need to reinvent the wheel
Guidelines for evaluating open source projects
A large and collaborative user base greatly improves the quality of an open source project. Users in the project community help discover bugs, test releases, report issues, suggest enhancements.
- Check the project’s popularity, look at the number of forks, stars, and followers.
- Look at issues and identify the time between replies
Open source projects can vary from a single developer to a number of developers. A stronger developer group will often drive innovation within a project.
- Who are the developers
- Frequency of releases
- Number and frequency of pull requests
Documentation is key both to the usage of software and contributing to the project. Documentation can provide information on installation, configuration, and development of the code base.
- Is there documentation on how to install and use the software
- Are there instructions for contributing
Open source code is easy to review and audit but isn’t secure by default. A strong user and developer community can help respond quickly to fixing security issues.
- Maintain software with updates and patches
- Review security scans
Software licenses are an important consideration when using any software. Licenses prescribe what users are authorized to do including copying or modifying the source code and using the software. Github code repositories that do not specify a license fall under default copyright laws
the owner retains all rights to the source code and no one is permitted to reproduce, distribute, or create derivative works.
Most Common Licenses:
- MIT License - Short and simple, lets people do almost anything they want with the code of the project including making and selling closed source versions.
- GNU GPLv3 - Allows people do so almost anything except distribute or sell closed sourced versions.