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

24 lines
1.0 KiB
Markdown

# 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.