versioning-standards

Resolves and interprets SemVer, CalVer, PEP 440 across ecosystems for comparison and range evaluation.

4|Updated Jan 22, 2026
One-click install
npx skills add https://github.com/cc01cc/cmtx-project --skill versioning-standards
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: versioning-standards
Source: https://github.com/cc01cc/cmtx-project/tree/main/.kilo/skills-repo/develop/versioning-standards
Command: npx skills add https://github.com/cc01cc/cmtx-project --skill versioning-standards

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Consolidates and clarifies semantic versioning across ecosystems to prevent misinterpretation and incorrect upgrades.

Core Features & Use Cases

  • Supports SemVer, CalVer, and PEP 440 rule sets for parsing and comparison.
  • Provides guidance on dependency ranges (e.g., ^, ~, >=, <, ~=, ==) and mapping rules between ecosystems (SemVer to Maven, Debian, RPM, etc.).
  • Delivers a decision framework for breaking changes and bump strategies (major/minor/patch) with concrete examples.

Quick Start

Explain the applicable versioning rules for a given ecosystem and determine the correct bump type with examples.

Frequently Asked Questions about versioning-standards

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I compare semantic versions across different package ecosystems like Maven and RPM?

Semantic versioning comparison across ecosystems requires mapping rules that translate differing metadata and pre-release formats into a normalized structure. This enables accurate version evaluation and prevents incorrect upgrades when comparing Debian, RPM, or Maven packages.

What is the difference between SemVer, CalVer, and PEP 440 versioning schemes?

SemVer uses major.minor.patch numbers for API stability, CalVer uses calendar dates for release tracking, and PEP 440 handles Python-specific pre-release and epoch rules. Each scheme has distinct parsing and comparison logic for its ecosystem.

How do I interpret dependency range operators like ^, ~, and ~= in version specifications?

Dependency range operators like ^, ~, and ~= define acceptable version bounds. Caret allows updates that do not modify the left-most non-zero digit, tilde restricts patch-level updates, and ~= provides compatible release bounds based on specific ecosystem rules.

When do I need to bump the major, minor, or patch version for a breaking change?

You bump the major version for incompatible API changes, the minor version for backward-compatible new features, and the patch version for backward-compatible bug fixes. A decision framework evaluates the change impact to determine the correct bump type.

Does PEP 440 support epoch and post-release versioning for Python packages?

Yes, PEP 440 supports epoch numbering to override standard version ordering and post-release segments to indicate updates following a release. Explicit handling of these fields is required for accurate parsing and comparison within the Python ecosystem.

Why do version comparison results differ between Debian and SemVer rules?

Version comparison differs between Debian and SemVer because Debian uses a specific precedence rule for revision and epoch fields, while SemVer relies on strict major.minor.patch ordering. Cross-ecosystem mapping translates these distinct rules for accurate evaluation.