Introduction to open source terminology
Bosch IoT Suite rated "best in class"
The latest teknowlogy | PAC RADAR on IoT platforms based on open source rated the Bosch IoT Suite "best in class".Read the report
Open source software is a ubiquitous force in the technology industry. Most organizations creating software today either use open source software or are direct contributors to open source communities.
People new to the open source community are often at a loss to understand some of the lingo that has evolved around the community. This quick primer on open source terminology should help decode the jargon.
At the heart of any open source community is the project. The project hosts all the artifacts that are being developed to solve issues related to a specific technology. Core to any open source project is the source code, but a project will also include documentation, test cases, build tools, etc.
Git is a distributed version-control system for tracking changes in source code during software development. It is a popular tool used in open source projects to track their artifacts.
GitHub is a managed service, now owned by Microsoft, that provides git repositories and other development services to open source projects. GitHub has become the de-facto location for hosting an open source project.
The individuals that work on an open source project are typically called committers. These people have write access to the project repositories and make the final decision on what is accepted into a project and how the project will evolve in the future in terms of new features, architectural changes, etc.
People using the technology created by an open source project often reach a point where they feel that a certain feature is lacking or something in the existing code should be changed to better accommodate their requirements. In such a case, a user of the project may become a contributor by making the necessary changes and creating a pull request in order to have these changes approved by a committer and merged into the project’s code base.
A pull request (PR) is how a developer communicates a change they would like to make to a git repository. Typically, a developer would issue a PR that would then be accepted into the main branch of a git repository by one of the project’s committers.
Contribution license agreement
A contribution license agreement (CLA) is a legal document signed by any developer who contributes intellectual property to an open source project. The CLA will typically specify the conditions under which developers can submit their contributions. Not all open source projects use a CLA for that purpose. In many cases, the terms and conditions applicable are already specified by the open source license that a project uses.
Open source license
Traditional proprietary software is sold by vendors under a commercial license. Open source software is made freely accessible under an open source license. There are a number of open source licenses available, the most popular being BSD, MIT, Apache, and GPL. Each license has different terms and conditions that impact how users can use the open source technology. All licenses are certified by the Open Source Initiative (OSI) and comply with the Open Source Definition.
Open source foundation
An open source foundation is a not-for-profit entity that hosts a number of different open source projects. The foundation typically provides the rules and policies for the governance of open source projects in its community. The value of a foundation is that it provides a vendor-neutral place for commercial companies to collaborate on open source.