= How to contribute

Community involvement is essential to RubyGems. We want to keep it easy as
possible to contribute changes. There are a few guidelines that we need
contributors to follow to reduce the time it takes to get changes merged in.

== Guidelines

1. New features should be coupled with tests.

2. Ensure that your code blends well with ours:
   * No trailing whitespace
   * Match indentation (two spaces)
   * Match coding style (`if`, `elsif`, `when` need trailing `then`)

3. Don't modify the history file or version number.

4. If you have any questions, just ask on IRC in #rubygems on Freenode or file
   an issue here: http://github.com/rubygems/rubygems/issues

For more information and ideas on how to contribute to RubyGems ecosystem, see
here: http://guides.rubygems.org/contributing/

== Getting Started

Run:

    $ gem install hoe
    $ rake newb

After `rake newb` finishes you can run `rake` to run the tests.

== Issues

RubyGems uses milestones and labels to track issues and pull requests.

A new milestone is created for each feature release.  New features will be
merged (for a pull request) or implemented when "enough" have accumulated.
Upon release the milestone will be closed.  Bug fixes are added to the next
feature release milestone and merged or fixed and released as-needed.  Bug fix
releases use the previous feature release minor version number.

Issues in the "Unfulfilled Promises and Broken Dreams" milestone are looking
for implementors.  It is highly unlikely they will be implemented by RubyGems
committers.  They may be closed after one year.

Issues in the "Future" milestone are more likely to be implemented by RubyGems
committers.  They are triaged with each new feature release and either move to
the new version numbered milestone, left in "Future" or moved to "Unfulfilled
Promises and Broken Dreams".  They may be closed after one year.

Issues with accepted status in a feature release milestone have been reviewed
and triaged and are scheduled for a fix or implementation.

Issues with the feedback status may be closed one week after a request for more
information from a collaborator.  They will be reopened when more information
becomes available.

