Skip to content

Commit 8bb0a85

Browse files
committed
feat: add conventional-changelog package
1 parent 3e6e6a8 commit 8bb0a85

File tree

3 files changed

+202
-0
lines changed

3 files changed

+202
-0
lines changed

Diff for: @commitlint/config-conventional/README.md

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
> Lint your conventional commits
2+
3+
# @commitlint/config-conventions
4+
5+
Shareable `commitlint` config enforcing [convention commits](https://conventionalcommits.org/).
6+
Use with [@commitlint/cli](../cli) and [@commitlint/prompt-cli](../prompt-cli).
7+
8+
| :warning: | |
9+
|:-------:|--|
10+
| **IMPORTANT** | This is a direct replacement for [@commitlint/config-angular](../config-angular) prior to version 4. `config-angular` diverged from the conventional commit convention as of version 5. See [#146](https://github.com/marionebl/commitlint/issues/146) for details. |
11+
12+
## Getting started
13+
14+
```sh
15+
npm install --save-dev @commitlint/config-conventional @commitlint/cli
16+
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
17+
```
18+
19+
## Rules
20+
### Problems
21+
22+
The following rules are considered problems for `@commitlint/config-conventional` and will yield a non-zero exit code when not met.
23+
24+
Consult [docs/rules](http://marionebl.github.io/commitlint/#/reference-rules) for a list of available rules.
25+
26+
27+
#### type-enum
28+
* **condition**: `type` is found in value
29+
* **rule**: `always`
30+
* **value**
31+
32+
```js
33+
[
34+
'build',
35+
'ci',
36+
'chore',
37+
'docs',
38+
'feat',
39+
'fix',
40+
'perf',
41+
'refactor',
42+
'revert',
43+
'style',
44+
'test'
45+
]
46+
```
47+
48+
```sh
49+
echo "foo: some message" # fails
50+
echo "fix: some message" # passes
51+
```
52+
53+
#### type-case
54+
* **description**: `type` is in case `value`
55+
* **rule**: `always`
56+
* **value**
57+
```js
58+
'lowerCase'
59+
```
60+
61+
```sh
62+
echo "FIX: some message" # fails
63+
echo "fix: some message" # passes
64+
```
65+
66+
#### type-empty
67+
* **condition**: `type` is empty
68+
* **rule**: `never`
69+
70+
```sh
71+
echo ": some message" # fails
72+
echo "fix: some message" # passes
73+
```
74+
75+
#### scope-case
76+
* **condition**: `scope` is in case `value`
77+
* **rule**: `always`
78+
```js
79+
'lowerCase'
80+
```
81+
82+
```sh
83+
echo "fix(SCOPE): some message" # fails
84+
echo "fix(scope): some message" # passes
85+
```
86+
87+
#### subject-case
88+
* **condition**: `subject` is in one of the cases `['sentence-case', 'start-case', 'pascal-case', 'upper-case']`
89+
* **rule**: `never`
90+
91+
```sh
92+
echo "fix(SCOPE): Some message" # fails
93+
echo "fix(SCOPE): Some Message" # fails
94+
echo "fix(SCOPE): SomeMessage" # fails
95+
echo "fix(SCOPE): SOMEMESSAGE" # fails
96+
echo "fix(scope): some message" # passes
97+
echo "fix(scope): some Message" # passes
98+
```
99+
100+
#### subject-empty
101+
* **condition**: `subject` is empty
102+
* **rule**: `never`
103+
104+
```sh
105+
echo "fix:" # fails
106+
echo "fix: some message" # passes
107+
```
108+
109+
#### subject-full-stop
110+
* **condition**: `subject` ends with `value`
111+
* **rule**: `never`
112+
* **value**
113+
```js
114+
'.'
115+
```
116+
117+
```sh
118+
echo "fix: some message." # fails
119+
echo "fix: some message" # passes
120+
```
121+
122+
123+
#### header-max-length
124+
* **condition**: `header` has `value` or less characters
125+
* **rule**: `always`
126+
* **value**
127+
```js
128+
72
129+
```
130+
131+
```sh
132+
echo "fix: some message that is way too long and breaks the line max-length by several characters" # fails
133+
echo "fix: some message" # passes
134+
```

Diff for: @commitlint/config-conventional/index.js

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
module.exports = {
2+
rules: {
3+
'body-leading-blank': [1, 'always'],
4+
'footer-leading-blank': [1, 'always'],
5+
'header-max-length': [2, 'always', 72],
6+
'scope-case': [2, 'always', 'lower-case'],
7+
'subject-case': [
8+
2,
9+
'never',
10+
['sentence-case', 'start-case', 'pascal-case', 'upper-case']
11+
],
12+
'subject-empty': [2, 'never'],
13+
'subject-full-stop': [2, 'never', '.'],
14+
'type-case': [2, 'always', 'lower-case'],
15+
'type-empty': [2, 'never'],
16+
'type-enum': [
17+
2,
18+
[
19+
'build',
20+
'chore',
21+
'ci',
22+
'docs',
23+
'feat',
24+
'fix',
25+
'perf',
26+
'refactor',
27+
'revert',
28+
'style',
29+
'test'
30+
]
31+
]
32+
}
33+
};

Diff for: @commitlint/config-conventional/package.json

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "@commitlint/config-conventional",
3+
"version": "5.0.1",
4+
"description": "Shareable commitlint config enforcing conventional commits",
5+
"scripts": {
6+
"clean": "exit 0",
7+
"deps": "dep-check",
8+
"lint": "xo",
9+
"start": "exit 0",
10+
"test": "exit 0"
11+
},
12+
"xo": false,
13+
"repository": {
14+
"type": "git",
15+
"url": "git+https://github.com/marionebl/commitlint.git"
16+
},
17+
"keywords": [
18+
"conventional-changelog",
19+
"commitlint",
20+
"commitlint-config",
21+
"angular"
22+
],
23+
"author": "Mario Nebl <[email protected]>",
24+
"license": "MIT",
25+
"bugs": {
26+
"url": "https://github.com/marionebl/commitlint/issues"
27+
},
28+
"homepage": "https://github.com/marionebl/commitlint#readme",
29+
"devDependencies": {
30+
"@commitlint/utils": "^5.0.1"
31+
},
32+
"dependencies": {
33+
"@commitlint/config-angular-type-enum": "^5.0.1"
34+
}
35+
}

0 commit comments

Comments
 (0)