The Ruby Programming Language

tenderlove edited this page Dec 10, 2012 · 16 revisions

This is a wiki for the ongoing work of the Ruby Language Team.

New feature HOWTO

  1. Propose a new feature to the developer mailing list.
  2. Find a champion for that feature.
  3. Champion adds the feature proposal to the straw man page.
  4. Straw man proposal is refined until the Ruby Language Team reaches consensus, or defers it.
  5. When consensus is reached, the proposal is moved to the approved proposals page.
  6. The approved proposal is added to RubySpec.

What is a "Champion"?

A "Champion" is a member of the Ruby Language Team that is the owner for a particular proposal. It is the Champion's responsibility to work with the rest of the Ruby Language Team on refining a particular proposal until there is team consensus of the new feature.

What is a "Straw Man"?

A "Straw Man" is a rough draft proposal for a new language feature. The Straw Man is written by the person who wishes to endorse the new feature. The Straw Man proposal is meant to garner feedback from the rest of the Ruby Language Team. Based on feedback from the rest of the Ruby Language Team, the person endorsing the feature must refine the straw man until the language team reaches consensus of the new feature.

A good Straw Man proposal will contain:

  • An overview of the new feature
  • Examples of usage
  • Impact on existing code
  • Syntax changes (if necessary)
  • RubySpec examples (recommended, but not required)

Who is The Ruby Language Team?

The Ruby Language team consists of representatives from each implementation who commit to attending each meeting. Any committer to an implementation may champion proposals, and are expected to attend meetings when their proposals are on the agenda.


The straw man page is intended to hold proposals prior to approval.

The approved proposals page is intended to hold approved proposals for the Ruby language.

The deferred proposals page holds proposals that have been deferred until further notice.