Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 1.83 KB

CONTRIBUTING.md

File metadata and controls

27 lines (20 loc) · 1.83 KB

Git guide for this project

Get familiar with git's collaboration model - there are plenty of resources for this!

Fork this repository, and push all your changes to your copy. Make sure your branch is up to date with the central repository before making a pull request. Git-scm describes this model well.

Follow these guidelines in particular:

  1. keep upstream/master functional
  2. write useful commit messages
  3. commit --amend or rebase to avoid publishing a series of "oops" commits (better done on your own branch, not master) (read this)
  4. ..but don't modify published history
  5. prefer rebase master to merge master, again for the sake of keeping histories clean. Don't do this if you're not totally comfortable with how rebase works.
  6. track issues via GitHub's tools

Coding guide

We are using Python 2.7. I recommend using virtualenv to set up an environment; requirements.txt contains the necessary python modules. Beyond that, follow these guidelines:

  1. remember that "code is read more often than it is written"
  2. avoid premature optimization. instead, be pedantic and clear with code and we will make targeted optimizations later using a profiler
  3. write tests. These are scripts that essentially try to break your own code and make sure your classes and functions can handle what is thrown at them
  4. document every class and function, comment liberally