@@ -259,7 +259,39 @@ When user input contains "marco" (case insensitive):
259259- Platform-specific CI testing (excludes emulated archs)
260260
261261### Release Process
262- - ** Semantic release** with emoji commits
262+ - ** Semantic release** with conventional commits
263+ - ** git-cliff** generates changelog entries and GitHub release notes
263264- ** GitHub Actions** for build/test/publish
264265- ** Binary wheels** for multiple platforms
265- - Version sync between pyproject.toml and _ version.py
266+ - Version sync between pyproject.toml and _ version.py
267+
268+ ## Conventional Commits & Version Bumps
269+
270+ ** CRITICAL: The commit TYPE controls version bumps, NOT the scope.**
271+
272+ Semantic-release uses the angular parser which determines version bumps
273+ based on commit type prefix:
274+
275+ ### Types that trigger version bumps:
276+ - ` feat: ` → ** minor** bump (new feature)
277+ - ` fix: ` → ** patch** bump (bug fix)
278+ - ` perf: ` → ** patch** bump (performance improvement)
279+
280+ ### Types that do NOT trigger version bumps:
281+ - ` ci: ` → no bump (CI/CD changes)
282+ - ` build: ` → no bump (build system changes)
283+ - ` chore: ` → no bump (maintenance)
284+ - ` docs: ` → no bump (documentation)
285+ - ` style: ` → no bump (formatting)
286+ - ` refactor: ` → no bump (code restructuring)
287+ - ` test: ` → no bump (test changes)
288+
289+ ### Common Mistake to Avoid:
290+ ```
291+ ❌ fix(ci): update workflow → triggers patch bump (type is "fix")
292+ ✅ ci(publish): update workflow → no bump (type is "ci")
293+ ```
294+
295+ The scope in parentheses is for categorization/changelog only - it does
296+ NOT affect whether a version bump occurs. Always use the correct TYPE
297+ for CI/build/chore work to avoid accidental releases.
0 commit comments