@logickernel/agileflow 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -13
- package/docs/conventional-commits.md +99 -138
- package/package.json +1 -1
- package/src/utils.js +1 -2
- package/docs/conventional-commits/type-build.md +0 -23
- package/docs/conventional-commits/type-chore.md +0 -24
- package/docs/conventional-commits/type-ci.md +0 -23
- package/docs/conventional-commits/type-docs.md +0 -23
- package/docs/conventional-commits/type-feat.md +0 -28
- package/docs/conventional-commits/type-fix.md +0 -27
- package/docs/conventional-commits/type-perf.md +0 -24
- package/docs/conventional-commits/type-refactor.md +0 -24
- package/docs/conventional-commits/type-revert.md +0 -16
- package/docs/conventional-commits/type-style.md +0 -24
- package/docs/conventional-commits/type-test.md +0 -24
package/README.md
CHANGED
|
@@ -14,10 +14,16 @@ AgileFlow works with your CI/CD engine to **automatically create a new version t
|
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
|
+
Install the tool
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install -g @logickernel/agileflow
|
|
21
|
+
```
|
|
22
|
+
|
|
17
23
|
### Preview Your Next Version
|
|
18
24
|
|
|
19
25
|
```bash
|
|
20
|
-
|
|
26
|
+
agileflow
|
|
21
27
|
```
|
|
22
28
|
|
|
23
29
|
### Create a Version Tag
|
|
@@ -25,19 +31,19 @@ npx @logickernel/agileflow
|
|
|
25
31
|
|
|
26
32
|
**Push to Remote Git Repository:**
|
|
27
33
|
```bash
|
|
28
|
-
|
|
34
|
+
agileflow push
|
|
29
35
|
```
|
|
30
36
|
|
|
31
37
|
#### CD/CI
|
|
32
38
|
|
|
33
39
|
**GitHub Actions:**
|
|
34
40
|
```bash
|
|
35
|
-
|
|
41
|
+
agileflow github
|
|
36
42
|
```
|
|
37
43
|
|
|
38
44
|
**GitLab CI:**
|
|
39
45
|
```bash
|
|
40
|
-
|
|
46
|
+
agileflow gitlab
|
|
41
47
|
```
|
|
42
48
|
|
|
43
49
|
**Learn More**: [Getting Started Guide](./docs/getting-started.md) • [CLI Reference](./docs/cli-reference.md)
|
|
@@ -78,12 +84,22 @@ jobs:
|
|
|
78
84
|
```
|
|
79
85
|
|
|
80
86
|
**GitLab CI** (`.gitlab-ci.yml`):
|
|
87
|
+
|
|
88
|
+
For a job tagged with `agileflow` for a GitLab Runner:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
include:
|
|
92
|
+
- remote: https://code.logickernel.com/tools/agileflow/-/raw/main/.gitlab-ci.yml
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Or manually:
|
|
96
|
+
|
|
81
97
|
```yaml
|
|
82
98
|
agileflow:
|
|
83
99
|
image: node:20
|
|
84
100
|
script:
|
|
85
101
|
- npm install -g @logickernel/agileflow
|
|
86
|
-
-
|
|
102
|
+
- agileflow gitlab
|
|
87
103
|
rules:
|
|
88
104
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
89
105
|
```
|
|
@@ -111,11 +127,6 @@ AgileFlow uses [Conventional Commits](https://www.conventionalcommits.org/) to a
|
|
|
111
127
|
|
|
112
128
|
```text
|
|
113
129
|
type(scope): description
|
|
114
|
-
|
|
115
|
-
feat(auth): add OAuth2 login flow
|
|
116
|
-
fix(api): correct null handling in user lookup
|
|
117
|
-
perf(cache)!: switch to Redis cluster
|
|
118
|
-
docs: update README with usage examples
|
|
119
130
|
```
|
|
120
131
|
|
|
121
132
|
The commit type (`feat`, `fix`, `perf`, etc.) indicates what kind of change was made, while the optional scope identifies the area affected. Breaking changes are marked with `!` or a `BREAKING CHANGE:` footer.
|
|
@@ -132,8 +143,7 @@ Each merge to main triggers automatic version generation based on commit types.
|
|
|
132
143
|
|
|
133
144
|
New projects start at **v0.0.0** and automatically increment based on commits. AgileFlow will keep automatically generating versions as you develop (0.0.1, 0.0.2, 0.1.0, etc.). When your product has reached maturity and you have a stable API ready for production, create version 1.0.0 manually.
|
|
134
145
|
|
|
135
|
-
|
|
136
|
-
<summary><strong>Version 1.0.0 — First Stable Release</strong></summary>
|
|
146
|
+
### Version 1.0.0 — First Stable Release
|
|
137
147
|
|
|
138
148
|
Version 1.0.0 represents your first stable API and marks the transition from initial development to a stable, production-ready release. This version **must be created manually** when your team decides the API is stable and ready for production use.
|
|
139
149
|
|
|
@@ -146,7 +156,6 @@ git push origin v1.0.0
|
|
|
146
156
|
|
|
147
157
|
After 1.0.0, AgileFlow continues automatic versioning with standard semantic versioning rules: features bump minor, fixes bump patch, and breaking changes bump major.
|
|
148
158
|
|
|
149
|
-
</details>
|
|
150
159
|
|
|
151
160
|
**Learn More**: [Release Management Guide](./docs/release-management.md)
|
|
152
161
|
|
|
@@ -2,142 +2,129 @@
|
|
|
2
2
|
|
|
3
3
|
AgileFlow uses [Conventional Commits](https://www.conventionalcommits.org/) to automatically determine version bumps and generate release notes.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## What are Conventional Commits?
|
|
6
|
+
|
|
7
|
+
The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history, which makes it easier to write automated tools on top of. This convention dovetails with [SemVer](https://semver.org/), by describing the features, fixes, and breaking changes made in commit messages.
|
|
8
|
+
|
|
9
|
+
The commit message should be structured as follows:
|
|
6
10
|
|
|
7
11
|
```
|
|
8
|
-
type
|
|
12
|
+
<type>[optional scope]: <description>
|
|
9
13
|
|
|
10
14
|
[optional body]
|
|
11
15
|
|
|
12
|
-
[optional footer]
|
|
16
|
+
[optional footer(s)]
|
|
13
17
|
```
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
The commit contains the following structural elements, to communicate intent to the consumers of your library:
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| `body` | No | Detailed explanation |
|
|
24
|
-
| `footer` | No | Breaking changes, issue refs |
|
|
21
|
+
- **`fix:`** — A commit of the type `fix` patches a bug in your codebase (this correlates with **PATCH** in Semantic Versioning).
|
|
22
|
+
- **`feat:`** — A commit of the type `feat` introduces a new feature to the codebase (this correlates with **MINOR** in Semantic Versioning).
|
|
23
|
+
- **`BREAKING CHANGE:`** — A commit that has a footer `BREAKING CHANGE:`, or appends a `!` after the type/scope, introduces a breaking API change (correlating with **MAJOR** in Semantic Versioning). A `BREAKING CHANGE` can be part of commits of any type.
|
|
24
|
+
- **Other types** — Types other than `fix:` and `feat:` are allowed (e.g., `build:`, `chore:`, `ci:`, `docs:`, `style:`, `refactor:`, `perf:`, `test:`, and others). These have no implicit effect in Semantic Versioning (unless they include a `BREAKING CHANGE`).
|
|
25
|
+
- **Scope** — A scope may be provided to a commit's type, to provide additional contextual information and is contained within parenthesis, e.g., `feat(parser): add ability to parse arrays`.
|
|
26
|
+
- **Footers** — Footers other than `BREAKING CHANGE: <description>` may be provided and follow a convention similar to git trailer format.
|
|
25
27
|
|
|
26
28
|
---
|
|
27
29
|
|
|
28
|
-
##
|
|
30
|
+
## How to Choose a Commit Type
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|------|-------------|--------|-------|
|
|
32
|
-
| `feat` | New features | Minor | Minor |
|
|
33
|
-
| `fix` | Bug fixes | Patch | Patch |
|
|
34
|
-
| `perf` | Performance improvements | None | None |
|
|
35
|
-
| `refactor` | Code refactoring | None | None |
|
|
36
|
-
| `build` | Build system changes | None | None |
|
|
37
|
-
| `ci` | CI/CD changes | None | None |
|
|
38
|
-
| `test` | Test changes | None | None |
|
|
39
|
-
| `revert` | Revert commits | None | None |
|
|
40
|
-
| `docs` | Documentation | None | None |
|
|
41
|
-
| `style` | Code style | None | None |
|
|
42
|
-
| `chore` | Maintenance | None | None |
|
|
32
|
+
Use this decision flow to choose the right commit type:
|
|
43
33
|
|
|
44
|
-
|
|
34
|
+
```mermaid
|
|
35
|
+
flowchart TD
|
|
36
|
+
Start([Start]) --> A{Does it add functionality?}
|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
A -- "yes" --> F[feat:]
|
|
39
|
+
A -- "no" --> B{Does it fix functionality?}
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
feat!: remove deprecated API
|
|
41
|
+
B -- "yes" --> X[fix:]
|
|
42
|
+
B -- "no" --> C{Is it work in progress?}
|
|
51
43
|
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
C -- "yes" --> W[wip:]
|
|
45
|
+
C -- "no" --> D[Choose best: docs, ci, style, chore, etc.]
|
|
54
46
|
|
|
55
|
-
|
|
47
|
+
W --> E{Is it a breaking change?}
|
|
48
|
+
F --> E
|
|
49
|
+
X --> E
|
|
50
|
+
D --> E
|
|
51
|
+
|
|
52
|
+
E -- "no" --> Z([Commit])
|
|
53
|
+
E -- "yes" --> G[Add ! to type/scope or BREAKING CHANGE: in body]
|
|
54
|
+
G --> Z
|
|
56
55
|
```
|
|
57
56
|
|
|
58
|
-
|
|
57
|
+
### Quick Decision Guide
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
1. **Adds new functionality?** → `feat:`
|
|
60
|
+
2. **Fixes broken functionality?** → `fix:`
|
|
61
|
+
3. **Work in progress?** → `wip:` (not included in releases)
|
|
62
|
+
4. **Otherwise?** → Choose the most appropriate:
|
|
63
|
+
- `docs:` — Documentation changes
|
|
64
|
+
- `ci:` — CI/CD changes
|
|
65
|
+
- `style:` — Code style (formatting, whitespace)
|
|
66
|
+
- `chore:` — Maintenance tasks
|
|
67
|
+
- `test:` — Test changes
|
|
68
|
+
- `refactor:` — Code refactoring
|
|
69
|
+
- `perf:` — Performance improvements
|
|
70
|
+
- `build:` — Build system changes
|
|
71
|
+
- `revert:` — Revert previous commits
|
|
72
|
+
5. **Breaking change?** → Add `!` after type/scope or include `BREAKING CHANGE:` in body
|
|
61
73
|
|
|
62
|
-
###
|
|
74
|
+
### Examples
|
|
63
75
|
|
|
64
76
|
```bash
|
|
77
|
+
# Adds functionality
|
|
65
78
|
feat: add user authentication
|
|
66
|
-
feat(auth):
|
|
67
|
-
feat(api): add rate limiting endpoint
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Fixes
|
|
79
|
+
feat(auth): add OAuth2 support
|
|
71
80
|
|
|
72
|
-
|
|
73
|
-
fix: resolve
|
|
74
|
-
fix(
|
|
75
|
-
fix(ui): correct button alignment on mobile
|
|
76
|
-
```
|
|
81
|
+
# Fixes functionality
|
|
82
|
+
fix: resolve login validation error
|
|
83
|
+
fix(api): handle timeout errors
|
|
77
84
|
|
|
78
|
-
|
|
85
|
+
# Work in progress
|
|
86
|
+
wip: implement user authentication
|
|
79
87
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
# Other types
|
|
89
|
+
docs: update API reference
|
|
90
|
+
ci: update GitHub Actions workflow
|
|
91
|
+
style: format code with prettier
|
|
92
|
+
chore: update dependencies
|
|
84
93
|
|
|
85
|
-
|
|
94
|
+
# Breaking changes
|
|
95
|
+
feat!: remove deprecated API endpoints
|
|
96
|
+
feat: change response format
|
|
86
97
|
|
|
87
|
-
|
|
88
|
-
refactor: simplify authentication logic
|
|
89
|
-
refactor(api): extract validation middleware
|
|
98
|
+
BREAKING CHANGE: Response now uses camelCase
|
|
90
99
|
```
|
|
91
100
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
feat!: remove v1 API endpoints
|
|
96
|
-
feat(auth)!: change token format to JWT
|
|
101
|
+
---
|
|
97
102
|
|
|
98
|
-
|
|
103
|
+
## Commit Types and Version Impact
|
|
99
104
|
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
| Type | Description | 0.x.x | 1.0.0+ |
|
|
106
|
+
|------|-------------|--------|-------|
|
|
107
|
+
| BREAKING CHANGE | Changes that break backward compatibility <br> (e.g., removed APIs, changed function signatures, modified response formats) | Minor | Major |
|
|
108
|
+
| `feat` | New features | Minor | Minor |
|
|
109
|
+
| `fix` | Bug fixes | Patch | Patch |
|
|
110
|
+
| | Any other type of commit | None | None |
|
|
102
111
|
|
|
103
|
-
|
|
112
|
+
When multiple commits exist, the highest priority wins.
|
|
104
113
|
|
|
105
|
-
|
|
106
|
-
docs: update installation guide
|
|
107
|
-
docs(api): add authentication examples
|
|
108
|
-
docs(readme): improve getting started section
|
|
109
|
-
```
|
|
114
|
+
### Breaking Changes
|
|
110
115
|
|
|
111
|
-
|
|
116
|
+
Breaking changes trigger a major version bump (or minor for 0.x.x):
|
|
112
117
|
|
|
113
118
|
```bash
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
chore: update development dependencies
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Version Bump Priority
|
|
122
|
-
|
|
123
|
-
When multiple commits exist, the highest priority wins:
|
|
124
|
-
|
|
125
|
-
1. **Breaking changes** → Major (or Minor for 0.x.x)
|
|
126
|
-
2. **Features** → Minor
|
|
127
|
-
3. **Fixes** → Patch
|
|
128
|
-
4. **Everything else** → No bump
|
|
119
|
+
# Using ! suffix
|
|
120
|
+
feat!: remove deprecated API
|
|
129
121
|
|
|
130
|
-
|
|
122
|
+
# Using footer
|
|
123
|
+
feat: change response format
|
|
131
124
|
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
feat: add new dashboard
|
|
135
|
-
fix: resolve login bug
|
|
136
|
-
docs: update README
|
|
125
|
+
BREAKING CHANGE: Response now uses camelCase
|
|
137
126
|
```
|
|
138
127
|
|
|
139
|
-
Result: **Minor bump** (feat has highest priority)
|
|
140
|
-
|
|
141
128
|
---
|
|
142
129
|
|
|
143
130
|
## Release Notes Generation
|
|
@@ -162,6 +149,8 @@ v1.2.4
|
|
|
162
149
|
- update API reference
|
|
163
150
|
```
|
|
164
151
|
|
|
152
|
+
Chore commits are omitted from release notes unless they include a breaking change.
|
|
153
|
+
|
|
165
154
|
### Breaking Changes in Notes
|
|
166
155
|
|
|
167
156
|
Breaking changes are highlighted:
|
|
@@ -174,16 +163,6 @@ v2.0.0
|
|
|
174
163
|
- BREAKING: change authentication flow
|
|
175
164
|
```
|
|
176
165
|
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Skip Release
|
|
180
|
-
|
|
181
|
-
Use `[skip release]` to prevent version bump:
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
chore(deps): bump jest to 29.0.0 [skip release]
|
|
185
|
-
docs: internal notes [skip release]
|
|
186
|
-
```
|
|
187
166
|
|
|
188
167
|
---
|
|
189
168
|
|
|
@@ -192,13 +171,12 @@ docs: internal notes [skip release]
|
|
|
192
171
|
Commits not following the format:
|
|
193
172
|
- Trigger **no bump** by default
|
|
194
173
|
- Appear under "Other changes" in release notes
|
|
195
|
-
- Use `[skip release]` to prevent bump
|
|
196
174
|
|
|
197
175
|
---
|
|
198
176
|
|
|
199
177
|
## Best Practices
|
|
200
178
|
|
|
201
|
-
|
|
179
|
+
1. Use Clear Types
|
|
202
180
|
|
|
203
181
|
```bash
|
|
204
182
|
# ✅ Correct type
|
|
@@ -210,31 +188,20 @@ fix: add login feature # Should be feat
|
|
|
210
188
|
feat: fix crash # Should be fix
|
|
211
189
|
```
|
|
212
190
|
|
|
213
|
-
### 2. Add Meaningful Scopes
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
# ✅ Helpful scope
|
|
217
|
-
feat(auth): add OAuth2 support
|
|
218
|
-
fix(api): handle timeout errors
|
|
219
|
-
|
|
220
|
-
# ✅ Also fine without scope
|
|
221
|
-
feat: add OAuth2 support
|
|
222
|
-
fix: handle timeout errors
|
|
223
|
-
```
|
|
224
191
|
|
|
225
|
-
|
|
192
|
+
2. Write Clear Descriptions
|
|
226
193
|
|
|
227
194
|
```bash
|
|
228
195
|
# ✅ Clear and specific
|
|
229
|
-
feat
|
|
230
|
-
fix
|
|
196
|
+
feat: add two-factor authentication via SMS
|
|
197
|
+
fix: prevent timeout on uploads larger than 100MB
|
|
231
198
|
|
|
232
199
|
# ❌ Vague
|
|
233
200
|
feat: add 2fa
|
|
234
201
|
fix: fix timeout
|
|
235
202
|
```
|
|
236
203
|
|
|
237
|
-
|
|
204
|
+
3. Mark Breaking Changes
|
|
238
205
|
|
|
239
206
|
```bash
|
|
240
207
|
# ✅ Properly marked
|
|
@@ -244,7 +211,7 @@ feat!: remove deprecated endpoints
|
|
|
244
211
|
feat: remove deprecated endpoints
|
|
245
212
|
```
|
|
246
213
|
|
|
247
|
-
|
|
214
|
+
4. Use Present Tense
|
|
248
215
|
|
|
249
216
|
```bash
|
|
250
217
|
# ✅ Present tense
|
|
@@ -254,23 +221,17 @@ feat: add user authentication
|
|
|
254
221
|
feat: added user authentication
|
|
255
222
|
```
|
|
256
223
|
|
|
257
|
-
|
|
224
|
+
5. Add Meaningful Scopes when applicable
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# ✅ Helpful scope
|
|
228
|
+
feat(auth): add OAuth2 support
|
|
229
|
+
fix(api): handle timeout errors
|
|
258
230
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
- [feat](./conventional-commits/type-feat.md) — Features
|
|
264
|
-
- [fix](./conventional-commits/type-fix.md) — Bug fixes
|
|
265
|
-
- [perf](./conventional-commits/type-perf.md) — Performance
|
|
266
|
-
- [refactor](./conventional-commits/type-refactor.md) — Refactoring
|
|
267
|
-
- [build](./conventional-commits/type-build.md) — Build system
|
|
268
|
-
- [ci](./conventional-commits/type-ci.md) — CI/CD
|
|
269
|
-
- [test](./conventional-commits/type-test.md) — Tests
|
|
270
|
-
- [docs](./conventional-commits/type-docs.md) — Documentation
|
|
271
|
-
- [style](./conventional-commits/type-style.md) — Code style
|
|
272
|
-
- [chore](./conventional-commits/type-chore.md) — Maintenance
|
|
273
|
-
- [revert](./conventional-commits/type-revert.md) — Reverts
|
|
231
|
+
# ✅ Also fine without scope
|
|
232
|
+
feat: add OAuth2 support
|
|
233
|
+
fix: handle timeout errors
|
|
234
|
+
```
|
|
274
235
|
|
|
275
236
|
---
|
|
276
237
|
|
package/package.json
CHANGED
package/src/utils.js
CHANGED
|
@@ -72,7 +72,7 @@ function getCurrentBranch() {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
// Conventional commit type configuration
|
|
75
|
-
const TYPE_ORDER = ['feat', 'fix', 'perf', 'refactor', 'style', 'test', 'build', 'ci', 'docs', '
|
|
75
|
+
const TYPE_ORDER = ['feat', 'fix', 'perf', 'refactor', 'style', 'test', 'build', 'ci', 'docs', 'revert'];
|
|
76
76
|
const SEMVER_PATTERN = /^v(\d+)\.(\d+)\.(\d+)(-[a-zA-Z0-9.-]+)?$/;
|
|
77
77
|
|
|
78
78
|
// Friendly header names for changelog
|
|
@@ -86,7 +86,6 @@ const TYPE_HEADERS = {
|
|
|
86
86
|
docs: 'Documentation:',
|
|
87
87
|
build: 'Build:',
|
|
88
88
|
ci: 'CI:',
|
|
89
|
-
chore: 'Chores:',
|
|
90
89
|
revert: 'Reverts:',
|
|
91
90
|
};
|
|
92
91
|
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Build System (`build`)
|
|
2
|
-
|
|
3
|
-
Changes that affect the build tooling or dependencies.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- Dependency updates
|
|
7
|
-
- Lockfile changes
|
|
8
|
-
- Dockerfile modifications
|
|
9
|
-
- Build script updates
|
|
10
|
-
- Compiler configurations
|
|
11
|
-
- Bundler settings
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Runtime code changes
|
|
15
|
-
- CI-only configuration
|
|
16
|
-
|
|
17
|
-
**Examples**:
|
|
18
|
-
```text
|
|
19
|
-
build(deps): update React to version 18
|
|
20
|
-
build(docker): optimize Docker image layers
|
|
21
|
-
build(webpack): configure code splitting
|
|
22
|
-
build(npm): update package-lock.json
|
|
23
|
-
```
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Chores (`chore`)
|
|
2
|
-
|
|
3
|
-
Routine tasks that do not affect source behavior or tests.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- Repository housekeeping
|
|
7
|
-
- License file updates
|
|
8
|
-
- Issue template changes
|
|
9
|
-
- File renames without behavior change
|
|
10
|
-
- Git configuration
|
|
11
|
-
- Development environment setup
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Dependency changes
|
|
15
|
-
- Build system modifications
|
|
16
|
-
- Code formatting
|
|
17
|
-
|
|
18
|
-
**Examples**:
|
|
19
|
-
```text
|
|
20
|
-
chore: update .gitignore patterns
|
|
21
|
-
chore: add issue templates
|
|
22
|
-
chore: reorganize project structure
|
|
23
|
-
chore: update development setup instructions
|
|
24
|
-
```
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# CI/CD (`ci`)
|
|
2
|
-
|
|
3
|
-
Changes to continuous integration configuration and automation. They usually do not affect source behavior, if they do, they must be marked as ! or add a BREAKING FIX footer.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- Pipeline definitions
|
|
7
|
-
- Job configurations
|
|
8
|
-
- Cache settings
|
|
9
|
-
- CI scripts
|
|
10
|
-
- Deployment automation
|
|
11
|
-
- Test configurations
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Build tooling that affects local builds
|
|
15
|
-
- Application code changes
|
|
16
|
-
|
|
17
|
-
**Examples**:
|
|
18
|
-
```text
|
|
19
|
-
ci(gitlab): add deployment job for staging
|
|
20
|
-
ci(docker): configure multi-stage builds
|
|
21
|
-
ci(tests): add integration test suite
|
|
22
|
-
ci(deploy): automate production deployments
|
|
23
|
-
```
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Documentation (`docs`)
|
|
2
|
-
|
|
3
|
-
Documentation-only changes.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- README updates
|
|
7
|
-
- API documentation
|
|
8
|
-
- Code examples
|
|
9
|
-
- Architecture decision records (ADRs)
|
|
10
|
-
- Inline code comments
|
|
11
|
-
- User guides
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Code changes that affect behavior
|
|
15
|
-
- Configuration changes
|
|
16
|
-
|
|
17
|
-
**Examples**:
|
|
18
|
-
```text
|
|
19
|
-
docs: update installation instructions
|
|
20
|
-
docs(api): add endpoint documentation
|
|
21
|
-
docs: add troubleshooting guide
|
|
22
|
-
docs: update contributing guidelines
|
|
23
|
-
```
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Features (`feat`)
|
|
2
|
-
|
|
3
|
-
Introduces new user- or API-facing capabilities without removing existing behavior.
|
|
4
|
-
|
|
5
|
-
## Examples
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
feat(api) add user authentication endpoint
|
|
9
|
-
feat(cli): implement --dry-run flag for deployments
|
|
10
|
-
feat(ui): add dark mode toggle
|
|
11
|
-
feat(auth): support OAuth2 login flow
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Use for
|
|
15
|
-
|
|
16
|
-
- New endpoints or API methods
|
|
17
|
-
- CLI commands and options
|
|
18
|
-
- Configuration options
|
|
19
|
-
- UI components and features
|
|
20
|
-
- Additive database migrations
|
|
21
|
-
- New functionality
|
|
22
|
-
|
|
23
|
-
## Avoid for
|
|
24
|
-
|
|
25
|
-
- Internal-only refactors
|
|
26
|
-
- Performance tweaks that don't add capability
|
|
27
|
-
- Bug fixes
|
|
28
|
-
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Bug Fixes (`fix`)
|
|
2
|
-
|
|
3
|
-
Corrects faulty behavior, regressions, crashes, data corruption, or incorrect outputs.
|
|
4
|
-
|
|
5
|
-
## Examples
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
fix(auth): handle empty refresh token gracefully
|
|
9
|
-
fix(api): correct null pointer exception in user lookup
|
|
10
|
-
fix(ui): resolve button click event not firing
|
|
11
|
-
fix(db): fix transaction rollback on connection failure
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Use for
|
|
15
|
-
|
|
16
|
-
- Logic errors and bugs
|
|
17
|
-
- Off-by-one fixes
|
|
18
|
-
- Null handling improvements
|
|
19
|
-
- Race condition fixes
|
|
20
|
-
- Flaky behavior resolution
|
|
21
|
-
- Data validation fixes
|
|
22
|
-
|
|
23
|
-
## Avoid for
|
|
24
|
-
|
|
25
|
-
- Refactors that don't change behavior
|
|
26
|
-
- Performance improvements
|
|
27
|
-
- New features
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Performance (`perf`)
|
|
2
|
-
|
|
3
|
-
Makes the system faster or leaner without changing public behavior or semantics.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- Algorithmic improvements
|
|
7
|
-
- Caching implementations
|
|
8
|
-
- Reduced memory allocations
|
|
9
|
-
- Optimized database queries
|
|
10
|
-
- I/O batching
|
|
11
|
-
- Performance optimizations
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Feature additions
|
|
15
|
-
- Bug fixes
|
|
16
|
-
- Refactoring
|
|
17
|
-
|
|
18
|
-
**Examples**:
|
|
19
|
-
```text
|
|
20
|
-
perf(cache): implement Redis caching for user sessions
|
|
21
|
-
perf(db): optimize user query with proper indexing
|
|
22
|
-
perf(api): batch database writes to reduce latency
|
|
23
|
-
perf(ui): lazy load images for better page performance
|
|
24
|
-
```
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Refactors (`refactor`)
|
|
2
|
-
|
|
3
|
-
Internal code changes that do not alter external behavior; improves structure, readability, or maintainability.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- Code reorganization
|
|
7
|
-
- Function extraction
|
|
8
|
-
- Module restructuring
|
|
9
|
-
- Technical debt reduction
|
|
10
|
-
- Code cleanup
|
|
11
|
-
- Renaming variables/functions
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Behavior changes
|
|
15
|
-
- New features
|
|
16
|
-
- Bug fixes
|
|
17
|
-
|
|
18
|
-
**Examples**:
|
|
19
|
-
```text
|
|
20
|
-
refactor(auth): extract authentication logic into service
|
|
21
|
-
refactor(api): split monolithic controller into modules
|
|
22
|
-
refactor(ui): reorganize component hierarchy
|
|
23
|
-
refactor(db): normalize database schema
|
|
24
|
-
```
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Reverts (`revert`)
|
|
2
|
-
|
|
3
|
-
Reverts a previous commit.
|
|
4
|
-
|
|
5
|
-
## Examples
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
revert: feat(api): add user authentication endpoint
|
|
9
|
-
revert: fix(auth): handle empty refresh token gracefully
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Use for
|
|
13
|
-
|
|
14
|
-
- Explicit rollbacks
|
|
15
|
-
- Undoing problematic changes
|
|
16
|
-
- Reverting breaking changes
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Code Style (`style`)
|
|
2
|
-
|
|
3
|
-
Non-functional changes that do not affect the meaning of code.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- Code formatting
|
|
7
|
-
- Whitespace changes
|
|
8
|
-
- Linter fixes
|
|
9
|
-
- Import reordering
|
|
10
|
-
- Code style compliance
|
|
11
|
-
- Prettier/ESLint fixes
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Refactoring
|
|
15
|
-
- Behavior changes
|
|
16
|
-
- Bug fixes
|
|
17
|
-
|
|
18
|
-
**Examples**:
|
|
19
|
-
```text
|
|
20
|
-
style: apply Prettier formatting
|
|
21
|
-
style: fix ESLint warnings
|
|
22
|
-
style: reorder imports alphabetically
|
|
23
|
-
style: fix trailing whitespace
|
|
24
|
-
```
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Tests (`test`)
|
|
2
|
-
|
|
3
|
-
Adds or updates tests without changing runtime behavior.
|
|
4
|
-
|
|
5
|
-
**Use for**:
|
|
6
|
-
- New unit tests
|
|
7
|
-
- Integration test additions
|
|
8
|
-
- Test fixture updates
|
|
9
|
-
- Test refactoring
|
|
10
|
-
- Test coverage improvements
|
|
11
|
-
- End-to-end test additions
|
|
12
|
-
|
|
13
|
-
**Avoid for**:
|
|
14
|
-
- Bug fixes
|
|
15
|
-
- Feature additions
|
|
16
|
-
- Behavior changes
|
|
17
|
-
|
|
18
|
-
**Examples**:
|
|
19
|
-
```text
|
|
20
|
-
test(api): add unit tests for user service
|
|
21
|
-
test(ui): add integration tests for login flow
|
|
22
|
-
test(db): add database migration tests
|
|
23
|
-
test(auth): add OAuth2 flow tests
|
|
24
|
-
```
|