We follow a standard commit convention followed by Angular's commit convention.
So that we have the following advantages:
- get more readable messages.
- easy to follow throught project history.
- generate better change log for Arclix.
The commit messages should follow the following:
<type>[optional scope]: <description> (#issue id)
[optional body]
[optional footer(s)]
| Type | Description |
|---|---|
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 nor adds a feature |
perf |
A code change that improves performance |
test |
Adding missing tests or correcting existing tests |
build |
Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) |
ci |
Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) |
chore |
Other changes that don't modify src or test files |
revert |
Reverts a commit |
-
Commit message with description and scope
feat(core): add create project (#1) -
Commit message with
!to draw attention to breaking changerefactor(core)!: remove create project (#2) -
Commit message without scope
feat: add create project (#1)
If the PR reverts a previous commit, it should begin with revert: , followed by the header of the reverted commit.
Example:
revert: feat(core): add create poject (#1)
The scope could be anything specifying the place of the commit change. For example core, build, workflow, cli, create, generate, deps, etc...
The commit message contains a succinct description of the change:
- use the imperative, present tense: "change" not "changed" nor "changes"
- don't capitalize the first letter
- no dot (.) at the end
Note: We use commitlint to restrict the commit messages to follow our convention mentioned above.