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)氏には、Hermes 0.10のデグレ(CIテストでは決して検出されなかったでしょう)を発見していただきました。これは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の利用状況はコミュニティ全体で異なることを考慮すると、関係者がリリースに関与することが不可欠です。私たちは、リリースをサポートする上での役割と責任を定義しました。
リリース候補のシグナル
リリースに関するもう一つの問題は、ビルドのデグレが発生しないという良好なシグナルを得ることです。これはビルドバリアントのテストなどへの投資を増やすことで対処できますが、採用からのシグナルはしばらくの間有用であり続けるでしょう。
0.67リリースでは、「リリース テスター」プログラムを試験的に実施しました。このプログラムでは、オープンソースアプリに取り組むReact Native開発者が、自身のアプリでリリース候補のテストにコミットします。以前は、コミュニティがリリース候補をテストして潜在的な問題を提起するという正式な期待はありませんでした。このプログラムは、リリースの安定性を確保するためのより迅速なシグナルを得るのに役立ちます。
オープンソースのReact Nativeアプリは、デグレのデバッグに役立つソースコードが利用可能であるため、特に有用です。このプログラムが導入されたことで、リリース テスターが0.67でデグレを発見し、欠陥のあるリリースでより大きなコミュニティを混乱させることなく、問題を解決することができました。
新しいリリースの安定化にReact Nativeを支援することに関心がありますか?
デグレを検出するのに役立つ良い方法は、React Nativeのプレリリースバージョンreact-native@nextまたはreact-native@nightlyをCIに統合することです。デグレが見つかった場合は、リリース issueを報告し、適切な議論に通知することができます。
あなたのアプリや会社が「リリース テスター」プログラムへの参加に関心がある場合は、詳細についてはリリースでの役割と責任に関するWikiの下部にある専用セクションをご覧ください。
最後に、リリース候補の試用やリリース問題の解決にご協力いただけると大変ありがたいです!

