How to Contribute to Google Open Source Projects Image

How to Contribute to Google Open Source Projects

Contributing to open source projects in Google is something many have not had the opportunity to do before. This document helps you get started, with the details for 5 common types of contributions: feature requests, bugs, documentation fixes, updates to open source libraries, and patches from outside contributors…We focus on small steps. We use a development cycle called ‘Test Driven Development’ or ‘TDD’. It is a very safe way of writing code…

To contribute code to an open source project hosted on Google’s infrastructure, fork the repository on GitHub, branch off your changes in a topic branch, submit a pull request with your proposed patch to our Gerrit instance as directed by the maintainers, and wait for your code to get reviewed and committed.

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.

Chromium OS


It is very similar to Chrome and Chromium. The Chrome OS is also having a base of open source that has been named as Chromium OS. This is termed as a Linux based operating system that is completely designed for ultra-portable and always stay connected to devices.

It is usually based on Gentoo Linux distribution. This is well known for its minimalistic and security. There is hardly anything that makes the Chromium browser better than Chromium IOS. This has been made as a lightweight system.

Good understanding of one programming language of your choice

Understanding of a programming language is not just knowing the syntax or how recursion works. If you already know that, great! You are past the first hurdle. Next, you need to take up the task of learning the multiple major libraries and packages that are going to be used in any medium to large-scale projects. Look up the relevant libraries of your programming language and devote time to learning them (like this list of 6 useful Python libraries). A good understanding of these will go a long way in helping you understand any code base better.

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.

Version Control System

Yes, this is where Github comes in. Distributed revision control (DVCS) is one way to do collaborative coding which makes sure that all the code remains secure and concurrent at any given point in time. All, and I mean ALL, organizations use some form of version control. Major ones are SVN and Git. Although now, mostly every organization have switched to Git for some of its features, while some might still be using SVN. Github is just a Git client which lets you host your code online. Learning Github is not the same as learning Git. Therefore, first, learn Git — book then, move on and learn how to use Github. For quick reference, you can also use this: Try Git—having familiarity with version control will give you quite an edge over other candidates (but you can also try learning from this handy beginners guide to learning Git and Github.

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.

Learn to read the source code

There is no substitute for the ability to read through seemingly gigantic code bases. Let’s face it, most of the documentation for any code can be confusing for anyone. It may be useful for the end user, but for any new developer, it’s may appear gibberish. You are on your own when you need to go through the source code of something which spans hundreds of thousands of lines with hundreds of files.

Where does one start? Well, it depends. Learn how to use bug or issue trackers which most likely, every organization will have it. If you don’t know what a software bug is, now will be a good time to start. Bug trackers are like the version control systems which we talked about earlier. In fact, most version control clients will have an implementation of the bug tracker themselves. Github has an “Issues” system, which is the same thing. A bug tracker, basically, lists all the “issues” (or bugs) currently identified with the software and their “status” (Are they solved? Unsolved? Being worked on?). Bug trackers provide the non-developer end-users with a way to point out a problem in the software. They might also be used to request a new feature, which is different from a bug.

Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License Agreement (CLA). You (or your employer) retain the copyright to your contribution; this simply gives us permission to use and redistribute your contributions as part of the project. Head over to to see your current agreements on file or to sign a new one.

You generally only need to submit a CLA once, so if you’ve already submitted one (even if it was for a different project), you probably don’t need to do it again.

Submit Patches

Once you’ve learned all of the above (and trust me, it is not much), you are ready to submit some patches or bug fixes to a project of your choice. Choose any open-source project — preferably written in a language you know, and more importantly, interests you — and go and browse through its bug tracker. Most bug trackers have issues marked as volunteer or introductory. Search for such issues, or go with any issue which you think you can fix. Comment or write an update on the issue saying you are taking it up. Solve it on your local system (you’ll know what this is once you know how to use version control) and then push it to the organization’s remote code base.


Contributing to open-source projects can be a daunting experience. We want to make it easy, so we’ve put together these guidelines to make contributing easier.

Similar Posts


No Comment.