Online Help
You can find the RVM team on IRC in
#rvm on
If we do not respond right away, leave a message and a contact to you like email or twitter.
Carbon Ads

Contributing to RVM

So, you want to contribute to rvm? Excellent! We can always do with an extra helping hand (or two). If you're not a great coder, we always appreciate people helping out in the channel, and giving support. If you are interested in coding, there are a few things you'll need to know - and a few things that make the process in general a lot smoother.

We also greatly appreciate documentation patches, submitted from the rvm-site repository.

General Guidelines

  1. Read the How to hack on RVM guide. It explains how to setup a second copy of RVM to allow you to hack without disturbing your primary RVM installation and how to use the RVM test suite.
  2. When contributing, either keep patches small and clear, or work on a topic branch - this makes it easier for us to merge in discrete changes, and means you always keep things separate where needed.
  3. The code has to be compatible with bash, and takes an almost git-like design architecturally. Many actions (e.g. aliases) call out to a script in the ~/.rvm/scripts directory. For an example of the new, simplified style for coding these, make sure you check out:
    • scripts/snapshot
    • scripts/repair
    • scripts/tools
  4. Clean code is preferred - if in doubt, take a look back, and refactor.
  5. Visit our IRC channel #rvm on freenode and ask if you have a task in mind. You may find someone else has already started on it.
  6. If you're interested in helping out, but don't have something specific in mind, check out the project's Github Issues.

Handy Tips

  1. Generally, working in a clone of the repository is by far the best way to go. When you need to test out something on a fresh install, install a new RVM to a separate path, then use `rvm switch ...` to use it. This is discussed in the hacking guide.
    $ ./install --path $HOME/.rvm-dev
    $ rvm switch $HOME/.rvm-dev
  2. It helps to use bash as your primary shell, but for some features you'll want to have zsh installed as well, to ensure compatibility.