Start contributing to open source Call for Code projects
Don't let fear of the unknown stop you from getting involved in open source. Learn how to get started in open source projects and engage…
Jumping into the open source world can be intimidating for the uninitiated. Don’t let fear of the unknown stop you from getting involved in open source. In this blog post, we cover some of the basics you need to know before contributing your first line of code.
Let’s start with the basics. What is open source? Open source software is code that is published publicly and anyone can see, use, or modify the code for their needs. Developers put their code in public repositories like the ones on GitLab or GitHub, so that more people can see and interact with the code.
Ideally, if a person or group of people change the open source code to enhance it or make it better, they can contribute their changes back to a project to make the core technology stronger.
People who contribute code are called contributors, and the people who approve changes to a code’s core are called committers or maintainers, depending on the project you’re working on.
Collaborative development practices
Now that you understand that basic gist of open source, let’s go a little deeper.
While some open source projects are small developer tools that help you accomplish a single task, other open source projects are large, complicated pieces of software that have interconnected parts. In these larger projects, different teams or working groups focus on developing specific parts of the technology, collaborating on the technology, peer reviewing and testing the code, and contributing their changes to the core tech.
Tools and practices to know
Before you can start contributing, there are a few different tools that you need to know and understand, including GitHub and Git.
For GitHub basics, the best place to start is, unsurprisingly, GitHub. Their Hello World docs are a great first step in building learning GitHub by practice:
These tutorials show you how to:
- Create and use a repository
- Start and manage a new branch
- Make changes to a file and push them to GitHub as commits
- Open and merge a pull request
Git is a version-control system that enables you to see the changes that are made to your files and programs over time (and undo them, if necessary) and also collaborate with other people on your code. GitHub, GitLab, and BitBucket all use a Git server program for hosting code.
This Step-by-step guide to Git covers the basics of what you need to know.
Working towards your first commit
Find the right project for you. How do you find a project to contribute to? A good place to start is to think about your interests and your skills, browse some of the projects of open source foundations like the Linux Foundation, Apache Foundation, and CNCF and see if you can find a project that aligns with your interests and skills. One way to make sure the community is welcoming and friendly is to send an email or chat and tell them you’d like to get involved. Do you get a friendly reply? That’s a good sign! Deafening silence? Move right along.
Start small. For your first commit, start small. You can simply try a solution out and report a bug you find, or look for a “help wanted” issue in a project’s board. Listen to this Command Line Heroes podcast for inspiration on how to push through the “terror” of your first commit.
Be a good community member. Once you do find the right project and make your first commit, be a good community member. Work hard. Meet your deadlines. Be kind. Essentially, treat others how you want to be treated. Here are a few more tips for how to be a good community member.
Contribute to Tech for Good open source projects
Ready to make your first commit? Get involved with some of our Call for Code open source projects. We have a friendly community of developers who are eager to collaborate with more people to build innovative solutions that fight back against the most pressing issues of our time.
Climate change projects
For example, if you are concerned about how climate change impacts agriculture, here are 3 projects you can contribute to today:
- Liquid Prep helps farmers understand water usage and optimize their crop yields.
- Project Owl’s ClusterDuck Protocol helps communities reeling from extreme weather events and other disasters by connecting first responders with residents when the power fails.
- DroneAID: A project that uses machine learning to detect calls for help on the ground placed by those in need.