In the spirit of open source software, everyone is encouraged to help improve this project.
- by installing and testing the software
- by using the issue tracker for...
- reporting bugs
- suggesting new features
- suggesting labels for our issues
- by improving the code through:
- writing or editing documentation
- writing test specifications
- refactoring the code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace).
- reviewing open Pull Requests
- 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 your issue hasn't already been submitted.
-
Submit an issue. If you're 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.
Some issues in particular we'd be happy if contributors like yourself were
interested in fixing. Browse the issues labelled hack request
and see if there's something there that you could fix.
To submit a code change to the project for review by the team:
-
Setup: Make sure you have the prerequisites installed on your computer.
-
Install Dependencies: From the root directory of the app, run
bundle
. -
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 5. 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*.
-
Test to pass: Run
script/test
to run the test suite in addition to the style checkers. If your specs fail and/or style offenses are reported, return to step 7. -
(If applicable) Clean up JavaScript code: Run
rake jshint
to check JavaScript code quality. -
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.