d5e9e8d37bd2556f154ec136f9c0dc206a52e35a

Author
Marc Cornellà <hello@mcornella.com>
Committer
Marc Cornellà <hello@mcornella.com>
Date

Message

docs: document commit convention in CONTRIBUTING.md

Diff

This diff is truncated to protect this page.

  1diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
  2index be67e93b0a4242e8f96903d6b93bbc8a626afaee..b7db4f6619d45a2cf460dab43c9e18cfd15ed771 100644
  3--- a/CONTRIBUTING.md
  4+++ b/CONTRIBUTING.md
  5@@ -11,16 +11,23 @@ issues and pull requests. Please read them closely.
  6 Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
  7 you would make is not already covered.
  8 
  9-* [Issues](#reporting-issues)
 10-  * [You have a problem](#you-have-a-problem)
 11-  * [You have a suggestion](#you-have-a-suggestion)
 12-* [Pull Requests](#submitting-pull-requests)
 13-  * [Getting started](#getting-started)
 14-  * [You have a solution](#you-have-a-solution)
 15-  * [You have an addition](#you-have-an-addition)
 16-* [Information sources (_aka_ search)](#use-the-search-luke)
 17-
 18-**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
 19+<!-- TOC -->
 20+
 21+- [CONTRIBUTING GUIDELINES](#contributing-guidelines)
 22+  - [Reporting Issues](#reporting-issues)
 23+    - [You have a problem](#you-have-a-problem)
 24+    - [You have a suggestion](#you-have-a-suggestion)
 25+  - [Submitting Pull Requests](#submitting-pull-requests)
 26+    - [Getting started](#getting-started)
 27+    - [You have a solution](#you-have-a-solution)
 28+    - [You have an addition](#you-have-an-addition)
 29+  - [Use the Search, Luke](#use-the-search-luke)
 30+  - [Commit Guidelines](#commit-guidelines)
 31+    - [Format](#format)
 32+    - [Style](#style)
 33+  - [Volunteer](#volunteer)
 34+
 35+<!-- /TOC -->
 36 
 37 ## Reporting Issues
 38 
 39@@ -117,7 +124,100 @@ and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-reque
 40 
 41 ----
 42 
 43-### You have spare time to volunteer
 44+## Commit Guidelines
 45+
 46+Oh My Zsh uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
 47+specification. The automatic changelog tool uses these to automatically generate
 48+a changelog based on the commit messages. Here's a guide to writing a commit message
 49+to allow this:
 50+
 51+### Format
 52+
 53+```
 54+type(scope)!: subject
 55+```
 56+
 57+- `type`: the type of the commit is one of the following:
 58+
 59+  - `feat`: new features.
 60+  - `fix`: bug fixes.
 61+  - `docs`: documentation changes.
 62+  - `refactor`: refactor of a particular code section without introducing
 63+    new features or bug fixes.
 64+  - `style`: code style improvements.
 65+  - `perf`: performance improvements.
 66+  - `test`: changes to the test suite.
 67+  - `ci`: changes to the CI system.
 68+  - `build`: changes to the build system (we don't yet have one so this shouldn't apply).
 69+  - `chore`: for other changes that don't match previous types. This doesn't appear
 70+    in the changelog.
 71+
 72+- `scope`: section of the codebase that the commit makes changes to. If it makes changes to
 73+  many sections, or if no section in particular is modified, leave blank without the parentheses.
 74+  Examples:
 75+
 76+  - Commit that changes the `git` plugin:
 77+  ```
 78+  feat(git): add alias for `git commit`
 79+  ```
 80+
 81+  - Commit that changes many plugins:
 82+  ```
 83+  style: fix inline declaration of arrays
 84+  ```
 85+
 86+  For changes to plugins or themes, the scope should be the plugin or theme name:
 87+
 88+  - ✅ `fix(agnoster): commit subject`
 89+  - ❌ `fix(theme/agnoster): commit subject`
 90+
 91+- `!`: this goes after the `scope` (or the `type` if scope is empty), to indicate that the commit
 92+  introduces breaking changes.
 93+
 94+  Optionally, you can specify a message that the changelog tool will display to the user to indicate
 95+  what's changed and what they can do to deal with it. You can use multiple lines to type this message;
 96+  the changelog parser will keep reading until the end of the commit message or until it finds an empty
 97+  line.
 98+
 99+  Example (made up):
100+
101+  ```
102+  style(agnoster)!: change dirty git repo glyph
103+
104+  BREAKING CHANGE: the glyph to indicate when a git repository is dirty has