Skip to main content

Overview

Version

Stable

Synchronize project versions across supported files using configurable versioning strategies.

Commandcusty version

Category

Versioning

Quick Command

custy version <subcommand>

versionsyncsemverpep440

Overview​

The Version command synchronizes version information throughout your project.

Rather than creating Git tags directly, this command updates version-related files so that every configured version reference remains consistent.

Custy supports multiple versioning strategies and automatically adapts the synchronization process based on the detected project type.


Version Command Features

Core capabilities provided by Custy's Version command.

workflowVersion Synchronization

Keep project version references consistent across supported files.

Synchronizes version information across supported project files so every version reference remains consistent.

layerMultiple Strategies

Support for SemVer, PEP 440, Commitizen, Date, and Git Count.

Generate version numbers using the strategy that best matches your project's workflow and ecosystem.

compareProject Detection

Automatically detects the target project type.

Custy detects Python and Node.js projects to determine which version files should be updated.

dependencyAutomatic Conversion

Convert compatible version formats when required.

When appropriate, Custy converts compatible version formats to keep project files aligned with ecosystem conventions.

Available Subcommands

Currently the Version command provides one subcommand:

  • update — synchronize project version references.

Additional subcommands may be introduced in future Custy releases.


Supported Versioning Strategies

Custy currently supports:

  • Semantic Versioning (SemVer)
  • PEP 440
  • Commitizen
  • Date-based versioning
  • Git Count versioning

Each strategy generates version numbers differently while sharing the same version synchronization workflow.


Project File Synchronization

Depending on the detected project type, Custy updates the appropriate project files.

For example:

Python projects

  • app/__version__.py
  • pyproject.toml
  • .cz.toml

Node.js projects

  • package.json
  • package-lock.json
  • npm-shrinkwrap.json

This allows a single version value to remain consistent throughout the project.



Workflow Integration

Version synchronization can be executed independently:

custy version update

Larger public profiles perform their required version stages internally, but the standalone public form remains custy version update. The internal apply_version profile name is not accepted by the current public Run argument.


Configuration

Default versioning behavior can be configured through config.toml.

Common settings include:

  • versioning strategy
  • bump level
  • version file location

Command-line arguments always take precedence over configuration values.


What's Next?

Continue with the Requirements page to learn about the project setup and files required before synchronizing versions.