Open Source: How to Git Started

The following is a guest post by Chris Lake and originally appeared on his blog. Chris is currently a student at The Flatiron School. You can follow him on Twitter here. Look, Contributing to Open Source is Super EZ There are loads of ways to contribute to your favorite open source projects. I list out a bunch of […]

Reading Time 3 mins

The following is a guest post by Chris Lake and originally appeared on his blog. Chris is currently a student at The Flatiron School. You can follow him on Twitter here.

Look, Contributing to Open Source is Super EZ

There are loads of ways to contribute to your favorite open source projects. I list out a bunch of them below.

I’ll also discuss how I ate my own dog food, mostly because I love using that expression. Altho I was actually pretty excited to submit my first open source pull request.


Gitting started.

Working on any open source project on GitHub is just as easy as working on your own team projects. If you know how to use GitHub, you know how to contribute to open source.

Take Ruby, for example. To paraphrase the rubyist Mike Perham (who you probs don’t read but definitely should), Ruby Core has made contributing as simple as:

  1. Fork the Ruby repohttp://github.com/ruby/ruby

  2. Commit changes to your repo — e.g. https://github.com/chhhris/ruby

  3. Submit a pull request – GitHub has a great primer at https://help.github.com/articles/using-pull-requests


Ways to contribute.

I think it’s fairly common knowledge that you don’t have to be a prodigy to contribute to meaningful open source projects. And that’s especially true because there are so many ways to contribute.

I’ve adapted Andy Lester’s post on Smart Bear to list some easy, helpful ways to get involved with Ruby.

Stay informed

  • Join a mailing list – Ruby Weekly produces a very informative and engaging weekly newsletter – sign up at http://rubyweekly.com/

Blog post image: tumblr_inline_mpzefyt2PW1qz4rgp.pngBlog post image: tumblr_inline_mpzeg3oPKk1qz4rgp.pngBlog post image: tumblr_inline_mpzeg91L3d1qz4rgp.png

  • Join an IRC channel – IRC is confusing at first glance so I’ll have to spend some more time looking into it. 

Blog post image: tumblr_inline_mpzeguDibu1qz4rgp.png

Review open tickets

  • Troubleshoot and add detail to open bugs –

  • Close old bugs that have been fixed –

You’ll need an account in order to review, edit and submit bug reports: https://bugs.ruby-lang.org/projects/ruby/wiki/HowtoReport 

Blog post image: tumblr_inline_mpzehgnKwB1qz4rgp.png

Code

  • Test a beta or release candidate

  • Fix a bug

  • Write a test

Contribute to the community

  • Improve Documentation

  • Answer a question

  • Improve the project website

Let’s do it.

This last idea – improving the project website – is where I ended up getting my foot in the door. I was perusing Ruby’s official website and found a couple links to resources on del.icio.us that had, well, gone stale.

My first step was to locate the source code for Ruby’s official website. After a few minutes scouring the main Ruby repo in vain, I discovered that the project website is, logically, maintained on a separate repo: https://github.com/ruby/www.ruby-lang.org/.

Blog post image: tumblr_inline_mpzeicIV9M1qz4rgp.png

Before making any edits, I went to the project’s Readme file for any instructions. First thing was a link to a Wiki page entitled “Guidelines for Contributors.”

The guidelines were very clear and straightforward. Basically, the Ruby-Lang site is built on Jekyll and they suggest most edits/contributions/etc be made as edits directly on the GitHub hosted page (as opposed to cloning the repo, making changes locally, and pushing back to the remote).

Blog post image: tumblr_inline_mpzeknvwkN1qz4rgp.png

The project owners had specific instructions for how you should describe your work when submitting the pull request. Bottom line, they ask you to be crystal clear about 1) what page you’re working on, and 2) which language version (as the site is maintained in many languages around the world).

The body text is optional.

Blog post image: tumblr_inline_mpzele2VfV1qz4rgp.png

And that’s it! Even though it was such a minor contribution on a relatively obscure page, the main objective for me was to de-mystify and better understand the logistics for submitting to an open source project. And I’m so glad I did, because it’s a lot simpler than I imagined!

Below is a screenshot of pending pull requests for the ruby-lang.org website. You can see yours truly at the top of the list 😉

Blog post image: tumblr_inline_mpzem854Jv1qz4rgp.png

Postscript:

A couple hours after I submitted the pull request I heard back from a couple team members…

Blog post image: tumblr_inline_mpzen3RJ8I1qz4rgp.png

Disclaimer: The information in this blog is current as of July 15, 2013. Current policies, offerings, procedures, and programs may differ.

About Flatiron School

More articles by Flatiron School