About
The Conventional Commits specification is inspired by, and based heavily on, the Angular Commit Guidelines.
The first draft of this specification has been written in collaboration with some of the folks contributing to:
- conventional-changelog: a set of tools for parsing Conventional Commits messages from git histories.
- parse-commit-message: Extensible utilities for parsing, stringify and validating Conventional Commit messages.
- bumped: a tool for releasing software that makes it easy to perform actions before and after releasing a new version of your software.
- unleash: a tool for automating the software release and publishing lifecycle.
- lerna: a tool for managing monorepos, which grew out of the Babel project.
Tooling for Conventional Commits
- go-conventional-commits: A tool to parser your git commit messages into a change log message based on conventional commits specification.
- go-conventionalcommits: Full Go powers to parse conventional commits.
- go-conventional-commit: go library for parsing commit messages following the specification.
- chglog: a tool for parsing Conventional Commits messages from git histories and turning them into templateable change logs.
- fastlane-plugin: follows the specification to manage versions and generate a changelog automatically.
- commitizen/cz-cli: A Node.js tool to create commit messages following the Conventional Commits specs.
- commitizen-tools/commitizen: A tool written in Python to create commiting rules for projects, auto bump versions and auto changelog generation.
- php-commitizen: A PHP tool built to create commit messages following the Conventional Commits specs. Configurable and usable for PHP projects as a composer dependency or usable globally for non-PHP projects.
- php-conventional-changelog: a tool built to generate a changelog from a project’s committing history messages and metadata and automate versioning with Semver, following Conventional Commits specs. Configurable and usable for PHP projects as a composer dependency or usable globally for non-PHP projects.
- conventional-commits: A PHP library for creating and validating commit messages according to the Conventional Commits specification.
- sh-conventional-commits A hook that locally validates commit messages, checking if they follow the conventional commit pattern. The project also includes a shell script for generating semantic versions through conventional commits.
- commitlint: A linter to check that your commit messages meet the Conventional Commits format.
- gitlint: Git commit message linter written in Python, which can be configured to enforce Conventional Commits format.
- conform: a tool that can be used to enforce policies on git repositories, including Conventional Commits.
- detect-next-version: Parse, detect and get more metadata about given Conventional Commits.
- recommended-bump: Calculates the recommended version bump based on given Conventional Commits.
- git-commits-since: Get all (raw) commits since period or (by default) from latest git SemVer tag, plus plugins support.
- standard-version: Automatic versioning and CHANGELOG management, using GitHub’s new squash button and the recommended Conventional Commits workflow.
- Conventional Commit: provides extensible context and template-based completion, and inspections, for Conventional Commits inside the VCS Commit dialog. Available for all JetBrains IDEs.
- Git Commit Template: Add Conventional Commits support to JetBrains Editors (IntelliJ IDEA, PyCharm, PhpStorm…).
- commitsar: Go tool for checking if commits on branch are Conventional Commits compliant. Comes with Docker image for CI uses.
- semantic-release: A tool that automates the whole package release workflow including: determining the next version number, generating the release notes and publishing the package.
- python-semantic-release: Automatic Semantic Versioning for Python projects. This is a Python implementation of the semantic-release for Node.js.
- VSCode Conventional Commits: Add Conventional Commits supports for VSCode.
- Pyhist: A Python utility to automagically update the package version from the git history and generate the Changelog.
- git-mkver: A tool to automatically apply Semantic Versioning to git repositories based on Conventional Commits.
- git-semver: A cli tool for calculating the next semantic version according to latest Conventional Commits and printing changelogs to stdout.
- Conventional Commits Next Version: A tooling and language agnostic utility to calculate the next semantic version based on the Conventional Commits since the prior version. Supports monorepos.
- change: A tool for generating and updating a changelog using Conventional Commits.
- Turbogit: A command line tool to help you follow Conventional Commits flow.
- sv4git: A command line tool (CLI) to validate commit messages, bump versions, create tags and generate changelogs.
- Versio: A monorepo-compatible tool that updates version numbers based on conventional commits and project dependencies. It can generate tags and changelogs, too.
- Git Changelog Lib: A Java library that supports rendering a changelog given a context derived from Git. Supports conventional commits with Handlebars Helpers. It is used in:
- Cocogitto: Cocogitto is a set of cli tools for the conventional commits and semver specifications.
- Conventional Commits Linter: A tooling and language agnostic Git commit linter for the Conventional Commits specification.
- Uplift: Semantic versioning the easy way. Powered by Conventional Commits. Built for use with CI.
- Monopub: Conventional Commits-driven release tool for monorepo releases, versioning & changelog generation
- cz-git: A customizable CLI tool for generating commit messages following Conventional Commits.
Projects Using Conventional Commits
- NFPM: NFPM is Not FPM - a simple deb, rpm and apk packager written in Go.
- yargs: everyone’s favorite pirate themed command line argument parser.
- istanbuljs: a collection of open-source tools and libraries for adding test coverage to your JavaScript tests.
- uPortal-home and uPortal-application-framework: Optional supplemental user interface enhancing Apereo uPortal.
- massive.js: A data access library for Node and PostgreSQL.
- electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS.
- scroll-utility: A simple to use scroll utility package for centering elements, and smooth animations
- Blaze UI: Framework-free open source UI toolkit.
- Monica: An open source personal relationship management system.
- mhy: A zero-config, out-of-the-box, multi-purpose toolbox and development environment.
- @tandil/diffparse: Simple parser for Diff files (unified diff format).
- @tandil/diffsplit: Easy split of .diff & .patch into its files.
- @thi.ng/umbrella: Broadly scoped ecosystem & monorepo of ~185 TypeScript projects for general purpose, functional, data driven development
- yii2-basic-firestarter: 🔥 An enhanced Yii2 app template.
- dcyou/resume: 😎 Template to easily and quickly create your online CV.
- Nintex Forms: Easily create dynamic online forms to capture and submit accurate and current data.
- Tina CMS: An open source toolkit for building front-end content-management into your website.
- Belajarpython Open source Indonesian python programming tutorial site.
- Uno Platform: Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
- Jenkins X: Jenkins X provides pipeline automation, built-in GitOps, and preview environments to help teams collaborate and accelerate their software delivery at any scale.
- GearLock: Custom Recovery Replacement for Android-x86.
- Changeloguru: Auto-generate changelog from conventional commits, written in Go.
- freeCodeCamp: A nonprofit community that helps you learn to code by building projects.
want your project on this list? send a pull request.