Skip to content

Development Guidelines

Shaun McDonald edited this page May 27, 2013 · 6 revisions

Development Guidelines

Source Control

OS

  • Development: Ubuntu/Mac OS X
  • Deployment: Ubuntu

Coding guidelines

Follow: https://github.com/bbatsov/ruby-style-guide

Versions

  • Rails: 3.2 or newer
  • Ruby: 1.9.2 (1.8 is not supported)
  • Git: 1.7
  • PostgreSQL: 9.0 or higher

Git workflow

  • The master branch should be stable, tested, and can be deployed at any time.
  • Work should be done in feature branches with meaningful names.
  • Feature branches are merged into staging branch. Staging is deployed max once per day (barring emergencies).
  • Very small changes and bug fixes can be made on the staging branch.
  • Merges between branches should almost always be non-fast-forward.
  • Only pulls from remotes or where a branch needs to catch up with master should be fast-forwards.

Deployment Checklist

  1. All tests pass on staging
  2. git checkout master
  3. git merge --no-ff staging
  4. git push origin master
  5. Wait for automatic deployment to server (every hour)