In the spirit of open source software, everyone is encouraged to help improve this project.
- by installing and testing the software
- by reporting bugs
- by suggesting new features
- by suggesting labels for our issues
- by writing or editing documentation
- by writing test specifications
- by writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
- by refactoring code
- by closing issues
- by reviewing patches
- by donating to Code for America
We use the GitHub issue tracker to track bugs and feature requests. To submit a bug report or feature request:
-
Browse or search our issues to make sure it hasn't already been submitted.
-
When submitting a bug report, it's helpful to include any details that may be necessary to reproduce the bug, including:
- a screenshot
- your operating system (Windows 7, Mac OSX 10.9.2, etc.)
- your web browser and version (Internet Explorer 9, Chrome 27, etc.)
- a stack trace of any errors encountered
- your Ruby version (use
ruby -v
from the command line)
For developers, a bug report should ideally include a pull request with failing specs.
To submit a code change to the project for review by the team:
-
Setup: Install the app on your computer.
-
Branch: Create a topic branch for the one specific issue you're addressing.
-
Write Specs: Add specs for your unimplemented feature or bug fix in the
/spec/
directory. -
Test to fail: Run
spring rspec
. If your specs pass, return to step 3. In the spirit of Test-Driven Development, you want to write a failing test first, then implement the feature or bug fix to make the test pass. -
Implement: Implement your feature or bug fix. Please follow the community-driven Ruby Style Guide*. Note that we follow the single-quote style.
-
Test to pass: Run
script/test
to run the test suite, in addition to style checkers. If your specs fail and/or style offenses are reported, return to step 5. -
Commit changes: Add, commit, and push your changes.
-
Pull request: Submit a pull request to send your changes to this repository for review.
*If you use Sublime Text, please make sure to set your tab indentation to 2 spaces. We also highly recommend you use the TrailingSpaces plugin and set it to Trim On Save.