First, checkout the issues that are labelled as "ready" and listed under the current milestone (#2). Pull requests that address these issues will be a top priority. Pull requests that address issues that are labelled "ready" and "help wanted" but aren't in the current milestone are still appreciated 🙂. Other pull requests, including those that update gems or the Ruby version unnecessarily, will be a lower priority and might even be closed without merging. That said, we'd love to hear your suggestions on how to make the app better, so please don't hesitate to open an issue if you think of something!
From time to time we also have abandonded PRs that need to be finished - if there are any PRs in that list we'd love your help there too!
- Issues labelled "good first issue" or "first-timers-only" are a good place to start.
- We are happy to help you through process of submitting your first PR - just let us know what you need!
If you haven't already done so, please read our development setup instructions.
- Claim an issue by commenting on it (if one doesn't exist, open one).
- Fork and clone the repo.
- Run
bin/setup
. - Run the specs and make sure everything passes (see below).
- Create a branch to work on.
- Add one or more specs for your changes.
- Make your changes.
- Run
bundle exec rake
and make sure your specs pass and that RuboCop doesn't report any issues. - Push to your fork and submit a pull request. Include a closing keyword and then the issue number in the PR description (e.g. "Resolves #19").
*NOTE: In order for Heroku to update your PR app as you add commits, you need to open a pull request from a feature branch in your fork against the master branch in the this repo.
We've set up two main ways to run specs...
Two options:
- Use
bundle exec guard
to have specs automatically run when changes are saved - Use
bin/rspec
followed by command line arguments to run RSpec on demand (you can run it for just specific files or folders, and give it other command line options)
Both of the above commands will run the specs using Spring. This makes it faster to run specs because the Rails environment doesn't have to be loaded each time, but can give an inacurrate test coverage, so that won't be calculated when Spring is running.
bundle exec rake
will do the following:
- Run RuboCop with autocorrections turned on
- Run the full spec suite without Spring and will calculate test coverage
- Perform a local CodeClimate analysis if you have docker installed and the CodeClimate image downloaded