Skip to content

uphold/commitlint-config-uphold

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@uphold/commitlint-config-uphold

Shareable commitlint config enforcing Uphold's commit conventions.

Status

npm version build status

Motivation

This package ensures our commits follow our standard:

  1. Header must not exceed 72 characters.
  2. Header must start with a verb in the simple present tense (imperative mood).
  3. Header must be sentence-cased, meaning it must start with an uppercase letter.
  4. Header must not end with a full-stop.
  5. Body can make use of all verb tenses.

Installation

❯ npm i @uphold/commitlint-config-uphold --save-dev

or with Yarn:

❯ yarn add commitlint-config-uphold --dev

Usage with commitlint

Create .commitlintrc.yml with:

extends: "@uphold/commitlint-config"

Verbs detection

Verbs are detected using data from Wordnet provided by wordnet package.

The wordnet database is large with more than 28 megabytes because it contains all the english words, including their definitions. To provide the smallest package possible, there's a script that generates a JSON file that contains the extracted english verbs from wordnet. To update the generated JSON whenever wordnet releases a new version, run:

❯ yarn update-wordnet-verbs

⚠️ The detection algorithm simply checks if the first word is an english word that may be used as a verb (in the simple-present tense). It does not account if the word is actually a verb in the context of the phrase. It would be possible to detect if it's actually used as a verb by using natural language processing techniques. However, they often give bad results.

License

MIT