Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 3.02 KB

GUIDELINES.md

File metadata and controls

61 lines (44 loc) · 3.02 KB

Commit Guidelines

Thank you for your pull requests! Please make sure that commits comply with following guidelines, so that commit messages will self-explanatory and revision history easy to browse and searchable:

  • commit messages should begin with either verb in the simple simple past tense (try to use only the following verbs: Added, Changed or Removed) or special prefix in square brackets:

  • commit messages should be as short as possible and to the point. Ideally we should be able to figure out what the commit is about just by reading the commit message, without a glance into the code.
    Example: "[FIX] nil.method error in Keyword#find method"

  • commits should not be too long, only deal with one thing or a couple of related things

  • avoid afterthought commits and last-minute fixes so popular in SVN. You're in the git now: ammend and rebase.

    Example of unnecessary "afterthought" commits:
    10:00 12345 Added BubbleGum class
    10:05 12345 [FIX] removed extra comma in BubbleGum class
    10:15 12345 [REFACTOR] BubbleGum#chew method

    Last two fixes should be additionaly included to the first commit by git ammend command.

Branch Structure

  • stable branch - master, obviously. And also branch with the same name as current version of gem. For example: if gem is version 0.0.4, stable branch in either master and 0-0-4. master branch might also contain latest bugfixes from development branch.

  • development branch - branch with higher number than current gem version; there should be always only one such branch. For example, if gem is version 0.0.4, development branch is 0-0-5. If you living on the edge is your thing, use development branch. It's not stable, but it won't be intentionally broken either. It contains latest updates and bugfixes. Bigger features have their own branches.

  • feature branch - named after feature that's being implemented in it. For example: v201109, where the latest version of AdWords API is implemented. Lots of action is happening there, expect things to be broken, use at your own risk and make sure you know what you're doing (like, by reading the source code first).