-
Notifications
You must be signed in to change notification settings - Fork 24
NonCommitterHowto
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 was mostly maintained using Subversion with origin/trunk as the “edge” branch though now uses Git https://git.ruby-lang.org/ruby.git.
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 [email protected]:${yournick}/ruby.git. Add that to your repository’s remote:
% git remote add github [email protected]:${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.
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!