Home/Developer, Code & Web Engineering Tools/Semantic Release & Git Conventional Commit Builder

Semantic Release & Git Conventional Commit Builder

Construct, validate, and format standardized Conventional Commits (v1.0.0) with automated SemVer release impact calculation and instant Git CLI terminal commands.

Commit Configurator

Quick Presets:

Introduces a new user-facing feature or API capability to the codebase.

Noun specifying module affected.

Header: 42/72 chars
Imperative mood ("add" not "added"), lowercase, no trailing period.
Appends ! & BREAKING CHANGE:

Output: Closes: #102, #244

GitHub co-author commit attribution.

Semantic Versioning Evaluation

Spec: v1.0.0
Release Impact
MINOR
Target Version Shift1.4.2 → 1.5.0
Changelog SectionFeatures
Formatted Conventional Commit
feat: short description in imperative mood
Ready-to-Run Git CLI Command
git commit -m "feat: short description in imperative mood"
Convention Compliance Checklist
Valid Conventional Commit type prefix
Subject strictly avoids trailing period
Empty blank line separating header & body
Header length <= 72 characters

Architectural Foundations: The Conventional Commits Specification

The Conventional Commits specification creates a formal structural syntax on top of standard Git commit messages. Modeled originally after the AngularJS commit conventions, it standardizes repository logs so that both humans and automated CI/CD release orchestrators can immediately deduce the scope, intent, and semantic severity of code changes. To evaluate release tag differences or test npm range satisfiability against your bumped versions, you can pair this tool with our SemVer Version Calculator.

Imperative Syntax

The subject must start in the imperative mood ("add feature" instead of "added feature"). This accurately mirrors native Git patch directives like git revert and matches standard commit conventions across Linux and Kubernetes.

Automated Changelogs

Utilities like Semantic Release and Release Please parse commit trees from the last tag, categorizing features and fixes automatically into a polished CHANGELOG.md without manual developer curation.

Machine-Parseable SemVer

By coupling type prefixes with SemVer increments, automated continuous deployment pipelines can calculate whether to ship a patch, minor, or major version to npm, PyPI, or Docker Hub during production merges.

Conventional Commits Formal Structural Anatomy

Every Conventional Commit conforms to the standardized structural grammar:

<type>[optional scope]: <description> [optional body - motivation, rationale, architecture context] [optional footer(s) - BREAKING CHANGE:, Closes: #issue, Co-authored-by:]

Commit Type Semantics & Automated SemVer Mapping Matrix

The table below illustrates how the Conventional Commits specification maps directly to automated release managers such as Semantic Release, Lerna, and Google Release Please:

Commit TypeSemVer IncrementGenerated Changelog SectionTriggers Public Release?Typical Enterprise Scope
featMINORFeaturesYesNew API endpoints, front-end views, capabilities
fixPATCHBug FixesYesSecurity patches, race conditions, null checks
BREAKING CHANGE / !MAJORBreaking ChangesYesDeprecated endpoint removal, contract changes
perfPATCHPerformance ImprovementsYesDatabase query indexing, algorithmic speedups
docsNoneDocumentation (Optional)NoMarkdown files, JSDoc strings, developer setup
refactorPATCH (Configurable)Code RefactoringConfigurableCode cleanup without changing external behavior
chore, ci, test, styleNoneHidden / MaintenanceNoGitHub Actions, linter configs, test coverage

Automating Team Compliance: husky & commitlint Configuration

To maintain strict git hygiene across engineering teams, implement automated git pre-commit hooks using husky and @commitlint/cli. Along with excluding untracked build artifacts via our Gitignore Template Generator, commit validation prevents broken history and poorly formatted messages from entering pull requests:

1. Install Dependencies

npm install -D husky @commitlint/cli @commitlint/config-conventional

Adds the standard Conventional Commits rule engine and git hook orchestrator to your package dependencies.

2. Create commitlint.config.js

module.exports = {
  extends: ['@commitlint/config-conventional'],
};

Activates default Conventional Commits rules including imperative mood, max header length, and valid type prefixes.

Frequently Asked Questions (FAQ)

What is the Conventional Commits specification?

The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an explicit set of rules for creating a human-readable, machine-parseable commit history that integrates directly with automated SemVer versioning and changelog generators.

How does this builder determine SemVer release bumps (Major, Minor, Patch)?

According to the Semantic Release standard, any commit containing an exclamation mark (!) or a 'BREAKING CHANGE:' footer triggers a MAJOR release. Commits of type 'feat' trigger a MINOR bump, while types like 'fix', 'perf', 'refactor', and 'build' trigger a PATCH bump. Documentation, CI, chore, and style commits typically produce no automated release.

Why is the commit header subject line recommended to be 50 to 72 characters?

Git log tools, GitHub web interfaces, terminal git log formatters, and email patch notifications truncate lines exceeding 72 characters. Keeping the header at or below 50-72 characters ensures readability across all developer terminal viewports.

What is the imperative mood and why should commit subjects use it?

The imperative mood uses phrasing that commands an action (e.g., "add feature" instead of "added feature" or "adds feature"). This matches the native phrasing conventions generated by git merge and git revert commands.

Does this tool transmit commit messages or code to an external server?

No. All formatting, linting, syntax generation, and clipboard actions occur entirely client-side inside your browser runtime. No code, tokens, or commit metadata are transmitted across the network.

Related & Complementary Utilities

Explore more privacy-first client-side web tools.