Из Discourse 3.2: добавление суффикса -dev к бета-версиям в активной разработке

В ветке tests-passed, начиная с версии 3.2.0.beta1-dev, номера версий ядра Discourse будут включать суффикс -dev, чтобы указать, что это не финальные «релизные» версии бета-версий. Этот суффикс не отображается в интерфейсе, поэтому это техническая деталь, которая не повлияет на подавляющее большинство пользователей.

Технические подробности ниже:


В серии бета-версий для Discourse 3.1 и ниже наша стратегия версионирования заключалась в том, чтобы «выпускать» бета-версию, а затем оставлять номер версии в tests-passed без изменений до следующего релиза бета-версии. Это приводило к нескольким проблемам:

  1. При попытке указать версию, такая версия, как 3.1.0.beta2, могла относиться к сотням возможных точек во времени. Это особенно проблематично при попытке точно определить совместимость через файлы .discourse-compatibility.

  2. После выпуска основной версии нам приходилось немедленно «выпускать» 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.

31 лайк

Он отображается на странице /admin… но поиск этой темы успокоил меня.

1 лайк

Если даже нумерация версий настолько сложна (как для назначения, так и для понимания пользователями вроде меня), насколько же сложной должна быть разработка самого программного обеспечения!!!

Потратив около 15 минут на всё это: бета-версии, стабильные, разработочные, прошедшие тесты, обратное перенесение изменений — я наконец сдался.

Чёрт возьми! Пусть мой сайт продолжает отображать «Dev»!!