開発:Moodleバージョン

提供:MoodleDocs
2022年11月16日 (水) 15:08時点におけるMitsuhiro Yoshida (トーク | 投稿記録)による版
移動先:案内検索

作成中です - Mitsuhiro Yoshida (トーク)

Moodleバージョンおよびブランチ

Moodleのバージョニングスキームの理解により、私たちのリポジトリからあなたのコードを取得する際に役立ちます (例 ja:アップグレード)。正しいバージョンを知ることは私たちの トラッカへのバグ報告時にも有用です。

Schema of Moodle source code branches, versions and maturity levels


メジャおよびマイナバージョン

Moodleのバージョン番号は1.9.11または2.0.2のようにドットで区切られた3つの数字で構成されています。最初の2つの数字は1.9や2.0のように「メジャーバージョン」を表します。3番目の数字は同じメジャーバージョン内の「マイナバージョン」を区別するものです。新しいメジャーバージョンがリリースされた場合、マイナバージョンが0 (ゼロ) に設定されて開始します。つまり、Moodle 2.0.1はMoodle 2.0.0の最初のマイナバージョンということになります。

一般的にMoodle HQチームは2つの最新メジャーバージョンを保守しています (例外としてMoodle 1.9はより長くサポートされています)。

バージョンおよびブランチ

Moodleの開発者はソースコード管理 (SCM) システム Git をコードの変更履歴追跡のために使用しています。多くのSCMと同様にGitにおける変更の履歴はブランチと呼ばれるもので表現されます。ブランチはソースコードの変更点のラベル付けされたシーケンスと考えることができます。

Moodleの各メジャーバージョンにはブランチが作成されます。すべてのMoodle 1.9バージョンはMOODLE_19_STABLEブランチから、すべてのMoodle 2.0バージョンはMOODLE_20_STABLEブランチから提供されています。また、masterと呼ばれるメイン開発ブランチがあり、次の将来のバージョンのための変更を保持しています。現時点ではmasterブランチの変更内容はMoodle 2.1リリースに含まれる予定です。

リリース

バージョン2.0以降、Moodleは約半年ごとの新しいメジャーバージョンのリリースを目標としています。スケジュールについては ロードマップ ページをご覧ください。

マイナバージョンは2ヶ月ごとにリリースされます。バグおよびセキュリティ問題の両方が修正されています。詳細および情報に関してリリース (英語)ページをご覧ください。

2つのリリースの間にMoodle HQチームは最新の安定版へのアップデートを公開します。これらのアップデートは毎週、通常は木曜日に公開されます。これらは「ウィークリービルド」と呼ばれ、バージョンの小さな増分および 20200723 といった構築日により識別されます。 これはウィークリービルドがリリースされた時のYYYYMMDDの形式のタイムスタンプです。これらのウィークリービルドにはプラス記号の付いたバージョン番号が付けられています。つまり、3.9.1+ は 3.9.1 のマイナリリースを拡張したウィークリービルドであることを意味します。

ソースコード成熟度

Moodleのライフサイクルの中でコードブランチはいくつかの成熟度レベルを通過します。

  • 最初のうちはブランチは「アルファ」状態であるとみなされます。この期間中、ブランチに新しい機能が追加されます。APIおよびデータベースの構造も必要に応じて変更される可能性があります。これらのバージョンは何も保証されないため、主に開発者向けです (例えばこのバージョンはインストールまたはアップグレードができるかもしれないし、できないかもしれません)。
  • ブランチに新しい機能を追加しないと決定された場合 (いわゆる機能凍結)、「ベータ」成熟レベルに到達します。そして、開発者はテスト、バグフィックス、ブランチの安定化に注力します。
  • 既知の致命的なバグやブロッカーバグがすべて修正されて、しばらくのテスト実施後も新しいバグが報告されない場合、そのブランチのプレビュー版をリリース候補と呼んでリリースできるようになります。最初のリリース候補版 (RC1) が公開された時点で「リリース候補」の成熟度に到達します。この間、2.1RC1、2.1RC2、2.1RC3等、いくつかのRCバージョンが公表される場合があります。
  • 最後に新しいメジャーバージョンがリリースされて、このブランチは「安定版」の成熟度に達します。今後、このブランチではデータベース構造およびAPIは変更されません。対応するMOODLE_xx_STABLEの作成後、マイナバージョンおよびウィークリビルドはそこから作成されます。

バージョンナンバ

各プラグインのversion.phpファイルではプラグインが動作するために必要なMoodleの最小バージョンを指定できます。例えば以下のようになります:

$plugin->version = 2011080200;
$plugin->requires = 2011070101;

各リリースに関連するバージョンナンバに関してリリースページをご覧ください。

コアでバージョンナンバをインクリメントする方法

Moodleのコアにおいて私たちがmasterからブランチを作成する場合、バージョンナンバもブランチに入れます。つまり、安定版ブランチのバージョンナンバはmaster (またはより高いブランチバージョン) より高くはならないということです。

バージョンナンバは次のように構成されます: YYYYMMDDRR.XX

  • YYYYMMDDはブランチポイントの日付です。masterの場合、ブランチは発生していないため、現在の日付に設定されるべきです。それ以外の場合は変更すべきではありません (そのままにしておきます)。
  • RRはリリースインクリメントです。これは1つのブランチまたは1日 (masterの場合) の変更に対する増分カウンタです。
  • XX はマイクロインクリメントです。この「少量インクリメント」は安定版ブランチで99以上のアップグレードステップ (RRインクリメント) が可能かもしれないことに私たちが気付いた後に導入されました。これはメインのバージョン番号ファイルでのみ使用される傾向があります。

安定板ブランチのルール

  • マイクロインクリメント」(.XX) が存在する場合
    • 開発者は「マイクロインクリメント」「XX」のみインクリメントする必要があります。
    • 統合チームはポイントリリース間の分岐に「RR」 を使用するよう留保します。
  • マイクロインクリメント」(.XX) が存在しない場合
    • 「RR」をインクリメントしてください。

マスタのルール

  • あなたはバージョン番号全体を現在の日付にインクリメントする必要があります。
  • そのため、2013年2月6日には次のバージョン番号が設定されます。2013020600.00

なぜ私たちはバージョンをブランチ (分岐) するのか

以下の問題のシナリオを想像してみてください:

  1. Moodle 2.4リリース後、mod_forumはバージョン2012120300に設定される。
  2. マスタのみで「Eloyアップデート」はアップグレード段階でDBフィールドを落としてmoodleのバージョンを2013010100に設定する。
  3. 2.4.1およびmaster でDanはケイパビリティ定義の問題を修正して、両方のブランチのバージョンを201301020に設定する (注意: なんてことだ! 将来の2.4.x 全体のブランチの日付を間違って変えてしまった!)。
  4. Moodle 2.5がリリースされてmod_forumはバージョン2013060100に設定されます。
  5. リリース後、Helenは彼女のMoodleをMoodle 2.4.1から2.5へアップデートします。

Danがステップ3 で 2.4.xのバージョンを2013010200に変更したことの意味はEloyのステップ2からのアップグレードが実行されないことを意味します。'これは非常にまずい!

STABLEとmasterの間に変更がないのは理解できましたが、バージョン番号を同じにしても良いですか? I know that there are no changes between STABLE and master, can I set the version number as the same?

Not for core plugins, sorry. There are too many developers working on the same code and it prevents accidents if we avoid doing this for core. 申し訳ございません、コアプラグインには適用しないでください。同じコードで作業している開発者が多過ぎるため、コア用に適用しない方が事故を防げます。

関連情報