Files
bible/rules/patterns/module-versioning/contract.md
2026-04-02 13:48:36 +03:00

1.0 KiB

Contract: Module Versioning

Version: 1.0

Purpose

Единое правило версионирования внутренних слоёв приложения: плагины, парсеры, API-клиенты, адаптеры и прочие условные модули.

Модули — это логические слои внутри одного репозитория, не отдельные пакеты.

See README.md for examples and the decision tree.

Rules

  • Module version format is N.M.
  • New modules start at 1.0. 0.x is not used.
  • Any functional change bumps the major version and resets minor to 0.
  • A narrow bugfix that does not change behavior or interface bumps minor by 0.1.
  • Store the version in one canonical place only: code constant, module document header, or config field.
  • If the module is tagged separately, use <module-name>/v<N.M>.
  • Do not create a tag without updating the module's canonical version first.
  • When a commit changes a module, update that module's version in the same commit.