Управление релизами
Канонические правила версионирования и выпуска продукта.
Источник истины версии
- Файл
VERSIONв корне репозитория. - Git tag формата
vX.Y.Z. CHANGELOG.mdв формате Keep a Changelog.
Все три артефакта должны быть согласованы.
Политика версионирования
Используется SemVer:
- MAJOR — breaking change в пользовательских контрактах или критичных интеграциях.
- MINOR — новая функциональность без breaking change.
- PATCH — исправления и безопасные внутренние изменения без нового поведения контракта.
До 1.0.0 допускается более быстрый темп изменений, но breaking changes всё равно обязаны фиксироваться явно в changelog и ADR/схемах.
Политика changelog
CHANGELOG.mdведётся по Keep a Changelog.- Есть секция
Unreleased. - Пользовательски значимые изменения обязаны попадать в changelog в момент разработки, а не задним числом.
- История релизов хранится в changelog, а не в versioned копиях документации.
Политика коммитов
Для автоматизации release notes используются Conventional Commits:
featfixrefactordocscibuildtestchore
Процесс релиза
- Обновить документацию и схемы в том же MR, что и код.
- Актуализировать
CHANGELOG.md(Unreleased). - Перед релизом установить новую версию в
VERSION. - Зафиксировать release section в
CHANGELOG.md. - Создать git tag
vX.Y.Z. - GitLab tag pipeline валидирует версию, генерирует release notes и создаёт GitLab Release.
Что не делаем
- Не ведём параллельные changelog-файлы по сервисам без отдельного ADR.
- Не храним
README-v2.md,release-notes-final.mdи прочие versioned документы. - Не считаем git tag достаточным без обновлённых
VERSIONиCHANGELOG.md.