🛠️

Babylon.js 5.0 以降のバージョニングポリシー日本語訳

2022/05/08に公開

こんにちは。やまゆです。

https://doc.babylonjs.com/divingDeeper/developWithBjs/frameworkVers

Babylon.js 5 からバージョニングポリシーが明文化されたようなので、 DeepL 翻訳をベースに日本語にしてみます。

要約

  • 基本的に package.json に書くバージョンは ^5.0.0 とするのがおススメ(5.0.0~5.x.x)
  • 最新の機能を利用したい場合は ^6.0.0-alpha1 などとするのがおススメ
    • メジャーバージョンアップは年一回程度行われる予定です。
    • 互換性のない API 更新が含まれる場合があります。
  • npm を利用する場合は tree shaking が可能な ES6 モジュールバージョンを利用するのがおススメ

一般事項

Babylon は previewstable の二つのバージョンを用意します。差異は下記です。

  • preview バージョンはこのエンジンの WIP バージョンです。下位互換性の維持は努めますが、時折破壊的変更が含まれる可能性があります。
  • stable バージョンは master ブランチの最新ビルドです。

どちらのバージョンも安定していてプロダクションで利用可能です。場合によっては(stable ブランチにまだ入れたくない新機能がある場合)、 preview と stable のバージョンは同一になります。

どちらのバージョンも CDN エンドポイントがあります。 preview バージョンは preview.babylonjs.com で、 stable バージョンは cdn.babylonjs.com で利用可能です。

stable または preview のどちらかにタグが付いた時に、新しいバージョンが npm にリリースされます。

私たちは、公開されているリポジトリ全てで同一のバージョンを保持しています。新しいバージョンをリリースするごとに、すべてのフレームワークパッケージ(https://www.npmjs.com/~babylonjs で見つかるもの)が変更がないとしても更新されます。 dependencies の設定ですべてのパッケージを同一バージョンに固定することが推奨されています。特にメジャーバージョンが更新されたときに重要になります。 core パッケージで 5.X を使っているのであれば、他の依存パッケージも 5.X を使うようにしてください。

バージョニング

Stable

Babylon 5.0 までは、今後のバージョニングと異なる戦略をとっていました。 stable バージョンは長い間固定され、 preview バージョンが更新され続けていました。最新の機能を利用するために preview バージョンの利用をいつも推奨していました。

Babylon 5.0 から、異なる戦略になります。最新の機能とバグフィックスを含んだ master ブランチを、毎週火曜日に新しいマイナーバージョンとしてリリースします。週のうちで、バグフィックスが必要になった場合はフレームワークのパッチバージョンをリリースする予定です。つまり、例えば 5.1.1 がリリースされている状態の場合、次の火曜日にバグフィックスを含んだ 5.2.0 をリリースします。 package.json でフレームワークのバージョンをキャレット(^)を使って指定することをお勧めします。この方法で、同じメジャーバージョンの最新版を受け取ることが出来ます。

マイナーバージョン間では、 public API については 破壊的変更はない ことを保証します。破壊的変更はメジャーバージョンでのみ含まれます。唯一破壊的変更を加える可能性があるのは、利用している API に対してブラウザが変更を加え、 API を変更せざるを得なくなった場合です。 API は抽象化されているため、通常はほとんど起こりません。

Preview

必要に応じて、 preview ブランチと preview バージョンを導入します。プレビュー版には、一般に、最新の安定版であるマスターブランチにはまだ必要ない機能が含まれます。プレビューブランチのバージョニングスキーマは、プレリリース版のバージョニングスキーマに準拠し、alphaから始まり、beta、rcと続きます。たとえば、master ブランチがメジャーバージョン 5 の場合、プレビューブランチはプレリリースメジャーバージョン 6 となり、最初のバージョンは alpha - 6.0.0-alpha.0 としてリリースされます。アルファバージョンは少なくとも週に一度(おそらくもっと)インクリメントされる予定です。機能がすべて安定したら、ベータ版(6.0.0-beta.0)へと移行します。リリースする準備ができたら、プレリリース識別子として rc - 6.0.0-rc.0 を使用します。master にマージする準備ができたら、master のメジャーバージョンを増やします。これは長いプロセスで、おそらく年に一度は行われるでしょう。

Changelog

各バージョンで何が変わったかを見るには、メインリポジトリの変更履歴を見てください。これは https://github.com/BabylonJS/Babylon.js/blob/master/CHANGELOG.md にあり、npm に公開するたびに更新されます。更新プロセス以外で更新された場合(場合によっては可能)、未発表の機能が「upcoming」バージョンに含まれます。これらは、次のマイナー/パッチリリースで導入される機能です。

Nightlies

プレビュー CDN は、パッケージのバージョンアップがないときでも、毎晩最新の機能とバグフィックスで更新されます。私たちのプレイグラウンドはプレビューCDNを使用しているので、今後の機能を試すためにいつでもプレイグラウンドを使用することができます。この場合、エンジンのバージョンは npm バージョンのままですが、master ブランチ上のすべてを含むことになります。

NPM releases

npm へのリリースは二種類に分かれています。

開発する際は、あなたのアーキテクチャに合ったものを選んでください。 tree shaking により、最終的なリリースサイズを小さくすることが出来る ES6 パッケージを推奨しています。


これらの文章は DeepL により翻訳され、一部加筆修正を行いました。

Discussion