Contributing to Open Source Projects and Code

DZone 's Guide to

Contributing to Open Source Projects and Code

Getting started contributing to open source can be daunting. Don't worry, no one is expecting you to rewrite half the code base in your first pull request. Instead, read these tips on great things you can do to help and help yourself as well.

· Agile Zone ·
Free Resource

Traditionally, IT ran off the shelf commercial software, while datacenters ran proprietary Unix hardware and x86 based Windows servers.  But recently, the end user computing environment has been disrupted by the advent of smartphones and tablets, with Linux becoming increasingly a dominant force in the data center.  Not to mention that there have been predictions from IDC analysts in August 2015 noting that there is already a shift to open source systems like Couchbase and Couchbase Mobile in the server and mobile market.

Contributing to Open Source code is not as daunting as it seems.  First off, the Open Source community is large and diverse with people working together on common problems.  Stack Overflow is an example of how collective minds are able to solve related issues faster and share in everyday findings.  The benefits are that you are able to get direct feedback from a vast community of experts with different skill levels while building out a support system of champions. 


Even Apple opened up their coding language, Swift, and so developers outside of Apple will be able to look into Swift and contribute to its development, thus bringing it to new platforms like Windows and Android.  Another benefit of it being open source now is that you can see the product road map and evolution of Swift for future feature release dates.

Getting Started

It is not as daunting as it may seem.  Many times we may believe that the only major contributions that Open Source project leads are interested in are feature extensions or major bug fixes.  But in reality, all it takes is a couple of lines of code and starting small.  Working in a domain that you already know will allow you to quickly dive in and you will also be more motivated in improving the project overall.  The other benefit is learning and picking up new domain skills.  There are plenty of available projects on GitHub that you may contribute to, such as Library For All’s eBook reader, all while learning new technology such as React Native. 

Reporting Issues

How can you start?  Well one way is to be part of the collective group contributing to the source code, but another way is to look at existing bug report tickets.  This is an opportunity to contribute by filling in useful information and setting the bar for quality error reporting.  A strategy on how to go about this is to:

  1. Verify the issue is still happening
  2. Outline steps to reproduce the issue
  3. Provide version informations
  4. Add in code snippets, screenshots and error log or texts 

The key here is to help with closing an existing issue. Providing clear details will go a long way toward resolving the open ticket, thus making the overall experience and code better.  Once identified, you may also reference specific members on the project team to investigate the issues further.  Below you can see the outstanding Couchbase Mobile Android issues that are being reported my users in the community. 

Developer Documentations

Developers rely on great documentation to learn and understand technologies.  It is the first place developers visit before diving in. Having great documentation is the key to developers adopting a technology quickly.  This is another area where you may contribute greatly as project docs are not always maintained on pace with the rest of the project.  You may help with providing clarity for yourself and other developers by:

  1. Updating description of methods
  2. Providing example of method and usage
  3. Adding diagrams
  4. Fixing typos and updating version numbers

Much like the Couchbase Mobile Android README.md file below, your contributions in the documentation or guides will go a long way in providing success for developers, as this will be the primary resource developers interact with day in and day out.

Resolving Issues

Now that you have reported issues and updated developer documentations, why not take your open source contributions to another level and work on resolving tickets on the outstanding issues?  Focusing on introducing as little code changes as possible, you may start on this path:

  1. Document test cases
  2. Write up detailed findings
  3. Reference open issue(s) you are resolving
  4. Update code base accordingly

Looking at existing issues and trying to resolve them will help not only you, but other developers who are using the code base.  You are making the product better overall, and even if you do not resolve the issue directly in the end, the detailed descriptions added will help someone else solve the ticket.  Below you can see how the Couchbase Mobile community members are helping each other out and resolving issues together openly. 



As you see there are various ways to be part of the Open Source world and contribute to Open Source technologies like Couchbase and Couchbase Mobile [Android / iOS].  Not only is it great to collectively work on projects and code with people around the world, but the resolution time is so much faster too.  You may also learn more on how to contribute by going over the GitHub guidelines for how to be involved in Open Source and browsing for available projects.

contributor, github, open source

Published at DZone with permission of William Hoang , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}