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: github.com/rubygems/rubygems/issues

For more information and ideas on how to contribute to RubyGems ecosystem, see here: 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.