Versioning
Versioning
Stable
Separate version selection, artifact preparation, project-file synchronization, and Git tagging.
Command
custy versionCategory
Core Concepts
Quick Command
custy version COMMAND [OPTIONS]Overviewâ
Custy's version lifecycle has separate responsibilities. A strategy determines the next release value, preparation makes that value available to later steps, application synchronizes project files, and a tag operation records the release in Git.
Supported Strategies
The selected strategy answers one question: what should the next version value be?
Version Sources
Semantic Versioning
Use
major.minor.patch releases and familiar prerelease or build metadata.PEP 440
Use the Python packaging version format understood by Python build and distribution tools.
Commitizen
Derive the next value from a Conventional Commits and Commitizen workflow.
Date
Generate a calendar-oriented release value from the current date.
Git Count
Derive an increasing value from repository history rather than a manually maintained sequence.
Version Lifecycle
From Strategy to Release Tag
1
Resolve the strategy
Select SemVer, PEP 440, Commitizen, Date, or Git Count from CLI input or project configuration.
2
Generate the next value
Apply the chosen strategy and any patch, minor, major, or automatic bump behavior.
3
Prepare release context
Make the resolved value available to artifact, message, changelog, and synchronization steps.
4
Apply project versions
Write the compatible representation to configured project version files.
5
Create a Git tag
After review and validation, a separate tag step records the release in repository history.
Cross-Ecosystem Synchronization
The release value and the representation written to a project file do not always have identical syntax. Custy's version bridge supports basic conversion between SemVer and PEP 440 so one release context can update projects that use different ecosystem conventions.
Choose the Right Layer
- Use the Version command when you need version-specific generation or synchronization behavior.
- Use the Tag command when you already understand the version and need a local Git reference.
- Use the Release profile when version preparation, changelog generation, commit, tag, and push should occur as one ordered pipeline.
- Use dry-run mode and inspect affected project files before applying a release value normally.