@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.
@@ -1,234 +1,281 @@
1
1
  # Conventional Commits
2
2
 
3
- This document describes the conventional commit format used in AgileFlow and how it affects version bumping.
3
+ AgileFlow uses [Conventional Commits](https://www.conventionalcommits.org/) to automatically determine version bumps and generate release notes.
4
4
 
5
- ## Version Bump Logic
5
+ ## Commit Format
6
6
 
7
- AgileFlow automatically determines version bumps based on conventional commit messages using the following logic:
7
+ ```
8
+ type(scope): description
9
+
10
+ [optional body]
11
+
12
+ [optional footer]
13
+ ```
14
+
15
+ ### Components
8
16
 
9
- ### For versions 1.0.0 and above:
10
- - **Major version bump (X.0.0)**: Breaking changes (`!` suffix or `BREAKING CHANGE:` in footer)
11
- - **Minor version bump (0.X.0)**: New features (`feat:`)
12
- - **Patch version bump (0.0.X)**: Bug fixes, performance improvements, build system changes, CI changes, refactors, reverts, tests, or dependency updates
13
- - **No version bump**: Documentation, style changes, or chores (unless they affect build artifacts)
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
- ### For pre-1.0.0 versions (0.x.x):
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
- | Commit Type | Description | (>1.0.0) | (0.x.x) |
23
- |-------------|-------------|----------|---------|
24
- | [feat](./conventional-commits/type-feat.md) | New features | **Minor** | **Patch** |
25
- | [fix](./conventional-commits/type-fix.md) | Bug fixes | **Patch** | **Patch** |
26
- | [perf](./conventional-commits/type-perf.md) | Performance improvements | **Patch** | **Patch** |
27
- | [build](./conventional-commits/type-build.md) | Build system changes | **Patch** | **Patch** |
28
- | [ci](./conventional-commits/type-ci.md) | CI/CD changes | **Patch** | **Patch** |
29
- | [refactor](./conventional-commits/type-refactor.md) | Code refactoring | **Patch** | **Patch** |
30
- | [revert](./conventional-commits/type-revert.md) | Revert previous commits | **Patch** | **Patch** |
31
- | [test](./conventional-commits/type-test.md) | Test additions/changes | **Patch** | **Patch** |
32
- | [docs](./conventional-commits/type-docs.md) | Documentation changes | **None** | **None** |
33
- | [style](./conventional-commits/type-style.md) | Code style changes | **None** | **None** |
34
- | [chore](./conventional-commits/type-chore.md) | Maintenance tasks | **None** | **None** |
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
- ### Dependency Updates
44
+ ### Breaking Changes
37
45
 
38
- Dependency updates are handled consistently based on their impact:
46
+ Breaking changes trigger a major version bump (or minor for 0.x.x):
39
47
 
40
- - **`build(deps):`** - Always triggers patch version bump (affects build artifacts)
41
- - **`chore(deps):`** - Triggers patch version bump if it affects runtime dependencies, no bump for dev/test-only dependencies
48
+ ```bash
49
+ # Using ! suffix
50
+ feat!: remove deprecated API
42
51
 
43
- #### Examples:
44
- ```
45
- build(deps): upgrade React to 18.2.0 # Patch bump (affects runtime)
46
- chore(deps): bump lodash to 4.17.21 # Patch bump (runtime dependency)
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
- ## Breaking Changes
58
+ ---
51
59
 
52
- Breaking changes can be indicated in two ways:
60
+ ## Examples
61
+
62
+ ### Features
53
63
 
54
- 1. **Exclamation mark suffix**: `feat!: breaking change` or `feat(scope)!: breaking change`
55
- 2. **BREAKING CHANGE in footer**: Any commit with `BREAKING CHANGE:` in the commit footer/trailer section
64
+ ```bash
65
+ feat: add user authentication
66
+ feat(auth): implement OAuth2 login
67
+ feat(api): add rate limiting endpoint
68
+ ```
56
69
 
57
- **Important**: Breaking change indicators in the commit body are not supported and may cause false positives. Always use the footer section.
70
+ ### Fixes
58
71
 
59
- ### Breaking Change Examples:
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
- feat(auth)!: change authentication flow
78
+ ### Performance
64
79
 
65
- fix!: modify database schema
80
+ ```bash
81
+ perf: optimize database queries
82
+ perf(cache): implement Redis connection pooling
83
+ ```
84
+
85
+ ### Refactoring
66
86
 
67
- feat: new feature
68
- BREAKING CHANGE: The /api/v1/users endpoint has been removed
87
+ ```bash
88
+ refactor: simplify authentication logic
89
+ refactor(api): extract validation middleware
69
90
  ```
70
91
 
71
- ## Commit Message Format
92
+ ### Breaking Changes
72
93
 
73
- The standard format for conventional commits is:
94
+ ```bash
95
+ feat!: remove v1 API endpoints
96
+ feat(auth)!: change token format to JWT
74
97
 
75
- ```text
76
- type[!]?(scope)?: description
98
+ fix: update database schema
77
99
 
78
- [optional body]
100
+ BREAKING CHANGE: User table now requires email field
101
+ ```
102
+
103
+ ### Documentation
79
104
 
80
- [optional footer(s)]
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
- ### Format Components:
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
- ## Non-Conventional Commits
113
+ ```bash
114
+ docs: update README
115
+ style: format code with prettier
116
+ chore: update development dependencies
117
+ ```
92
118
 
93
- Commits that don't follow the conventional format are handled as follows:
119
+ ---
120
+
121
+ ## Version Bump Priority
94
122
 
95
- - **Version bumping**: Non-conventional commits trigger **patch version bumps by default** unless they contain `[skip release]`
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
- ### Skip Release Convention
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
- Use `[skip release]` suffix to explicitly prevent version bumping:
130
+ ### Example
102
131
 
132
+ If commits since last version include:
103
133
  ```
104
- docs: update internal notes [skip release]
105
- chore: update local config [skip release]
106
- test: add debug logging [skip release]
134
+ feat: add new dashboard
135
+ fix: resolve login bug
136
+ docs: update README
107
137
  ```
108
138
 
109
- ## Release Note Generation
139
+ Result: **Minor bump** (feat has highest priority)
110
140
 
111
- AgileFlow automatically generates organized release notes by grouping commits by type. The system follows this specific order:
141
+ ---
112
142
 
113
- 1. **Features** - New functionality
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
- ### Breaking Change Indicators
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
- v2.0.0
148
+ v1.2.4
132
149
 
133
- Features:
134
- - BREAKING: auth: change authentication flow
135
- - BREAKING: remove deprecated API endpoints
150
+ ### Features
151
+ - add user dashboard
152
+ - implement API rate limiting
136
153
 
137
- Bug fixes:
138
- - BREAKING: modify database schema
139
- ```
154
+ ### Bug fixes
155
+ - resolve login validation error
156
+ - fix timeout on large uploads
140
157
 
141
- ## Examples
158
+ ### Performance improvements
159
+ - optimize database queries
142
160
 
143
- ### Major Version Bump (1.0.0+)
161
+ ### Documentation
162
+ - update API reference
144
163
  ```
145
- feat!: remove deprecated API endpoints
146
164
 
147
- feat(auth)!: change authentication flow
165
+ ### Breaking Changes in Notes
148
166
 
149
- fix!: modify database schema
150
- BREAKING CHANGE: Database schema has changed
151
- ```
167
+ Breaking changes are highlighted:
152
168
 
153
- ### Minor Version Bump
154
169
  ```
155
- feat: add new user management dashboard
156
- feat(auth): implement two-factor authentication
157
- feat(api): add user search endpoint
170
+ v2.0.0
171
+
172
+ ### Features
173
+ - BREAKING: remove deprecated API endpoints
174
+ - BREAKING: change authentication flow
158
175
  ```
159
176
 
160
- ### Patch Version Bump
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
- fix: resolve user login issue
163
- fix(auth): correct null handling in user lookup
164
- perf: optimize database queries
165
- perf(cache): improve Redis connection pooling
166
- build: update webpack to v5
167
- build(deps): upgrade React to 18.2.0
168
- ci: add GitHub Actions workflow
169
- ci(gitlab): update pipeline configuration
170
- refactor: extract common utilities
171
- refactor(auth): simplify token validation
172
- revert: "feat: add user authentication"
173
- test: add unit tests for auth module
174
- test(integration): add API endpoint tests
175
- chore(deps): bump lodash to 4.17.21
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
- ### No Version Bump
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
- docs: update API documentation
181
- docs(readme): add installation instructions
182
- style: format code with prettier
183
- style(eslint): enforce consistent formatting
184
- chore: update local configuration
185
- chore(deps): bump jest to 29.0.0 [skip release]
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
- ## Version Bump Priority
237
+ ### 4. Mark Breaking Changes
189
238
 
190
- When multiple commit types are present in the commit history since the last version, the highest priority bump is applied:
239
+ ```bash
240
+ # ✅ Properly marked
241
+ feat!: remove deprecated endpoints
191
242
 
192
- 1. **Breaking changes** Major version bump (or minor for 0.x.x)
193
- 2. **Features** Minor version bump (or patch for 0.x.x)
194
- 3. **Fixes, Performance, Build, CI, Refactor, Revert, Test, Dependencies** → Patch version bump
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
- **Non-conventional commits** trigger patch version bumps by default unless they contain `[skip release]`.
247
+ ### 5. Use Present Tense
198
248
 
199
- This ensures semantic versioning follows the [SemVer specification](https://semver.org/).
249
+ ```bash
250
+ # ✅ Present tense
251
+ feat: add user authentication
200
252
 
201
- ## Implementation Details
253
+ # Past tense
254
+ feat: added user authentication
255
+ ```
202
256
 
203
- AgileFlow's versioning system:
257
+ ---
204
258
 
205
- - **Analyzes commit messages** since the last version tag
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
- ## Best Practices
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
- 1. **Use conventional commit types** consistently
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) - Quick start guide
232
- - [Release Management](./release-management.md) - How versions are managed
233
- - [GitLab CI Template](./gitlab-ci-template.md) - CI/CD integration
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