I recently submitted my first patch to Rubinius and was quite amazed at how simple it was. If you're looking for a cool Ruby project to contribute to, Rubinius is the one.

Getting Started

  1. Fork the project and git clone your fork.
  2. Build the project and run the tests.
      ./configure
      rake spec
    
    If anything goes wrong, head to the internets! Alternatively, check out #rubinius on Freenode.
  3. There is a list of specs that fail when run under 1.9.2, which is a great place to find stuff to work on. To get a list of these specs, run the following command:
      bin/mspec tag --list fails -tx19 :ci_files
    
  4. Find a failing spec that looks interesting.
  5. Run the tests for that method. For example, my first patch involved Kernel#puts. To run the specs I ran the following command:
    rake build && ./bin/mspec -tx19 spec/ruby/core/kernel/puts_spec.rb
    
    Notice how I'm executing rake build first? You have to do a build before running any tests if you've changed any code.
  6. Fix the code! This part will obviously be different depending on the code you're changing, so if you're having problems check out #rubinius on Freenode.
  7. Mark the failing test as passing:
    ./bin/mspec tag --del fails -tx19 core/kernel/puts
    
    This command should run the tests, and remove and tests that are passing.
  8. Do a full `rake` before pushing your code to make sure you haven't broken anything else.
    rake