リリースチャンネル

React はバグを報告し、プルリクエストをオープンし、RFC を投稿してくださっている活発なオープンソースコミュニティを頼りにしています。フィードバックを促すため、私たちはリリースされていない機能を含んだ React の特別なビルドを共有することがあります。

このドキュメントは、フレームワーク、ライブラリ、開発者向けツールに取り組んでいる開発者に最も関連します。主にユーザ向けアプリケーションを構築するために React を使用している開発者は、プレリリースチャンネルについて心配する必要はありません。

React の各リリースチャンネルは、明確なユースケースのために設計されています。

  • Latest は安定版であり、セマンティック・バージョニングに基づいた React のリリースです。それは npm から React をインストールすると得られるものです。これは、既にあなたが使用しているチャンネルです。全てのユーザ向け React アプリケーションのためにこれを使用します。
  • Next は React ソースコードのリポジトリの master ブランチを追跡します。これを、次のマイナーバージョンのリリース候補と考えてください。React とサードパーティプロジェクト間のインテグレーションテストにこれを使用します。
  • Experimental には、安定版のリリースでは使用できない実験的な API や機能が含まれます。これも master ブランチを追跡しますが、追加のフィーチャー・フラグが有効になっています。近々予定されているリリース前の機能を試すためにこれを使用してください。

全てのリリースが npm に公開されていますが、Latest のみがセマンティック・バージョニングを使用します。プレリリース(Next チャンネルと Experimental チャンネル)は、Next の場合は 0.0.0-1022ee0ec、Experimental の場合は 0.0.0-experimental-1022ee0ec のように、コンテンツのハッシュから生成されたバージョンを持ちます。

Latest が、ユーザ向けアプリケーションのために公式にサポートされた唯一のリリースチャンネルです。Next と Experimental はテスト目的のためにのみ提供されており、また、リリース間で動作が変わらないことも保証されません。これらは、Latest リリースで使用しているセマンティック・バージョニングに準拠していません。

プレリリースを安定版のリリースと同じレジストリに公開することで、unpkgCodeSandbox のような、npm のワークフローをサポートする多くのツールを活用できます。

Latest チャンネル

Latest チャンネルは、安定版の React をリリースするために使用するチャンネルです。npm の latest タグに対応します。実際のユーザに提供される全ての React アプリケーションに対して、このチャンネルが推奨されます。

どのチャンネルを使用すべきか分からない場合、Latest チャンネルを使用してください。あなたが React 開発者なら、Latest チャンネルを既に利用しています。

Latest のアップデートは非常に安定していると期待できます。バージョンは、セマンティック・バージョニングのスキームに従います。私たちの安定性と段階的移行への取り組みについては、バージョニングポリシーをご覧ください。

Next チャンネル

Next チャンネルは、React リポジトリの master ブランチを追跡する、プレリリースチャンネルです。私たちは Next チャンネルのプレリリースを、Latest チャンネルのリリース候補として使用します。Next を、より頻繁に更新が行われる Latest のスーパーセットだと考えることができます。

最新の Next リリースと Latest リリース間の差分の程度は、2 つのマイナーリリース間とほぼ同じです。しかし Next チャンネルは、セマンティック・バージョニングに準拠していません。連続したリリース間でしばしば破壊的変更が発生するということを、Next チャンネルでは予期しなければなりません。

プレリリースをユーザ向けアプリケーションに使用しないでください。

Next リリースは、npm の next タグで公開されています。0.0.0-1022ee0ec のように、ビルドされたコンテンツのハッシュから、バージョンが生成されます。

インテグレーションテストに Next チャンネルを使用する

Next チャンネルは、React と他のプロジェクト間のインテグレーションテストをサポートするように設計されています。

React に対する全ての変更は、一般向けリリース前に広範囲の内部テストを受けます。しかし、React のエコシステム全体では無数の環境と構成が存在しており、その全てに対してテストを行うことは不可能です。

あなたが React サードパーティのフレームワーク、ライブラリ、開発者向けツール、あるいは同様のインフラストラクチャ寄りのプロジェクトの作者である場合、最新の React の変更に対して定期的にテストスイートを実行することで、あなたのユーザや React コミュニティ全体のために React の安定化を助けることができます。興味がある場合、次の手順に従ってください。

  • お好みの継続的インテグレーションプラットフォームを利用して、クーロンジョブをセットアップします。クーロンジョブは、CircleCITravis CI の両方でサポートされています。
  • クーロンジョブで npm の next タグを使い、React パッケージを Next チャンネルの最新のリリースにアップデートします。npm cli を使って:

    npm update react@next react-dom@next

    もしくは yarn で:

    yarn upgrade react@next react-dom@next
  • アップデートされたパッケージに対してテストスイートを実行します。
  • 全てのテストがパスしたのであれば、素晴らしいです! あなたのプロジェクトは次の React のマイナーリリースで動作することが期待できます。
  • 意図せず何かが壊れた場合は、Issue を提出してお知らせください。

このワークフローを使用しているプロジェクトとして、Next.js があります。(シャレではありません! 真面目です!)例として彼らの CircleCI の設定を参照できます。

Experimental チャンネル

Next チャンネルと同じく、Experimental チャンネルは React リポジトリの master ブランチを追跡するプレリリースチャンネルです。しかし Next とは異なり、Experimental リリースには、より広範にリリースするにはまだ準備ができていない追加の機能と API が含まれます。

通常、Next への更新には、対応した Experimental への更新が伴います。これらは同じリビジョンのソースをベースにしていますが、異なるフィーチャー・フラグの設定を使用してビルドしています。

Experimental リリースは、Next や Latest のリリースとは大きく異なる場合があります。Experimental リリースを、ユーザ向けアプリケーションに使用しないでください。リリース間で頻繁に破壊的変更が発生しうるということを、Experimental チャンネルでは予期しなければなりません。

Experimental リリースは、npm の experimental タグで公開されています。0.0.0-experimental-1022ee0ec のように、ビルドされたコンテンツのハッシュから、バージョンが生成されます。

Experimental リリースには何が含まれていますか?

実験的機能は、一般向けに広く公開するための準備ができていないものであり、最終決定までに大幅に変化する可能性があります。いくつかの試みは、最終的に採用されない可能性があります。このような実験を行うのは、提案された変更内容の実行可能性をテストするためです。

例えば、フックを発表したときに Experimental が存在していた場合、Latest で利用可能になる数週間前に Experimental チャンネルでフックをリリースしていたでしょう。

Experimental に対してインテグレーションテストを実行することには、価値があるかもしれません。これはあなた次第です。しかし、Experimental は Next よりもさらに不安定であるとアドバイスしておきます。Experimental のリリース間では安定性は何も保証されません。

実験的機能の詳細をどのように知ればよいですか?

実験的機能については、ドキュメント化されることもあれば、されないこともあります。通常、Next もしくは Latest でのリリースが近づくまで、ドキュメント化されません。

ドキュメント化されていない機能については、RFC が付随することがあります。

新しい試みを発表する準備が整ったときに React blog にそのことを投稿しますが、全ての試みについて公開するとは限りません。

GitHub で公開されている React のリポジトリの history で、変更の包括的なリストをいつでも参照できます。

Is this page useful?このページを編集する