バージョン ライフサイクル

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Version lifecycle and the translation is 98% complete.

Other languages:
Deutsch • ‎English • ‎Lëtzebuergesch • ‎Nederlands • ‎dansk • ‎español • ‎français • ‎italiano • ‎magyar • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎suomi • ‎čeština • ‎русский • ‎українська • ‎العربية • ‎தமிழ் • ‎සිංහල • ‎中文 • ‎日本語 • ‎한국어

MediaWiki は「継続的なインテグレーション」の開発モデルを実践しており、そのソフトウェアの変更は定期的にウィキメディアのウェブサイト (ウィキペディアなど) に反映されて実際に使用できるようになります。

理論上は、新たなメジャーリリースは四半期ごとに行われ、各リリースのブランチは最初のリリースから1年間はセキュリティ上の更新を受け付けます。時間的に制約があるため、またコードベースの迅速なリファクタリングのために、それより古くなったリリースについては対応できませんし、ライフサイクルを過ぎたリリースにはセキュリティ上あるいは重要な変更でも適用しません。

リリースマネージャーの Tim Starling をはじめとする MediaWiki の開発者は、ウィキ運用者がmediawiki-announceメーリングリストに登録することを強く推奨します。これに参加するとすべてのリリースの告知を受け取れるため、自分のウィキを確実に最新のバージョンのソフトウェアで実行し続けることができます。同じアナウンスが mediawiki-lwikitech-l の各メーリングリストにも投稿されます。

バージョンとライフサイクル終了時期

バージョン 状態 リリース ライフサイクル終了
1.35.x (LTS) 将来のバージョン 2020年6月(2020-06) 2023年6月(2023-06)
1.34.x 将来のバージョン 2019年11月(2019-11) 2020年11月(2020-11)
1.33.x 将来のバージョン 2019年6月(2019-06) 2020年6月(2020-06)
1.32.x 現行バージョン 2019-01-11 2020年1月(2020-01)
1.31.x (LTS) 旧バージョン 2018-06-14 2021年6月(2021-06)
1.30.x 廃止されたバージョン 2017-12-12 2018年12月(2018-12)
1.29.x 廃止されたバージョン 2017-07-13 2018年9月(2018-09)
1.28.x 廃止されたバージョン 2016-11-28 2017年11月(2017-11)
1.27.x (LTS) 旧バージョン 2016-06-28 2019年6月(2019-06)
1.26.x 廃止されたバージョン 2015-11-25 2016年11月(2016-11)

上記の表で「廃止されたバージョン」としているバージョンでは、列挙されていないバージョンと同様に、セキュリティ上の修正を受けられません。致命的なセキュリティ上の脆弱性や、その他の重大な不具合を抱えているおそれがあり、データの消失や破壊もありえます。リリース マネージャーは、実稼働環境では、この表の「現在のバージョン」と「LTS」のいずれかのバージョンのみを使用することを強く推奨します

リリースの方針

  • それぞれのポイント リリースは、国際化ファイルの更新だけではなく、あらゆるバグ修正を含んでいます。 新しい機能が過去のリリースにバックポートされることはなく、通常は必ずしも拡張機能のバンドルあるいは外装 を含んでいるわけではません。
  • メジャー リリース6か月ごとに公開されます。
  • 長期間サポート リリース (LTS: Long Term Support) は、2年ごとに公開されます。LTS のサポート期間は 1 年ずつ重なっています。例えば、1.23 のサポートは2017年5月まででした。1.27 は、LTS に移行する準備ができて実際に移行する年の、前年にリリースされました。
  • リリースノートは変更点を確認するためのものである、という原則に基づいて継続されます。ボランティアのプロジェクトであるがゆえに、次の6~12か月でどうなる予定かについては言及できません。
  • リリースノートの問題を回避するため、次の LTS では、前回の LTS に関連する新しい拡張機能の一覧を、その展開の6ヶ月前に予告します。 具体的には、1.23 のユーザーに対して 1.26 展開時の前後に 1.27 で発生する変更を予告することになります。

