Permalink
Browse files

docs(contributing): add git commit message guidelines

Update with brief message about what goes in the commit message
  • Loading branch information...
1 parent 6cd4b13 commit 3cced99b961f905f7f82a44045050a0865d91fd4 @eddiemonge eddiemonge committed Nov 12, 2013
Showing with 58 additions and 4 deletions.
  1. +58 −4 contributing.md
View
@@ -1,11 +1,65 @@
+# Contributing
+
See the [contributing docs](https://github.com/yeoman/yeoman/blob/master/contributing.md)
Additionally for this generator:
-When submitting an issue, please follow the [guidelines](https://github.com/yeoman/yeoman/blob/master/contributing.md#issue-submission). Especially important is to make sure Yeoman is up-to-date, and providing the command or commands that cause the issue.
+* When submitting an issue, please follow the [guidelines](https://github.com/yeoman/yeoman/blob/master/contributing.md#issue-submission). Especially important is to make sure Yeoman is up-to-date, and providing the command or commands that cause the issue.
+* When submitting a PR, make sure that the commit messages match the [AngularJS conventions][commit-message-format] (see below).
+* When submitting a bugfix, write a test that exposes the bug and fails before applying your fix. Submit the test alongside the fix.
+* When submitting a new feature, add tests that cover the feature.
+
+## Git Commit Guidelines
+
+These rules are adopted from the AngularJS project.
+
+### Commit Message Format
+Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
+format that includes a **type**, a **scope** and a **subject**:
+
+```
+<type>(<scope>): <subject>
+<BLANK LINE>
+<body>
+<BLANK LINE>
+<footer>
+```
+
+Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
+to read on github as well as in various git tools.
+
+### Type
+Must be one of the following:
+
+* **feat**: A new feature
+* **fix**: A bug fix
+* **docs**: Documentation only changes
+* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
+ semi-colons, etc)
+* **refactor**: A code change that neither fixes a bug or adds a feature
+* **test**: Adding missing tests
+* **chore**: Changes to the build process or auxiliary tools and libraries such as documentation
+ generation
+
+### Scope
+The scope could be anything specifying place of the commit change. For example `app`,
+`gen`, `docs`, `gen:view`, `gen:route`, `gen:service`, etc...
+
+### Subject
+The subject contains succinct description of the change:
+
+* use the imperative, present tense: "change" not "changed" nor "changes"
+* don't capitalize first letter
+* no dot (.) at the end
+
+###Body
+Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes"
+The body should include the motivation for the change and contrast this with previous behavior.
-When submitting a PR, make sure that the commit messages match the [AngularJS conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/).
+###Footer
+The footer should contain any information about **Breaking Changes** and is also the place to
+reference GitHub issues that this commit **Closes**.
-When submitting a bugfix, write a test that exposes the bug and fails before applying your fix. Submit the test alongside the fix.
+A detailed explanation can be found in this [document][commit-message-format].
-When submitting a new feature, add tests that cover the feature.
+[commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y

0 comments on commit 3cced99

Please sign in to comment.