@logickernel/agileflow 0.4.0 → 0.4.2
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 +133 -211
- package/docs/README.md +39 -24
- package/docs/best-practices.md +201 -234
- package/docs/branching-strategy.md +153 -254
- package/docs/cli-reference.md +84 -64
- package/docs/configuration.md +154 -167
- package/docs/conventional-commits.md +207 -160
- package/docs/getting-started.md +162 -117
- package/docs/installation.md +244 -106
- package/docs/migration-guide.md +212 -299
- package/docs/release-management.md +195 -384
- package/docs/troubleshooting.md +276 -250
- package/docs/version-centric-cicd.md +239 -116
- package/package.json +3 -2
- package/src/utils.js +23 -6
|
@@ -1,234 +1,281 @@
|
|
|
1
1
|
# Conventional Commits
|
|
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
|
+
## Commit Format
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```
|
|
8
|
+
type(scope): description
|
|
9
|
+
|
|
10
|
+
[optional body]
|
|
11
|
+
|
|
12
|
+
[optional footer]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Components
|
|
8
16
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
| Part | Required | Description |
|
|
18
|
+
|------|----------|-------------|
|
|
19
|
+
| `type` | Yes | Type of change (feat, fix, etc.) |
|
|
20
|
+
| `scope` | No | Area affected (auth, api, ui) |
|
|
21
|
+
| `!` | No | Breaking change indicator |
|
|
22
|
+
| `description` | Yes | Short summary |
|
|
23
|
+
| `body` | No | Detailed explanation |
|
|
24
|
+
| `footer` | No | Breaking changes, issue refs |
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
- **Minor version bump (0.X.0)**: Breaking changes (`!` suffix or `BREAKING CHANGE:` in footer)
|
|
17
|
-
- **Patch version bump (0.0.X)**: New features, bug fixes, performance improvements, build system changes, CI changes, refactors, reverts, tests, or dependency updates
|
|
18
|
-
- **No version bump**: Documentation, style changes, or chores (unless they affect build artifacts)
|
|
26
|
+
---
|
|
19
27
|
|
|
20
28
|
## Commit Types and Version Impact
|
|
21
29
|
|
|
22
|
-
|
|
|
23
|
-
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
30
|
+
| Type | Description | 1.0.0+ | 0.x.x |
|
|
31
|
+
|------|-------------|--------|-------|
|
|
32
|
+
| `feat` | New features | Minor | Patch |
|
|
33
|
+
| `fix` | Bug fixes | Patch | Patch |
|
|
34
|
+
| `perf` | Performance improvements | Patch | Patch |
|
|
35
|
+
| `refactor` | Code refactoring | Patch | Patch |
|
|
36
|
+
| `build` | Build system changes | Patch | Patch |
|
|
37
|
+
| `ci` | CI/CD changes | Patch | Patch |
|
|
38
|
+
| `test` | Test changes | Patch | Patch |
|
|
39
|
+
| `revert` | Revert commits | Patch | Patch |
|
|
40
|
+
| `docs` | Documentation | None | None |
|
|
41
|
+
| `style` | Code style | None | None |
|
|
42
|
+
| `chore` | Maintenance | None | None |
|
|
35
43
|
|
|
36
|
-
###
|
|
44
|
+
### Breaking Changes
|
|
37
45
|
|
|
38
|
-
|
|
46
|
+
Breaking changes trigger a major version bump (or minor for 0.x.x):
|
|
39
47
|
|
|
40
|
-
|
|
41
|
-
|
|
48
|
+
```bash
|
|
49
|
+
# Using ! suffix
|
|
50
|
+
feat!: remove deprecated API
|
|
42
51
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
chore(deps): bump jest to 29.0.0 [skip release] # No bump (dev dependency)
|
|
52
|
+
# Using footer
|
|
53
|
+
feat: change response format
|
|
54
|
+
|
|
55
|
+
BREAKING CHANGE: Response now uses camelCase
|
|
48
56
|
```
|
|
49
57
|
|
|
50
|
-
|
|
58
|
+
---
|
|
51
59
|
|
|
52
|
-
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
### Features
|
|
53
63
|
|
|
54
|
-
|
|
55
|
-
|
|
64
|
+
```bash
|
|
65
|
+
feat: add user authentication
|
|
66
|
+
feat(auth): implement OAuth2 login
|
|
67
|
+
feat(api): add rate limiting endpoint
|
|
68
|
+
```
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
### Fixes
|
|
58
71
|
|
|
59
|
-
|
|
72
|
+
```bash
|
|
73
|
+
fix: resolve null pointer exception
|
|
74
|
+
fix(auth): handle expired tokens correctly
|
|
75
|
+
fix(ui): correct button alignment on mobile
|
|
60
76
|
```
|
|
61
|
-
feat!: remove deprecated API endpoints
|
|
62
77
|
|
|
63
|
-
|
|
78
|
+
### Performance
|
|
64
79
|
|
|
65
|
-
|
|
80
|
+
```bash
|
|
81
|
+
perf: optimize database queries
|
|
82
|
+
perf(cache): implement Redis connection pooling
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Refactoring
|
|
66
86
|
|
|
67
|
-
|
|
68
|
-
|
|
87
|
+
```bash
|
|
88
|
+
refactor: simplify authentication logic
|
|
89
|
+
refactor(api): extract validation middleware
|
|
69
90
|
```
|
|
70
91
|
|
|
71
|
-
|
|
92
|
+
### Breaking Changes
|
|
72
93
|
|
|
73
|
-
|
|
94
|
+
```bash
|
|
95
|
+
feat!: remove v1 API endpoints
|
|
96
|
+
feat(auth)!: change token format to JWT
|
|
74
97
|
|
|
75
|
-
|
|
76
|
-
type[!]?(scope)?: description
|
|
98
|
+
fix: update database schema
|
|
77
99
|
|
|
78
|
-
|
|
100
|
+
BREAKING CHANGE: User table now requires email field
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Documentation
|
|
79
104
|
|
|
80
|
-
|
|
105
|
+
```bash
|
|
106
|
+
docs: update installation guide
|
|
107
|
+
docs(api): add authentication examples
|
|
108
|
+
docs(readme): improve getting started section
|
|
81
109
|
```
|
|
82
110
|
|
|
83
|
-
###
|
|
84
|
-
- **type**: The type of change (feat, fix, perf, etc.)
|
|
85
|
-
- **!**: Optional breaking change indicator
|
|
86
|
-
- **scope**: Optional scope in parentheses (e.g., auth, api, ui)
|
|
87
|
-
- **description**: Short description of the change
|
|
88
|
-
- **body**: Optional detailed explanation
|
|
89
|
-
- **footer**: Optional footers like `BREAKING CHANGE:` or `[skip release]`
|
|
111
|
+
### No Version Bump
|
|
90
112
|
|
|
91
|
-
|
|
113
|
+
```bash
|
|
114
|
+
docs: update README
|
|
115
|
+
style: format code with prettier
|
|
116
|
+
chore: update development dependencies
|
|
117
|
+
```
|
|
92
118
|
|
|
93
|
-
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Version Bump Priority
|
|
94
122
|
|
|
95
|
-
|
|
96
|
-
- **Release notes**: They appear under "Other changes" section
|
|
97
|
-
- **Examples**: `git merge`, `git revert`, or plain text commits
|
|
123
|
+
When multiple commits exist, the highest priority wins:
|
|
98
124
|
|
|
99
|
-
|
|
125
|
+
1. **Breaking changes** → Major (or Minor for 0.x.x)
|
|
126
|
+
2. **Features** → Minor (or Patch for 0.x.x)
|
|
127
|
+
3. **Fixes, Performance, etc.** → Patch
|
|
128
|
+
4. **Docs, Style, Chore** → No bump
|
|
100
129
|
|
|
101
|
-
|
|
130
|
+
### Example
|
|
102
131
|
|
|
132
|
+
If commits since last version include:
|
|
103
133
|
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
134
|
+
feat: add new dashboard
|
|
135
|
+
fix: resolve login bug
|
|
136
|
+
docs: update README
|
|
107
137
|
```
|
|
108
138
|
|
|
109
|
-
|
|
139
|
+
Result: **Minor bump** (feat has highest priority)
|
|
110
140
|
|
|
111
|
-
|
|
141
|
+
---
|
|
112
142
|
|
|
113
|
-
|
|
114
|
-
2. **Bug fixes** - Bug resolutions
|
|
115
|
-
3. **Performance improvements** - Performance enhancements
|
|
116
|
-
4. **Refactors** - Code refactoring
|
|
117
|
-
5. **Documentation** - Documentation updates
|
|
118
|
-
6. **Build system** - Build tooling changes
|
|
119
|
-
7. **CI** - Continuous integration changes
|
|
120
|
-
8. **Chores** - Maintenance tasks
|
|
121
|
-
9. **Tests** - Test additions/changes (placed after chores as they're not user-facing)
|
|
122
|
-
10. **Code style** - Formatting and style changes
|
|
123
|
-
11. **Reverts** - Reverted changes
|
|
124
|
-
12. **Other changes** - Non-conventional commits
|
|
143
|
+
## Release Notes Generation
|
|
125
144
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
When breaking changes are detected, they are automatically prefixed with `BREAKING: ` in the release notes:
|
|
145
|
+
AgileFlow groups commits by type for release notes:
|
|
129
146
|
|
|
130
147
|
```
|
|
131
|
-
|
|
148
|
+
v1.2.4
|
|
132
149
|
|
|
133
|
-
Features
|
|
134
|
-
-
|
|
135
|
-
-
|
|
150
|
+
### Features
|
|
151
|
+
- add user dashboard
|
|
152
|
+
- implement API rate limiting
|
|
136
153
|
|
|
137
|
-
Bug fixes
|
|
138
|
-
-
|
|
139
|
-
|
|
154
|
+
### Bug fixes
|
|
155
|
+
- resolve login validation error
|
|
156
|
+
- fix timeout on large uploads
|
|
140
157
|
|
|
141
|
-
|
|
158
|
+
### Performance improvements
|
|
159
|
+
- optimize database queries
|
|
142
160
|
|
|
143
|
-
###
|
|
161
|
+
### Documentation
|
|
162
|
+
- update API reference
|
|
144
163
|
```
|
|
145
|
-
feat!: remove deprecated API endpoints
|
|
146
164
|
|
|
147
|
-
|
|
165
|
+
### Breaking Changes in Notes
|
|
148
166
|
|
|
149
|
-
|
|
150
|
-
BREAKING CHANGE: Database schema has changed
|
|
151
|
-
```
|
|
167
|
+
Breaking changes are highlighted:
|
|
152
168
|
|
|
153
|
-
### Minor Version Bump
|
|
154
169
|
```
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
170
|
+
v2.0.0
|
|
171
|
+
|
|
172
|
+
### Features
|
|
173
|
+
- BREAKING: remove deprecated API endpoints
|
|
174
|
+
- BREAKING: change authentication flow
|
|
158
175
|
```
|
|
159
176
|
|
|
160
|
-
|
|
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]
|
|
161
186
|
```
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Non-Conventional Commits
|
|
191
|
+
|
|
192
|
+
Commits not following the format:
|
|
193
|
+
- Trigger **patch bump** by default
|
|
194
|
+
- Appear under "Other changes" in release notes
|
|
195
|
+
- Use `[skip release]` to prevent bump
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Best Practices
|
|
200
|
+
|
|
201
|
+
### 1. Use Clear Types
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# ✅ Correct type
|
|
205
|
+
feat: add login feature
|
|
206
|
+
fix: resolve crash on startup
|
|
207
|
+
|
|
208
|
+
# ❌ Wrong type
|
|
209
|
+
fix: add login feature # Should be feat
|
|
210
|
+
feat: fix crash # Should be fix
|
|
176
211
|
```
|
|
177
212
|
|
|
178
|
-
###
|
|
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
|
|
179
223
|
```
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
224
|
+
|
|
225
|
+
### 3. Write Clear Descriptions
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# ✅ Clear and specific
|
|
229
|
+
feat(auth): add two-factor authentication via SMS
|
|
230
|
+
fix(api): prevent timeout on uploads larger than 100MB
|
|
231
|
+
|
|
232
|
+
# ❌ Vague
|
|
233
|
+
feat: add 2fa
|
|
234
|
+
fix: fix timeout
|
|
186
235
|
```
|
|
187
236
|
|
|
188
|
-
|
|
237
|
+
### 4. Mark Breaking Changes
|
|
189
238
|
|
|
190
|
-
|
|
239
|
+
```bash
|
|
240
|
+
# ✅ Properly marked
|
|
241
|
+
feat!: remove deprecated endpoints
|
|
191
242
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
4. **Documentation, Style, Chores** → No version bump (unless they affect build artifacts)
|
|
243
|
+
# ❌ Breaking change not marked
|
|
244
|
+
feat: remove deprecated endpoints
|
|
245
|
+
```
|
|
196
246
|
|
|
197
|
-
|
|
247
|
+
### 5. Use Present Tense
|
|
198
248
|
|
|
199
|
-
|
|
249
|
+
```bash
|
|
250
|
+
# ✅ Present tense
|
|
251
|
+
feat: add user authentication
|
|
200
252
|
|
|
201
|
-
|
|
253
|
+
# ❌ Past tense
|
|
254
|
+
feat: added user authentication
|
|
255
|
+
```
|
|
202
256
|
|
|
203
|
-
|
|
257
|
+
---
|
|
204
258
|
|
|
205
|
-
|
|
206
|
-
- **Groups changes by type** for organized release notes using the defined section order
|
|
207
|
-
- **Generates comprehensive tag messages** with categorized changes
|
|
208
|
-
- **Supports scoped commits** for better organization
|
|
209
|
-
- **Handles breaking changes** automatically with `BREAKING: ` prefix
|
|
210
|
-
- **Creates annotated tags** with detailed commit summaries
|
|
211
|
-
- **Falls back to flat list** for repositories without conventional commits
|
|
212
|
-
- **Supports metadata** in version tags (e.g., `v1.0.0-alpha.1`)
|
|
213
|
-
- **Treats non-conventional commits** as patch-level changes by default
|
|
214
|
-
- **Respects `[skip release]`** convention for explicit version control
|
|
259
|
+
## Commit Type Details
|
|
215
260
|
|
|
216
|
-
|
|
261
|
+
For detailed guidance on each type, see:
|
|
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
|
|
217
274
|
|
|
218
|
-
|
|
219
|
-
2. **Add scopes** when changes affect specific areas
|
|
220
|
-
3. **Use breaking change indicators** (`!` or `BREAKING CHANGE:` in footer) for incompatible changes
|
|
221
|
-
4. **Write clear descriptions** that explain what changed
|
|
222
|
-
5. **Keep commits focused** on single changes
|
|
223
|
-
6. **Use present tense** in commit messages ("add feature" not "added feature")
|
|
224
|
-
7. **Follow the established section order** for consistent release notes
|
|
225
|
-
8. **Use `[skip release]`** for dev/test dependencies that shouldn't trigger releases
|
|
226
|
-
9. **Place breaking changes in footer** to avoid false positives
|
|
227
|
-
10. **Group dependency updates** consistently: `build(deps)` for runtime, `chore(deps)` for maintenance
|
|
275
|
+
---
|
|
228
276
|
|
|
229
277
|
## Related Documentation
|
|
230
278
|
|
|
231
|
-
- [Getting Started](./getting-started.md)
|
|
232
|
-
- [Release Management](./release-management.md)
|
|
233
|
-
- [
|
|
234
|
-
- [Branching Strategy](./branching-strategy.md) - Development workflow
|
|
279
|
+
- [Getting Started](./getting-started.md) — Quick start
|
|
280
|
+
- [Release Management](./release-management.md) — Version management
|
|
281
|
+
- [Branching Strategy](./branching-strategy.md) — Git workflow
|