React Native 0.67 リリースのお知らせ
新年あけましておめでとうございます!本日、React Nativeの最新リリースである0.67.0と、過去数か月間取り組んできたリリースプロセスに関するいくつかのアップデートを発表します。
セクション
0.67のハイライト
Metaの2021年下半期の計画で述べたように、React Nativeは、新機能や修正(新しいアーキテクチャなど)がコミュニティに迅速に提供されるように、より頻繁なリリースを試みています。当然のことながら、多くのリリースは修正と改善に焦点を当てています。
0.67.0での注目すべき変更点は次のとおりです。
- リーンコアの削除:DatePickerAndroid
- Gradleバージョンを7.2に、Kotlinバージョンを1.5.31に上げる KotlinとGradleのバージョンを上げる(#32319)
- 注目すべき点:0.67は、0.66から変更なく、Hermes 0.9.0に依存しています。
完全な変更履歴はこちらにあります。
このディスカッションで、このリリースのステータスに関する会話に参加できます。そして、いつものように、このバージョンへのアップグレードを支援するために、アップグレードヘルパー⚛️を使用できます。
謝辞
このリリースには、74人のコントリビューターによる379のコミットが含まれています!すべての貢献者(新旧)に感謝します!完全な変更履歴はこちらにあります。
また、0.67.0が大きな回帰なしに皆さんのコードベースに到達できるよう支援してくれたリリーステスターにも感謝したいと思います。特に、次の皆様に感謝いたします。
- MargeloのMarc Rousavy(@mrousavy)は、(CIテストでは決して検出されなかった)Hermes 0.10の回帰を surfaced し、これはReact Nativeの0.68リリースでHermes 0.11で修正される予定です。
- Reanimatedチームは、0.67 RCフェーズの初期に、ライブラリの0.67互換バージョンを迅速に準備してくれました。
- MattermostのElias Nahum(@enahum)
- Invertaseと協力しているMike Hardy(@mikeHardy)
また、「リリーステスター」プログラムのパイロットに参加してくれたRainbow、Comm、Ledger Liveにも感謝いたします(詳細は以下を参照)。
リリースプロセスの改善
前述のように、React Nativeは、新機能と修正がコミュニティに迅速に展開されるように、より頻繁なリリースを可能にするために、リリースパイプラインを再構築しています。
過去数か月間、リリースを遅らせるいくつかの問題に取り組みました。
調整と知識の共有
リリースの実行方法、FAQ、リリースの問題の調整などを網羅したリリースに関するドキュメントに投資しました。すべてreact-native wikiのこのセクションにあります。ドキュメント化することで、リリースが個人または特定の知識に依存しなくなりました。
ドキュメントに加えて、リリースの調整も刷新し、リリース前のステータスとパッチの議論を専用のディスカッショングループ:react-wg/react-native-releasesに移しました。
責任の明確化
ドキュメントを増やすことで、リリース作業を拡張できるようになり、リリースの実行に不可欠な人がいなくなりました。
React Nativeのリリースは、幅広い潜在的な障害点の影響を受けやすく、多くの依存関係とフォローアップがあります。React Nativeの使用方法がコミュニティによって異なることを考えると、リリースに利害関係者が関与することが不可欠です。リリースをサポートする役割と責任のセットを定義しました。
リリース候補シグナル
リリースに関するもう1つの問題は、リリースがビルドの回帰に悩まされないという適切なシグナルを得ることです。これは、ビルドバリアントのテストへの投資を増やすことで対処できますが、採用からのシグナルはしばらくの間引き続き役立ちます。
0.67リリースでは、「リリーステスター」プログラムを試験的に実施しました。このプログラムでは、オープンソースアプリに取り組んでいるReact Native開発者が、アプリでリリース候補をテストすることを約束します。以前は、コミュニティがリリース候補をテストして潜在的な問題を提起するという正式な期待はありませんでした。このプログラムは、リリースの安定性を確保するためのより迅速なシグナルを得るのに役立ちます。
オープンソースのReact Nativeアプリは、ソースコードが利用できるため、あらゆるリグレッションのデバッグに役立つという点で特に便利です。このプログラムのおかげで、リリース・テスターが0.67でリグレッションを発見し、問題のあるリリースでより大きなコミュニティを混乱させることなく解決することができました。
React Nativeの新リリースの安定化にご協力いただけませんか?
リグレッションを発見するのに最適な方法は、React Nativeのプレリリース版react-native@next
またはreact-native@nightly
をCIに統合することです。リグレッションが発生した場合は、リリースに関するIssueを提出し、適切なディスカッションに通知してください。
あなたのアプリや会社が「リリース・テスター」プログラムへの参加に興味がある場合は、リリースの役割と責任に関するWikiの下部にある専用セクションを参照して、詳細をご覧ください。
最後に、リリース候補を試したり、リリースに関する問題の解決に協力していただけると大変助かります。