conventional-changelog jshint preset
Issues with the convention itself should be reported on the JSHint issue tracker.
JSHint Convention
Overview
Commit messages are written in a simple format which clearly describes the purpose of a change.
The format in general should look like this:
[[TYPE]] <Short description>
<Blank line>
<Body / Detailed description>
<Footer>
Line lengths in commit messages are not strict, but good commit messages should have headers of no
more than 60 characters, and bodies/footers wrapped at 100 columns. This renders nicely on Github's
UI.
The first line is the commit message header, which will indicate the type of change, and a general
description of the change. This should fit within 60 characters, ideally. For instance:
[[FIX]] Ignore "nocomma" when parsing object literals
The title [[FIX]]
indicates that the change is a bugfix, while the remainder clarifies what the
change actually contains.
Several commit types are used by jshint:
[[FIX]]
--- Commit fixes a bug or regression[[FEAT]]
--- Commit introduces new functionality[[DOCS]]
--- Commit modifies documentation. Docs commits should only touch comments in source code, or scripts and assets which are used to generate the documentation.[[TEST]]
--- Commit modifies tests or test infrastructure only[[CHORE]]
--- Commit affects dev-ops, CI, or package dependencies
Body
<Body>
is a detailed commit message explaining exactly what has changed, and a summary of the
reason why. Lines in the body should be wrapped to 100 characters for best rendering.
For a historical example, see this example
<Footer>
contains a description of any breaking changes, no matter how subtle, as well as a list
of issues affected or fixed by this commit. Lines in the footer should be wrapped to 100 characters
for best rendering.
For instance:
[[FEAT]] Enable `norecurs` option by default
Commit 124124a7f introduced an option which forbids recursion. We liked it so much, we've enabled
it by default.
BREAKING CHANGE:
This change will break the CI builds of many applications and frameworks.
In order to work around this issue, you will need to re-engineer your applications and frameworks
to avoid making recursive calls. Use Arrays as stacks rather than relying on the VM call stack.
Fixes #1000009
Closes #888888
Closes #77777
Based on https://github.com/jshint/jshint/blob/master/CONTRIBUTING.md#commit-message-guidelines