Semantic versioning
Conventional commits
- Website
- standard-version Automate versioning and CHANGELOG generation
- conventional-commits-detector
Commitizen
- GitHub
- Create committing rules for projects 🚀, auto bump versions ⬆️ and auto changelog generation 📂
- Python
- Docs
- pre-commit config
Install:
pamac install python-commitizen
cz init
In a Python project:
uv add --dev commitizen cz-conventional-gitmoji
uv run cz init
Other commitizen implementations:
- commitizen/cz-cli
- JS
- Commit helper which lets you choose between standard tags
- Last release 2024-09
- commitizen-go
- Go, last release 2022-12
Commitizen pre-commit
Linting
pre-commit hooks
- conventional-pre-commit
- Python
- 24 contributors
- commitlint-pre-commit-hook
- Uses
commitlint - 9 contributors
- Uses
Stale:
- conventional-commits-check
- Python
- Last release 2024-11
- conventional-precommit-linter
- Last release 2024-07
- conventional-pre-commits
- JS, For Husky
- Last commit 2020
Changelog management
- vandamme: Changelogs Convention
- conventional-changelog
- standard-changelog/: An opinionated approach to CHANGELOG generation using angular commit conventions.
Stale
- unleash
- Last tag 2017
- bumped
- Archived 2023
- keepachangelog
- GitHub
- Not based on Conventional commits
- Last release 2023
Automatic versioning / releasing
- semantic-release: Fully automated version management and package publishing
- python-semantic-release
- semantic-pull-requests: Let the robots take care of the semantic versioning
Tools
- pm: Project Metadata Management (Stale)
- changelogger (PHP)
using git log
see also What are some good ways to manage a changelog using Git?
git log --oneline --decorate --no-merges 0.5.0..HEAD | cut -d' ' -f2- | sed 's/^/* /'
old:
git log --pretty=%s --first-parent 0.2.2..HEAD | sed 's/^/* /g'