24 lines
1.0 KiB
Markdown
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.
|