バージョンのタイムライン

Special:MyLanguage/MediaWiki 1.17Special:MyLanguage/MediaWiki 1.18Special:MyLanguage/MediaWiki 1.19Special:MyLanguage/MediaWiki 1.20Special:MyLanguage/MediaWiki 1.21Special:MyLanguage/MediaWiki 1.22Special:MyLanguage/MediaWiki 1.23Special:MyLanguage/MediaWiki 1.24Special:MyLanguage/MediaWiki 1.25Special:MyLanguage/MediaWiki 1.26Special:MyLanguage/MediaWiki 1.27Special:MyLanguage/MediaWiki 1.28Special:MyLanguage/MediaWiki 1.29Special:MyLanguage/MediaWiki 1.30Special:MyLanguage/MediaWiki 1.31Special:MyLanguage/MediaWiki 1.32Special:MyLanguage/MediaWiki 1.33
MediaWiki のリリース タイムライン
  •   アルファ版
  •   開発期間 (ブランチポイント以降)
  •   安定版リリース
  •   長期間サポート リリース

リリースのタイムライン

このタイムラインには、新バージョンのリリースに向けて完了すべき手順をスケジュール表としてまとめてあります。略号は実際のリリース日をT、それまでの残りの週数は-#を付けました (「リリース日まで残りX週」の意味)。

相対的な日程 作業内容
T - 7 1週間後にリリースブランチを作成すると発表してください。進行中の機能で完成を目指すものはすべて、それまでに組み込むように関係者に呼びかけます。Phabricator に

「MW-X.XX-release」を作成。

T - 6 コアおよびすべての拡張機能のブランチを Gerrit 内に作成します。
T - 5 X.XX-rc.0 タグを適用し、初回のリリース候補をリリースします。
T - 4 あらゆるバグ報告を収集し、それらをメーリングリスト内で要約します。
T - 3 X.XX-rc.1 タグを付けセカンドリリースの候補をリリース。新しい拡張機能のターボール追加を推薦したいなら、この時点ですべて書き込みます。 この時点以降、拡張機能は変更されません。
T - 2 新しいバグ報告、マージ修正を集め、無作為に新しく加わった未完の機能をバックアウト、X.XX-rc.2 タグを付けサードリリースの候補をリリースしてください。
T - 1 前の段階を繰り返し、タグ X.XX-rc.final を使用し、リリースします。 この時点以降、バックポートは受理されません。
T リポジトリに X.XX のタグを付けて、リリースします。

拡張機能のライフサイクルの管理

MediaWiki のインストレーションのほとんどは、多数の拡張機能を使用しています (ウィキメディアのウィキでは大抵、拡張機能は約 140 個に達します)。拡張機能の保守管理においてバグ修正、適切なバージョンの選択は課題であり、これは HEAD 開発バージョンが、MediaWiki コアの安定版や旧安定版ではまだ利用できない機能を含んでいるためです。

拡張機能のメンテナーには MediaWiki のバージョンごとに拡張機能の各バージョンの git ブランチを設定するよう強く推奨します。 (詳細は互換性#MediaWiki拡張機能 を参照。) ウィキメディアの git repo にホストした拡張機能では、それらの分岐 (名称が MediaWiki 1.30 ならREL1_30) は新しい MediaWiki 分岐ができると自動でマスターから生成されます (前提として拡張機能のマスターが常時、MediaWiki マスターと互換性があるはずという認識) 。 しかし、HEAD だけでなく旧安定バージョンや安定バージョンについても、バグの修正は拡張機能のメンテナーにお願いできれば助かります(必要に応じて修正を旧分岐にバックポートしてください)。

これらの規則は、MediaWiki をインストールする人や組織が最新のリリースをインストールするようにすることと、拡張機能のバージョンを簡単な手法で同期できるようにすること (例: 1.20.x のコアに合わせるには、Git のブランチ REL1_20 を使用する)、を目標としています。

外部リンク