---
layout: page
title: Contributing
---
# "How To Contribute":#contributing
# "Building From Source":#building
# "Documentation":#doc
# "Open Issues":#open
By all means.
h3(#contributing). How To Contribute
Pick on an "open issue":http://github.com/assaf/vanity/issues, "experimental feature":experimental.html, suggestion from the "Google Group":http://groups.google.com/group/vanity-talk, or whatever you feel like contributing.
To contribute new code/changes:
# "Fork the project":http://github.com/assaf/vanity
# Please use a topic branch to make your changes, it's easier to test them that way
# Fix, patch, enhance, document, improve, sprinkle pixie dust
# Tests. Please. Run @rake@ and if possible CI (see below)
# Send a pull request on GitHub
Bonus points for helping improve the documentation, writing some examples, and adding more test coverage.
h3(#building). Building From Source
Vanity is tested against multiple Ruby implementations, and a variety of database engines. To make life easier, we use "RVM":http://rvm.beginrescueend.com/ and "Bundler":http://gembundler.com/ to set up the test/development environment.
To test Vanity for the first time under whichever Ruby implementation you're currently using:
$ rake test:setup
$ rake
To test Vanity with specific database adapter:
$ rake DB=redis
$ rake DB=mongodb
$ rake DB=mysql
Before making a release, we run the full test suite against multiple Ruby VMs
and using multiple database adapters. Doing this on your own is easier than it
sounds:
# "Fork the project":http://github.com/assaf/vanity
# Go to "Travis CI":http://travis-ci.org/, setup a new account if you don't already have one
# "In your profile page":http://travis-ci.org/profile, tell Travis to build your fork
# @git push@ your changes into your fork and "watch Travis":http://travis-ci.org/ run the tests
To package Vanity as a gem and install on your machine:
$ rake install
h3(#doc). Documentation
Documentation is written in "Textile":http://redcloth.org/textile/writing-paragraph-text/, and converted to HTML using "Jekyll":http://jekyllrb.com/.
API reference is "RDoc":http://rdoc.sourceforge.net/doc/index.html, converted to HTML using "Yardoc":http://yardoc.org/.
To build and view documentation:
$ rake docs
$ open html/index.html
To clean up after yourself:
$ rake clobber
h3(#open). Open Issues