Discourse 3.2から:アクティブに開発中のベータ版に -dev という接尾辞を追加

tests-passed では、3.2.0.beta1-dev 以降、Discourse のコアバージョン番号に -dev サフィックスが含まれるようになり、これらがベータ版の最終的な「リリース」バージョンではないことを示します。このサフィックスは UI には表示されないため、大多数の人には影響のない技術的な問題です。

技術的な詳細については、以下を参照してください。


Discourse 3.1 以前のベータ版シリーズでは、バージョン管理戦略として、ベータ版を「リリース」し、次のベータ版リリースまで tests-passed のバージョン番号をそのままにしていました。これにはいくつかの問題がありました。

  1. バージョンを指定しようとすると、3.1.0.beta2 のようなバージョンが、数百もの異なる時点を指す可能性がありました。これは、互換性を正確に定義しようとする際に特に問題となります .discourse-compatibility ファイル経由

  2. メジャーバージョンリリース後、tests-passed での開発を継続するために、すぐに次のバージョンの beta1 を「リリース」する必要がありました。そのため、冗長な 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: "... development of 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"

(これらの図では、maintests-passed は同等と見なすことができます)

これらのプロセスは、version_bump.rake で確認できるいくつかの rake タスクにコード化されています。

「いいね!」 31

/admin ページには表示されます…しかし、このトピックを見つけたことで安心しました。

「いいね!」 1

バージョンのナンバリングだけでも(私のようなユーザーが割り当てたり理解したりするのが)こんなに複雑なら、ソフトウェア開発はどれほど複雑になるのだろうか!!!

ベータ、安定版、開発版、テスト済み、バックポートなどについて約15分費やした後、ついに諦めた。

一体どうなっているんだ!私のウェブサイトに「開発版」と表示させ続けてくれ!!