https://github.com/uphold/commitlint-config-uphold
https://github.com/uphold/commitlint-config-uphold
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/uphold/commitlint-config-uphold
- Owner: uphold
- License: mit
- Created: 2022-05-23T10:39:03.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-19T13:43:00.000Z (8 months ago)
- Last Synced: 2024-11-21T20:48:30.547Z (6 months ago)
- Language: JavaScript
- Size: 410 KB
- Stars: 1
- Watchers: 37
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @uphold/commitlint-config-uphold
Shareable commitlint config enforcing Uphold's commit conventions.
## Status
[![npm version][npm-image]][npm-url]
[![build status][ci-image]][ci-url]## Motivation
This package ensures our commits follow our standard:
1. Header must not exceed 72 characters.
1. Header must start with a verb in the simple present tense (imperative mood).
1. Header must be sentence-cased, meaning it must start with an uppercase letter.
1. Header must not end with a full-stop.
1. Body can make use of all verb tenses.## Installation
```sh
❯ npm i @uphold/commitlint-config-uphold --save-dev
```or with Yarn:
```sh
❯ yarn add commitlint-config-uphold --dev
```### Usage with [commitlint](https://commitlint.js.org/)
Create `.commitlintrc.yml` with:
```yml
extends: "@uphold/commitlint-config"
```## Verbs detection
Verbs are detected using data from [Wordnet](https://wordnet.princeton.edu/) provided by [wordnet](https://www.npmjs.com/package/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:
```sh
❯ 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](https://opensource.org/licenses/MIT)
[npm-image]: https://img.shields.io/npm/v/@uphold/commitlint-config.svg
[npm-url]: https://www.npmjs.com/package/@uphold/commitlint-config
[ci-image]: https://github.com/uphold/commitlint-config-uphold/actions/workflows/ci.yml/badge.svg?branch=master
[ci-url]: https://github.com/uphold/commitlint-config-uphold/actions/workflows/ci.yml