title | theme | revealOptions | ||
---|---|---|---|---|
Commitizen | Automating release cycles |
black |
|
Automating release cycles
Santiago
origin: Argentina 🇦🇷
current: Amsterdam 🇳🇱 @ KPN
🐍 python, web, js, stuff
- History
- Release workflow
- Commitizen
- Customization
Born as a prompt to avoid remembering commit conventions
Based on the js cz-cli
conventional commits, work conventions, etc- Extendable: build your own rules
- Automatic version inference planned
- Wait, I can also generate the changelog 🤔
Built prompt
Built auto bump version
@Lee-W starting contributing more and more
@Lee-W created first autochangelog MVP
I found motivation again and finished the auto-changelog feature
🧑 Merge PR
⬇️
🤖 Bump version and generate changelog
⬇️
🤖 Push back to your branch
⬇️
🤖 Trigger deploy/release for new tag
.
├── bump-version.yml
├── publish-docs.yaml
├── pr-checks.yml
└── publish-package.yaml
PR checks
on: [pull_request]
Bump version
on:
push:
branches:
- trunk
Publish package + Documentation
on:
push:
tags:
- 'v*'
Key elements of a release
- Relevant version
- What has been introduced?
Aim for intuitiveness and sane defaults
cz init
Assists in the creation of the toml
file, with some automatic detections.
[tool.commitizen]
name = "cz_conventional_commits"
version = "0.15.3"
version_files = [
"VERSION"
]
🧪 project setup
cz commit
or cz c
🐕🦺 Assist in the creation of a commit by matching the defined rules.
Defaults: conventional commitis
🧪 development
cz changelog
Creates changelog file 📂, can target a different file name
🧪 optional
cz bump --changelog
Bumps version ⬆️ including the changelog generation 📂
🧪 CI
cz ls
➡️ list installed commit rules
cz check
➡️ validate the commit (useful for git hooks)
cz schema
➡️ show the schema of the commit rule
cz example
➡️ show an example
cz info
➡️ explain rationale behind the commit rule
- Follows SEMVER
- Calculates new tag based on the commit rules and last tag
- Has the ability to create the changelog
- Let commitizen handle it for you
- Contains information
⬇️
BREAKING CHANGES
⬇️
New stuff 🎉
⬇️
Secuuurity 🔒 and bug fixes 🐛
MAJOR.MINOR.PATCH
- We have a template for custom rules
- 2 regexs for bump (find change_type and map it to semver)
- Changelog should work by default, best if a regex is provided
Read the documentation
- Support for other config format files:
json
- Github action
- Sprint on next europython
# on an initialized git repo
cz init
git add <file>
cz c
cz bump --changelog
twitter: @santiwilly
github: woile