NonCommitterHowto

weisslertal edited this page May 15, 2017 · 8 revisions
Clone this wiki locally

Non-committer’s HOWTO to join our development

If you don’t have direct access to Ruby’s canonical repository, you can still collaborate with us by cloning this repository.

First, clone this repository:

% git clone git://github.com/ruby/ruby.git

Next, we recommend that you create your own branch:

% git checkout -b mybranch origin/trunk

A tip here is that Ruby’s canonical repository is maintained using Subversion. origin/trunk is the “edge” branch.

You can edit the checked-out Ruby source code as you like. We prefer small, focused commits. This makes it easier for the Ruby maintainers to understand your contribution and determine where it will fit best into the source. Also take a look at the Redmine wiki, where some rules and manners for the project are pointed out. You might also find Matz’s guide to patch writers to be valuable. Patches that conform to these expectations are those most likely to be merged.

Commit your changes with:

% git commit -a -m 'write a detailed commit log'

Once you think it is OK to merge your branch into upstream/trunk, fork the project. Go to the github project page and click the fork button. Once you have forked, you should have your clone URL like git@github.com:${yournick}/ruby.git. Add that to your repository’s remote:

% git remote add github git@github.com:${yournick}/ruby.git

and push your local branch to your newly-forked respository:

% git push github mybranch

Then send me, shyouhei, a pull request. While I cannot promise that I can accept all pull requests, that depends on your branch’s content of course, if appropriate, I may merge your branch to mine.

Feature requests vs. Bug fixes

Sometimes I might reply to you requesting that you to “send us a feature request”. Some requests are far-reaching and will impact many maintainers’ tasks and goals. In this case the change should be peer-reviewed by the core team. It is simple to do so. Visit https://bugs.ruby-lang.org/projects/ruby/issues/new and submit a “Tracker: Feature” issue. I can merge your changes once you have persuaded them.

If you are unsure as to which medium is appropriate, don’t hesitate to contact me first. When needed I will redirect you to the Redmine site.

Thank you for wanting to make this language we both love better!