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.
- Fork the project and git clone your fork.
Build the project and run the tests.
If anything goes wrong, head to the internets! Alternatively, check out #rubinius on Freenode.
./configure rake spec
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
- Find a failing spec that looks interesting.
Run the tests for that method.
For example, my first patch involved Kernel#puts. To run the specs I ran the following command:
Notice how I'm executing rake build first? You have to do a build before running any tests if you've changed any code.
rake build && ./bin/mspec -tx19 spec/ruby/core/kernel/puts_spec.rb
- 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.
Mark the failing test as passing:
This command should run the tests, and remove and tests that are passing.
./bin/mspec tag --del fails -tx19 core/kernel/puts
Do a full `rake` before pushing your code to make sure you haven't broken anything else.