Skip to content

Instantly share code, notes, and snippets.

Created Nov 13, 2012
What would you like to do?


Ruby on Rails (or just "Rails") is an MVC framework for developing websites. It is used by many people who are just learning to build websites, along with many companies ranging from startups to Fortune 5 corporations. Contributing to this project will not only give developers experience with working on a distributed team, but also experience with designing easy to use, well engineered code.


Short term objectives will be to focus on fixing bugs in Rails. Fixing bugs will help the student become familiar with the Rails codebase. Once the student becomes familiar with the code base, the objective will change depending on the area of focus the student has chosen.

For example:

  • Students interested in database integration can work on prepared statement and SQL AST caching.

  • Students interested in working more closely with the HTTP layer can work on Rack middleware streamlining.

There are other long term goals depending on interest of the student.


Students must use the Ruby programming language, version 1.9.3 or higher. The platform does not matter.

Required Tools

Students should must use Git as the version control system. Git can be downloaded [here], and documentation can be read here.

Installing Ruby 1.9.3 or higher is required. There are many options for installing Ruby, please see the Installing Ruby pages.

Finally, Rails is required. Installation instructions can be found here.

Getting Started

After git, Ruby, and Rails are installed, students should try to familiarize themselves with the framework. The best way to learn how to use Ruby on Rails is via the guides. Once it's time to contribute, the best documentation is the contribution guide.

What should I start working on?

After following the instructions in the contribution guide, start by finding bugs in the Rails issue tracker. Newer tickets are generally easier than older tickets. Tickets will be tagged by the particular part of the framework where the defect occurs. For example, bugs in the "Active Record" part of the framework will be tagged as "activerecord".

In general, the steps for fixing a particular ticket are:

  1. Reproduce the error
  2. Write a test for the error
  3. Fix the code that causes the error

Note that some tickets may not actually be defects. Tickets can be submitted by anyone. This means that just because there is a ticket, does not mean there is a defect. The behavior may be expected, or may not. If you are unsure if a particular ticket is expected behavior or not, ask the instructor. Use your best judgement.

Project Success

The student's success depends on the level of effort. This is a real, working code base. Some tasks will be easy, some tasks will be hard. The important part is the effort the student makes to complete a particular task. The instructor will be working closely with the students so that feedback will be constant.

About The Instructor

My name is Aaron Patterson and I work at AT&T as a Señor Software Architect with my focus on Open Source Software development. I have been a member of the Ruby Core team since 2009, and a member of the Rails core team since 2010.

For one on one communication, I prefer to use instant messenger (GTalk or AIM). We will have a private mailing list for myself and the students. We'll also have a chat room in Campfire with other Rails Core team members available for questions.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment