Политика версионирования и релизов
Lumi использует две основные ветки для разработки и релизов: stable и dev.
Ветки
stable
Ветка stable содержит код, готовый к релизу. Каждый push в эту ветку считается стабильным релизом.
Стабильные версии используют обычный формат семантического версионирования:
MAJOR.MINOR.PATCHПримеры:
1.6.0
1.6.1
1.7.0Патч-релизы используются для обычных небольших исправлений и мелких обновлений:
1.6.0 -> 1.6.1Минорные релизы используются для более крупных обновлений всего проекта:
1.6.8 -> 1.7.0dev
Ветка dev содержит последнюю разрабатываемую версию проекта.
Версии, собранные из dev, всегда используют текущую версию проекта с суффиксом -SNAPSHOT:
{current project version}-SNAPSHOTПример:
1.6.0-SNAPSHOTЭто означает, что сборки из dev не считаются финальными релизами и могут содержать экспериментальные или незавершенные изменения.
Maven-репозитории
Проект публикуется в два Maven-репозитория в зависимости от исходной ветки.
Репозиторий релизов
Стабильные версии из ветки stable публикуются в:
https://repo.lumi.su/releasesЗдесь должны публиковаться только финальные релизные версии без суффикса -SNAPSHOT.
Пример:
1.6.0
1.6.1
1.7.0Репозиторий снапшотов
Разрабатываемые версии из ветки dev публикуются в:
https://repo.lumi.su/snapshotsЭтот репозиторий всегда содержит самые свежие разрабатываемые сборки с суффиксом -SNAPSHOT.
Пример:
1.6.0-SNAPSHOTGitHub Releases
Каждый push в ветку stable создает новый GitHub Release для текущей стабильной версии.
Каждый push в stable или dev также обновляет релиз Latest Build. Этот релиз используется для предоставления самых свежих артефактов сборки из активной разрабатываемой или стабильной ветки.
Pull Requests
Pull request’ы с экспериментальными изменениями, новыми функциями или некритичными обновлениями должны быть направлены в ветку dev.
Pull request’ы должны быть направлены в ветку stable только если они содержат критические исправления, которые нужно выпустить как можно скорее.