feat: add commitizen for automated version management #666
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implements commitizen-based version management for automated versioning and changelog generation using pure Python (no Node.js required).
What's Changed
Core Implementation
commitizen>=3.29.0dependency topyproject.tomlpyproject.toml(PEP 621, semver, incremental changelog)commitizen-check.ymlCI workflow to enforce conventional commitsrelease.ymlCI workflow for automated version bumps on merge to main.cz-config.mdwith detailed commit guidelines and examplesDocumentation
README.mdwith conventional commit formatCleanup
package.json,package-lock.json,node_modules.changeset/directoryscripts/sync_version.py(no longer needed)How It Works
For Contributors
Write commits following Conventional Commits format:
Optional: Use interactive commit helper:
For Maintainers
When commits are merged to
main:feat,fix,BREAKING CHANGEcommits since last tagpyproject.tomlautomaticallyv0.2.0)Zero manual steps - it's fully automated!
CI Workflows
commitizen-check.ymlmaincz check --rev-range origin/main..HEADrelease.ymlmaincz bump --yes --changelogif neededCommit Types & Version Bumps
featfeat: add OAuth supportfixfix: correct validationperfperf: optimize queryBREAKINGfeat!: redesign APIdocsdocs: update READMEtesttest: add unit testschorechore: update depsrefactorrefactor: simplify logicBenefits vs Changesets
✅ Pure Python: No Node.js/npm required
✅ Fully automated: Version bumps from commit messages
✅ Zero extra files: No changeset markdown files to manage
✅ Standard format: Conventional Commits is widely used
✅ Enforced by CI: Can't merge PRs with bad commit messages
✅ Less overhead: One commit command, not two steps
Testing
cz versionshows correct project version (0.1.0)pyproject.tomlvalidatedExample Workflow
Resources
🤖 Generated with Claude Code