What is Contributing to Open Source

Whether you are planning to start your own work or you have a goal to join an existing community, it can sometimes be a little daunting. There are many benefits to such work, which include the following provided by Open Source Guides:

  • Helping to improve Software that companies around the world rely on

  • Improving your existing skills

  • Find mentors and/or teach others

  • Contribute to and build your own artifacts to help grow a reputation

Changes don’t always have to be life changing to a project, and can be as small and simple as a syntax correction or even helping to add to and correct technical documentation. It is about driving the idea and goal of collaboration and involvement from a community

Open Source

RedHat describes Open Source as:


Open source is a term that originally referred to open source software (OSS). Open source software is code that is designed to be publicly accessible—anyone can see, modify, and distribute the code as they see fit.

Open source software is developed in a decentralized and collaborative way, relying on peer review and community production. Open source software is often cheaper, more flexible, and has more longevity than its proprietary peers because it is developed by communities rather than a single author or company.

Open source has become a movement and a way of working that reaches beyond software production. The open source movement uses the values and decentralized production model of open source software to find new ways to solve problems in their communities and industries.


The Open Source Initiative has defined and outlined licensing and criteria regarding access to along with the distribution of software/code.

  1. Free Redistribution

  2. Source Code

  3. Derived Works

  4. Integrity of The Author’s Source Code

  5. No Discrimination Against Persons or Groups

  6. No Discrimination Against Fields of Endeavor

  7. Distribution of License

  8. License Must Not Be Specific to a Product

  9. License Must Not Restrict Other Software

  10. License Must Be Technology-Neutral

The above criteria and descriptions are pulled from: https://opensource.org/osd

Licensing

With Open Source projects being, as the name states "open", there are still many protections that exist to help entities and/or individuals who are active in the community. These protections are the various license that exist under the OSI to support various types of work.

Open source licenses …​ allow software to be freely used, modified, and shared. To be approved by the Open Source Initiative (also known as the OSI), a license must go through the Open Source Initiative’s license review process.
— Open Source Initiative (OSI)
About Open Source Licenses

There are various categories that exist for licenses, as this is an international effort and community as a whole. Some of the main categories include: International, Special Purpose, Miscellaneous, Non-reusable, Retired and Superseded. To help us understand this a little better, the website WhiteSource Software states:

The simplest explanation is that open source licenses are legal and binding contracts between the author and the user of a software component, declaring that the software can be used in commercial applications under specified conditions. The license is what turns code into an open source component. Without an open source license, the software component is unusable by others, even if it has been publicly posted on GitHub.
— AYALA GOLDSTEIN
Open Source Licenses Explained

Copyleft

When an author releases a program under a copyleft license, they make a claim on the copyright of the work and issue a statement that other people have the right to use, modify, and share the work as long as the reciprocity of the obligation is maintained. In short, if they are using a component with this kind of open source license, then they too must make their code open for use by others as well. — AYALA GOLDSTEIN

Permissive

A permissive open source license is a non-copyleft open source license that guarantees the freedom to use, modify, and redistribute, while also permitting proprietary derivative works. Permissive open source licenses, lovingly referred to as “Anything Goes”, place minimal restrictions on how others can use open source components. That means that this type of license allows varying degrees of freedom to use, modify, and redistribute open source code, permitting its use in proprietary derivative works, and requiring nearly nothing in return in regards to obligations moving forward. — AYALA GOLDSTEIN

The Georgia Cyber Range utilizes the the Apache License, Version 2.0, which is one of the 10 most popular licenses and falls under this category. As a disclaimer, this license provides the following guarantees:

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Importance

There are many factors that can drive involvement within the Open Source communities that exist. Here at the Georgia CyberRange, due to the nature of our work and use of various Open Source projects (i.e. OpenStack, Apache, Libvirt, Gitlab, Etc.) it is second nature to also provide fixes/features back to the communities in order to enhance our own applications. There isn’t also some corporation driving the machine and release software and support for a fee; so, in cases like these the community is what drives the overall development and direction of a product.

Just as individual contributors and/or small consulting firms contribute to Open Source projects, you will also see large companies (i.e. microsoft, RedHat, Canonical, Netflix, Blizzard, Etc.) contributing as well as hosting Open Source projects due to the benefits and innovation it brings to the industry in which we operate.