Версионирование BirdLense Hub
Схема версий
Используется Semantic Versioning: MAJOR.MINOR.PATCH.
| Часть | Когда увеличивать |
|---|---|
| MAJOR | Несовместимые изменения API или конфигурации |
| MINOR | Новая функциональность с обратной совместимостью |
| PATCH | Исправления ошибок, мелкие улучшения |
Примеры:
- 0.1.0 → 0.1.1 — исправление бага
- 0.1.1 → 0.2.0 — новая фича (например, новый тип триггера)
- 1.0.0 → 2.0.0 — ломающее изменение (например, смена формата конфига)
Где хранится версия
| Файл | Назначение |
|---|---|
VERSION |
Единый источник истины (корень репозитория) |
app/ui/package.json |
Версия UI-пакета |
app/web/openapi.yaml |
Версия API в OpenAPI |
При релизе обновлять все перечисленные ниже места одной и той же строкой версии.
Чеклист перед коммитом релиза (#120):
- Корневой
VERSION app/ui/package.json→ полеversionapp/web/openapi.yaml→info.versionmkdocs.yml→extra.site_version(и при необходимостиoverrides/main.html— баннер)CHANGELOG.md— секция[Unreleased]/ новый заголовок версии
Проверка одной командой из корня репозитория:
python3 scripts/check-docs-version.py
Скрипт сверяет VERSION с mkdocs.yml, package.json и openapi.yaml (в CI — перед сборкой MkDocs). Видимый баннер задаётся в overrides/main.html (блок announce); ключ theme.announcement в YAML Material не используется.
Релизы и теги
- Перед релизом: обновить
VERSION,package.json,openapi.yaml,CHANGELOG.md; закрыть/обновить Issues и доску Roadmap (ROADMAP.ru.md § Отчётность, корневой CONTRIBUTING.ru.md). - Коммит:
git add -A && git commit -m "Release v0.1.0" - Тег:
git tag -a v0.1.0 -m "Release v0.1.0" - Пуш:
git push && git push origin v0.1.0 - GitHub Release: создать Release из тега, вставить заметки из CHANGELOG
Что запускает GitHub Actions после релиза
- Docker: docker-publish.yml —
main+ опубликованный Release →latest+ semver-тег образа. - Сайт: docs-pages.yml — деплой Pages только с
main(push по путям илиworkflow_dispatch). После merge релиза этого достаточно; с тега не деплоим (правила окруженияgithub-pages).
Wiki (опционально): WIKI_AUTOMATION.
CHANGELOG
Формат Keep a Changelog.
Секции: - Added — новая функциональность - Changed — изменения в существующем поведении - Deprecated — устаревшее (будет удалено) - Removed — удалённая функциональность - Fixed — исправления багов - Security — уязвимости
Обновления
- Минорные (0.x.y): обновление через
make deployилиmake pull. Конфиг и данные сохраняются. - Мажорные: см. заметки к релизу — могут потребоваться миграции.