← CodeClarityLab Home
Browse by Category
+ added · updated 7d
← Back to glossary

Conventional Commits Tooling

git Intermediate

Also Known As

commitizen commitlint semantic-release standard-version

TL;DR

Automating semantic versioning and changelog generation from commit messages using commitizen, commitlint, standard-version, and semantic-release.

Explanation

Conventional Commits (feat:, fix:, chore:, BREAKING CHANGE:) enable automated tooling. commitizen: interactive CLI for writing conventional commits. commitlint: lints commit messages in CI and pre-commit hooks. standard-version: bumps version (major/minor/patch) and generates CHANGELOG.md based on commit history. semantic-release: full automation — analyses commits, bumps version, generates changelog, and publishes to npm/Packagist/GitHub Releases. PHP projects: use semantic-release with @semantic-release/changelog and @semantic-release/github. The workflow: write conventional commits → merge to main → CI auto-bumps version → CHANGELOG generated → release tagged.

Common Misconception

Conventional commits are just a style preference — they enable fully automated semantic versioning and changelog generation, removing manual release management entirely from the workflow.

Why It Matters

Manual changelog maintenance is error-prone and time-consuming — conventional commits + semantic-release automates the entire release process: correct version bump, accurate changelog, and tagged release.

Common Mistakes

  • feat: in patch releases — feat: bumps the minor version, not patch.
  • Forgetting BREAKING CHANGE in commit footer — must be in footer for major version bump.
  • Not enforcing conventions with commitlint — conventions only work if everyone follows them.
  • Running semantic-release manually — it should run only in CI to prevent manual tampering.

Code Examples

✗ Vulnerable
# Manual release process — error-prone:
# 1. Grep through commits to find what changed
# 2. Manually decide if it is major/minor/patch
# 3. Edit CHANGELOG.md by hand
# 4. Edit composer.json version by hand
# 5. Commit, tag, push
# Mistakes: wrong version, missed entries, stale changelog
✓ Fixed
# .commitlintrc.json:
{"extends": ["@commitlint/config-conventional"]}

# .releaserc.json (semantic-release):
{"branches": ["main"],
 "plugins": [
     "@semantic-release/commit-analyzer",
     "@semantic-release/release-notes-generator",
     "@semantic-release/changelog",
     "@semantic-release/github"
 ]}

# Developer writes:
# git commit -m 'feat(auth): add WebAuthn support'
# Merged to main → CI runs semantic-release:
# Detects 'feat' → bumps 1.5.0 → 1.6.0
# Generates CHANGELOG entry
# Creates GitHub Release
# Publishes to Packagist

Added 16 Mar 2026
Edited 22 Mar 2026
Views 28
Rate this term
No ratings yet
🤖 AI Guestbook educational data only
| |
Last 30 days
0 pings W 0 pings T 3 pings F 0 pings S 0 pings S 1 ping M 0 pings T 0 pings W 0 pings T 3 pings F 0 pings S 1 ping S 0 pings M 0 pings T 0 pings W 0 pings T 3 pings F 0 pings S 0 pings S 0 pings M 0 pings T 1 ping W 0 pings T 2 pings F 0 pings S 0 pings S 0 pings M 0 pings T 0 pings W 0 pings T
No pings yet today
No pings yesterday
Amazonbot 14 Perplexity 5 Google 2 Ahrefs 2 ChatGPT 1
crawler 23 crawler_json 1
DEV INTEL Tools & Severity
🟢 Low ⚙ Fix effort: Medium
⚡ Quick Fix
Review the Conventional Commits Tooling documentation and apply to your PHP project context
📦 Applies To
git web cli
🔗 Prerequisites
🔍 Detection Hints
Absence or misuse of Conventional Commits Tooling patterns
Auto-detectable: ✗ No
⚠ Related Problems
🤖 AI Agent
Confidence: Medium False Positives: Medium ✓ Auto-fixable Fix: Low Context: File

✓ schema.org compliant