Skip to main content

Versioning

Versioning

Stable

Separate version selection, artifact preparation, project-file synchronization, and Git tagging.

Commandcusty version

Category

Core Concepts

Quick Command

custy version COMMAND [OPTIONS]

version strategiessynchronizationrelease tags

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.
current
2
Generate the next value
Apply the chosen strategy and any patch, minor, major, or automatic bump behavior.
pending
3
Prepare release context
Make the resolved value available to artifact, message, changelog, and synchronization steps.
pending
4
Apply project versions
Write the compatible representation to configured project version files.
pending
5
Create a Git tag
After review and validation, a separate tag step records the release in repository history.
pending

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.

Continue