Open source projects are awesome, right? You have choices about how you can use them and in more cases than before, you have a choice about the type of license that comes with the code. There is just one challenge: finding the project and software that is going to get the job done for you. Here are some tips on how to choose a project and find the information you need so you can make an informed decision.
This book helps newbies choose from all the open source projects in each category, based on their level of experience, the needs for their projects, whether a feature rich control is important, etc. It makes comparisons between major open source controls including PHP frameworks and compares them just like one would compare a car to another car – using some standard criteria.
Determine your goals
The starting point would be sitting down and jotting down a list of goals that you hope to accomplish through contributing to an open-source project. If any of your goals seem vague, sit down with them and flesh them out until they are explicit and actionable. The more explicit your goals are, the easier it is to judge if you can meet them.
Beware that you don’t start thinking of this as a competition or contest, and want to contribute only because others are doing it, or you have heard a lot about it, or want some swags or benefits out of it apart from the networking and learning involved.
Moreover, don’t think that these skills necessarily have to be technical skills, in fact, open-source is much more than that. You can contribute to open-source with all kinds of skills ranging from documentation to graphic design, to QA and testing, to project management.
Here are some questions to consider as you plan to contribute to a possible open-source project:
- What skills do I possess to contribute to a project?
- What skills do I wish to bring to a project?
- What are my passions/hobbies?
- How much time am I prepared to devote to a project?
Get to know GitHub
GitHub is the most popular platform for open source collaboration, so you’ll probably use it when exploring the world of OSS. First, you need to create a GitHub account and read the guide that helps you get started. On GitHub, you can contribute to projects by submitting issues and contributing code. Submitting issues means sending messages about errors in applications and suggesting ways to fix them. Contributing code involves sending pull requests with your corrections and improvements.
You can also search for projects based on your interests. The easiest method to do this is to first determine what interests you, then search the Internet (or GitHub) for open source projects relating to your interests. You may occasionally come across specific interest groups that work on open source projects, for example – Django Girls, Women Who Code, etc.
Once you’ve compiled a list of prospective projects to which you can help by contributing, you can begin narrowing down your options. Good potential initiatives will fit within the above-mentioned goals and have the following characteristics:
- A free and open-source license
- Indicators of ongoing development (ensure that it hasn’t been inactive for a very long time)
- Guidelines for contributor activity (look for Contributing guidelines, code of conduct, wiki, etc in the GitHub repository).
Let’s discuss these characteristics in a little bit more detail to get a deeper understanding of what to look for in these potential projects to find the most suitable one.
Learn the basics
When working with GitHub, you should know how to use Git – one of the most popular version control tools (also known as revision control tools). Because developers constantly make changes to their code, they need a system that can manage those changes in a central repository. In this way, everyone involved in the development process can download a given piece of software, make changes, and submit updates.
Understanding Open source licenses
Open source licenses are often overlooked, but they are an essential component of any open-source project as they govern what you can and cannot do with an open-source project. Before you start contributing to a possible project, it’s important looking at the license it is utilizing if it has one.
While there are many different types of open-source licenses to choose from, there are two main categories: copyleft and permissive. Anyone who works on these licensed projects must be able to read, alter, and share the source code under both types of licenses. However, the two licenses differ in terms of what the user can do with the work and whether the derivative work should be under the same terms as the original work or under different terms.
Copyleft License: A copyleft license prevents a derivative work from being relicensed under a more restrictive license. For example – The GNU Public License (GPL), the GNU Lesser General Public License (LGPL), and the Mozilla Public License.
Permissive License: A permissive license permits the creator of a derivative work to change the derivative work’s license. It also permits a creator to incorporate a work released under a permissive license into a proprietary work, with the derivative remaining proprietary.
A permissive license does not obligate the creator of a derivative work to make the derivative work available under a free or open-source license. The Apache License and the MIT License are two popular permissive licenses.
Join the community
You can easily join an open source project by subscribing to the mailing list for that project. You can find mailing lists on official websites or on GitHub pages. After being accepted to the list, you can communicate with team members and get support if necessary. Thanks to the vibrant communities present in nearly every OSS project, you are likely to get quick replies to your questions.
All skills are welcomed
Even non-programmers can contribute to open source projects! Documentation is needed for all projects, and sometimes this is poorly written and maintained. Thus, you can help by writing, updating or even translating documentation. Also, your design skills might come in handy: every application needs an interface, after all. Finally, you can contribute by managing a community by replying to questions and guiding newcomers.
Choosing an open source project is a great way to learn more about the world of software development. Many open source projects bring communities together for reasons other than just contributing code such as learning about new technologies.