В ветке tests-passed, начиная с версии 3.2.0.beta1-dev, номера версий ядра Discourse будут включать суффикс -dev, чтобы указать, что это не финальные «релизные» версии бета-версий. Этот суффикс не отображается в интерфейсе, поэтому это техническая деталь, которая не повлияет на подавляющее большинство пользователей.
Технические подробности ниже:
В серии бета-версий для Discourse 3.1 и ниже наша стратегия версионирования заключалась в том, чтобы «выпускать» бета-версию, а затем оставлять номер версии в tests-passed без изменений до следующего релиза бета-версии. Это приводило к нескольким проблемам:
-
При попытке указать версию, такая версия, как
3.1.0.beta2, могла относиться к сотням возможных точек во времени. Это особенно проблематично при попытке точно определить совместимость через файлы .discourse-compatibility. -
После выпуска основной версии нам приходилось немедленно «выпускать» beta1 следующей версии, чтобы продолжить разработку в tests-passed. Именно поэтому у нас были избыточные релизы beta1.
Чтобы улучшить ситуацию, мы теперь будем добавлять суффикс -dev к номеру версии в процессе разработки бета-версии. Например, цикл разработки 3.2 начинается с 3.2.0.beta1-dev. Когда она будет готова к выпуску, она получит метку 3.2.0.beta1, после чего мы немедленно сделаем следующий коммит для начала разработки 3.2.0.beta2-dev.
В дальнейшем мы планируем, чтобы «основные релизы» выглядели примерно так:
%%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%%
gitGraph
branch stable order: 1
commit tag: "v3.1.8"
checkout main
commit id: "bump to v3.2.0.beta17" tag: "v3.2.0.beta17" type: HIGHLIGHT
commit id: "bump to v3.2.0.beta18-dev"
commit
commit id: "bump to v3.2.0.beta18" tag: "v3.2.0.beta18" type: HIGHLIGHT
checkout stable
merge main id: "merge"
commit id: "bump to v3.2.0" type: HIGHLIGHT tag: "v3.2.0"
checkout main
commit id: "bump to v3.3.0.beta1-dev"
«Минорные релизы» будут выглядеть примерно так:
%%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%%
gitGraph
branch stable order: 1
commit tag: "v3.1.1"
checkout main
commit id: "bump to v3.2.0.beta2-dev"
commit id: "... разработка beta2 ..."
commit id: "bump to v3.2.0.beta2" tag: "v3.2.0.beta2" type: HIGHLIGHT
checkout stable
commit id: "backports"
commit id: "bump to v3.1.2" type: HIGHLIGHT tag: "v3.1.2"
checkout main
commit id: "bump to v3.2.0.beta3-dev"
(main и tests-passed в этих диаграммах можно считать эквивалентными)
Эти процессы зафиксированы в некоторых rake-задачах, которые можно найти в файле version_bump.rake.