リリースチャンネル
この記事は古くなっており、今後更新されません。新しい React 日本語ドキュメントである ja.react.dev をご利用ください。
React のリリースチャンネルについてはバージョニングポリシーを参照してください。
React はバグを報告し、プルリクエストをオープンし、RFC を投稿してくださっている活発なオープンソースコミュニティを頼りにしています。フィードバックを促すため、私たちはリリースされていない機能を含んだ React の特別なビルドを共有することがあります。
このドキュメントは、フレームワーク、ライブラリ、開発者向けツールに取り組んでいる開発者に最も関連します。主にユーザ向けアプリケーションを構築するために React を使用している開発者は、プレリリースチャンネルについて心配する必要はありません。
React の各リリースチャンネルは、明確なユースケースのために設計されています。
- Latest は安定版であり、セマンティック・バージョニングに基づいた React のリリースです。それは npm から React をインストールすると得られるものです。これは、既にあなたが使用しているチャンネルです。全てのユーザ向け React アプリケーションのためにこれを使用します。
- Next は React ソースコードのリポジトリの main ブランチを追跡します。これを、次のマイナーバージョンのリリース候補と考えてください。React とサードパーティプロジェクト間のインテグレーションテストにこれを使用します。
- Experimental には、安定版のリリースでは使用できない実験的な API や機能が含まれます。これも main ブランチを追跡しますが、追加のフィーチャー・フラグが有効になっています。近々予定されているリリース前の機能を試すためにこれを使用してください。
全てのリリースが npm に公開されていますが、Latest のみがセマンティック・バージョニングを使用します。プレリリース(Next チャンネルと Experimental チャンネル)は、Next の場合は 0.0.0-68053d940-20210623
、Experimental の場合は 0.0.0-experimental-68053d940-20210623
のように、コンテンツのハッシュとコミット日時から生成されたバージョンを持ちます。
Latest が、ユーザ向けアプリケーションのために公式にサポートされた唯一のリリースチャンネルです。Next と Experimental はテスト目的のためにのみ提供されており、また、リリース間で動作が変わらないことも保証されません。これらは、Latest リリースで使用しているセマンティック・バージョニングに準拠していません。
プレリリースを安定版のリリースと同じレジストリに公開することで、unpkg や CodeSandbox のような、npm のワークフローをサポートする多くのツールを活用できます。
Latest チャンネル
Latest チャンネルは、安定版の React をリリースするために使用するチャンネルです。npm の latest
タグに対応します。実際のユーザに提供される全ての React アプリケーションに対して、このチャンネルが推奨されます。
どのチャンネルを使用すべきか分からない場合、Latest チャンネルを使用してください。あなたが React 開発者なら、Latest チャンネルを既に利用しています。
Latest のアップデートは非常に安定していると期待できます。バージョンは、セマンティック・バージョニングのスキームに従います。私たちの安定性と段階的移行への取り組みについては、バージョニングポリシーをご覧ください。
Next チャンネル
Next チャンネルは、React リポジトリの main ブランチを追跡する、プレリリースチャンネルです。私たちは Next チャンネルのプレリリースを、Latest チャンネルのリリース候補として使用します。Next を、より頻繁に更新が行われる Latest のスーパーセットだと考えることができます。
最新の Next リリースと Latest リリース間の差分の程度は、2 つのマイナーリリース間とほぼ同じです。しかし Next チャンネルは、セマンティック・バージョニングに準拠していません。連続したリリース間でしばしば破壊的変更が発生するということを、Next チャンネルでは予期しなければなりません。
プレリリースをユーザ向けアプリケーションに使用しないでください。
Next リリースは、npm に next
タグ付きで公開されています。0.0.0-68053d940-20210623
のように、ビルドされたコンテンツのハッシュおよびコミット日時から、バージョンが生成されます。
インテグレーションテストに Next チャンネルを使用する
Next チャンネルは、React と他のプロジェクト間のインテグレーションテストをサポートするように設計されています。
React に対する全ての変更は、一般向けリリース前に広範囲の内部テストを受けます。しかし、React のエコシステム全体では無数の環境と構成が存在しており、その全てに対してテストを行うことは不可能です。
あなたが React サードパーティのフレームワーク、ライブラリ、開発者向けツール、あるいは同様のインフラストラクチャ寄りのプロジェクトの作者である場合、最新の React の変更に対して定期的にテストスイートを実行することで、あなたのユーザや React コミュニティ全体のために React の安定化を助けることができます。興味がある場合、次の手順に従ってください。
- お好みの継続的インテグレーションプラットフォームを利用して、クーロンジョブをセットアップします。クーロンジョブは、CircleCI と Travis 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 リポジトリの main ブランチを追跡するプレリリースチャンネルです。しかし Next とは異なり、Experimental リリースには、より広範にリリースするにはまだ準備ができていない追加の機能と API が含まれます。
通常、Next への更新には、対応した Experimental への更新が伴います。これらは同じリビジョンのソースをベースにしていますが、異なるフィーチャー・フラグの設定を使用してビルドしています。
Experimental リリースは、Next や Latest のリリースとは大きく異なる場合があります。Experimental リリースを、ユーザ向けアプリケーションに使用しないでください。リリース間で頻繁に破壊的変更が発生しうるということを、Experimental チャンネルでは予期しなければなりません。
Experimental リリースは、npm に experimental
タグ付きで公開されています。0.0.0-experimental-68053d940-20210623
のように、ビルドされたコンテンツのハッシュおよびコミット日時から、バージョンが生成されます。
Experimental リリースには何が含まれていますか?
実験的機能は、一般向けに広く公開するための準備ができていないものであり、最終決定までに大幅に変化する可能性があります。いくつかの試みは、最終的に採用されない可能性があります。このような実験を行うのは、提案された変更内容の実行可能性をテストするためです。
例えば、フックを発表したときに Experimental が存在していた場合、Latest で利用可能になる数週間前に Experimental チャンネルでフックをリリースしていたでしょう。
Experimental に対してインテグレーションテストを実行することには、価値があるかもしれません。これはあなた次第です。しかし、Experimental は Next よりもさらに不安定であるとアドバイスしておきます。Experimental のリリース間では安定性は何も保証されません。
実験的機能の詳細をどのように知ればよいですか?
実験的機能については、ドキュメント化されることもあれば、されないこともあります。通常、Next もしくは Latest でのリリースが近づくまで、ドキュメント化されません。
ドキュメント化されていない機能については、RFC が付随することがあります。
新しい試みを発表する準備が整ったときに React blog にそのことを投稿しますが、全ての試みについて公開するとは限りません。
GitHub で公開されている React のリポジトリの history で、変更の包括的なリストをいつでも参照できます。