Free and Open Source Software (FOSS):
Free and open source software is a common term for software which is either free or an open source software or both. The FOSS is usually provided free of charge, allows the user to inspect the source code, and provides a relatively high level of control of the software’s function. Contribution to this community is a freelance work.
There is a little practical distinction between the two terms, as the primary license difference between free software and open source is one of philosophy. These include the latest versions of the FSF’s three main licenses: the General Public License (GPL), the Lesser GPL or LGPL, and the GNU Affero GPL (known as AGPL). So the terminology of free and open source software is intended to be neutral in these disagreements.
Richard Stallman’s Free Software Definition, adopted by the Free Software Foundation (FSF), defines free software as a matter of liberty, not price. You have complete freedom to use the software, the way you want!
The Open Source Definition is used by the Open Source Initiative to determine whether a software license qualifies for the organization’s insignia for open-source software. The definition is as per the Debian Free Software Guidelines.
Anyone is freely licensed to use, copy, and change this FOSS software in any way, and the source code is available to everyone so that people are encouraged to improve the software design. It is of great help to the community as well as for developers to improve their knowledge in multiple areas where they can practice, test, contribute and use a live software!
The benefits of using FOSS can include decreasing software costs, increasing security and stability, protecting privacy, and giving users more control over their hardware. Free, open-source operating systems such as Linux and descendants of BSD are widely utilized today, powering millions of servers, desktops, smartphones, and other devices. Today, many software packages use free and open source software licences.
Different Ways to Contribute to FOSS Community:
According to some experts working with FOSS, having Linux installed on your system is a good start if you are interested in Linux testing or FOSS code development. Next step is to create a GitHub account and get familiarized with CVS. Though Python is a new hot language to start working on this platform, there are all other languages also which you can learn and start using.
Use Open Source Software:
It is a good idea to start using open source software yourself, and then you will obviously be able to find out easily the areas where you can contribute. Try to find some small defects, it can be anything like a spell check or even a feature that you want or is not working as it has to. Join their mailing lists, IRC channels, etc. Introduce yourself and your interest in the project; someone will surely be ready to guide you.
Defect Fixing, Coding, and Documentation:
You can read the existing documentations, check their Bugzilla or Trac where easy to fix defects can be found. Download their source code, try to understand and feel free to ask your queries on IRC or drop a mail to the mailing list.
Try to fix the code and test of the patch are working or not and then submit the patch. Start small and once you are a confident move to major defects or adding new features etc. You can even try working with different projects in different programming languages.
Except coding, the ways of contribution are Documentation, testing, designing, and localization. If you can read and understand the code well, it is a good idea to start documenting the same. There are many excellent code modules and snippets available on the internet, but they are not much use because of lack of documentation.
It can be a small bug fix or a new module itself. You can make it easy for other developers by writing code and immediately documenting the same. There are more chances of your code getting used, and other developers won’t try to work on the same snippets again.
Testing is another critical part, where you can easily contribute and can start testing code written by other developers and reporting any defects or suggestions. Some projects have an automated testing system also, and it may be easy to test and record your observations in such cases. Encourage others to do code testing for your code and create peers for better connectivity in the FOSS community.
UI, Graphics Designing:
Designing the interface, logo, etc. are also a major part of a project. Some projects are very strict about their UI and design guidelines. An open source is a contribution by hundreds and thousands of people across the world. The development and usage are both all over the World. In this case, localisation becomes very important. The freelance designers and developers with knowledge of local language become a full-time localisation contributor.
Asking questions and discussing new ideas can be seen as a part of the contribution. There can be other ways to contribute to a project as well, and you need to search for such opportunities.
FOSS Meet (March 10-12 2017):
It is an annual event on Free and Open source software, conducted at National Institute of Technology, Calicut in India. This meet intends to support the FOSS community and the dissemination of FOSS concept through hands-on sessions, discussions, and lectures. Nothing better to get you introduced to the world of FOSS.
The Free and Open Source Software is a reality. The community is small as there are no monitory benefits but the scope and advantages are many. If each freelance web developer starts contributing in some way to the FOSS community, it will turn out to be a huge free software movement across the globe. You can contribute by using free software, identifying any defects and correcting them. You can go on increasing your contribution over time and can do some new coding, testing and documentation for this community converting it into a great asset.