メインコンテンツにスキップ

コード貢献の方法

React Nativeへの貢献にご興味をお持ちいただきありがとうございます!Issueへのコメントやトリアージから、PRのレビューや送信まで、あらゆる貢献を歓迎します。このドキュメントでは、React Nativeにコードを貢献する手順について説明します。

すぐにコードの貢献を始めたい場合は、比較的小規模なバグを含むgood first issueのリストがあります。help wantedラベルが付いたIssueは、PRを送信するのに適しています。

前提条件

情報

必要なツールと開発環境をセットアップするには、使用するプラットフォームと開発対象のプラットフォームに基づいて、環境設定ガイドを参照してください。

開発ワークフロー

React Nativeをクローンした後、ディレクトリを開き、`yarn`を実行して依存関係をインストールします。

これで、いくつかのコマンドを実行する準備ができました。

  • `yarn start` はMetroパッケージサーバーを起動します。
  • `yarn lint` はコードスタイルをチェックします。
  • `yarn format` はコードを自動的にフォーマットします。
  • `yarn test` はJestベースのJavaScriptテストスイートを実行します。
    • `yarn test --watch` はインタラクティブなJavaScriptテストウォッチャーを実行します。
    • `yarn test <pattern>` は、一致するファイル名のJavaScriptテストを実行します。
  • `yarn flow` はFlowの型チェックを実行します。
    • `yarn flow-check-android` は `*.android.js` ファイルに対して完全なFlowチェックを実行します。
    • `yarn flow-check-ios` は `*.ios.js` ファイルに対して完全なFlowチェックを実行します。
  • `yarn test-typescript` はTypeScriptの型チェックを実行します。
  • `yarn test-ios` はiOSテストスイートを実行します(macOSが必要です)。
  • `yarn build` は、設定されているすべてのパッケージをビルドします。— 通常、このコマンドは公開前にCIによって実行されるだけで十分です。

変更のテスト

テストは、コードベースに回帰が発生するのを防ぐのに役立ちます。変更作業中に回帰が発生しないように、`yarn test`または上記のプラットフォーム固有のスクリプトを実行することをお勧めします。

GitHubリポジトリは、CircleCIを使用して継続的にテストされており、その結果はコミットおよびプルリクエストのチェック機能で確認できます。

テストの実行と記述の詳細については、テストの実行と記述方法のページを参照してください。

コーディングスタイル

JavaScriptコードのフォーマットにはPrettierを使用しています。Prettierのエディター統合機能、または`yarn run prettier`を手動で実行することで、フォーマットの問題を自動的に修正できるため、時間と労力を節約できます。また、コードに存在する可能性のあるスタイルの問題を検出するために、linterも使用しています。`yarn run lint`を実行することで、コードスタイルの状態を確認できます。

ただし、linterでは検出できないスタイルがまだいくつかあります。特にJavaまたはObjective-Cコードではそうです。

Objective-C

  • `@property`宣言の後にスペースを入れる
  • すべての`if`に括弧を付け、同じ行に配置する
  • `- method`、`@interface`、`@implementation`の括弧は次の行に配置する
  • できるだけ行の長さを80文字程度に保つ(不可能な場合もある)
  • `*`演算子は変数名と一緒に使用する(例:`NSObject *variableName;`)

Java

  • メソッド呼び出しが複数行にまたがる場合、閉じ括弧は最後の引数と同じ行に配置する
  • メソッドヘッダーが1行に収まらない場合は、各引数を別々の行に配置する
  • 行の長さは100文字

プルリクエストの送信

React Nativeへのコードレベルの貢献は、一般的にプルリクエストの形式で行われます。React Nativeへの変更を提案するプロセスは、以下のように要約できます。

  1. React Nativeリポジトリをフォークし、`main`ブランチからブランチを作成します。
  2. テストが必要なコードを追加した場合は、テストを追加します。
  3. APIを変更した場合は、ドキュメントを更新します。
  4. プルリクエストを作成したら、ローカルまたはCIでテストスイートがパスすることを確認します。
  5. コードがlintにパスすることを確認します(例:`yarn lint --fix`を使用)。
  6. 変更をフォークにプッシュします。
  7. React Nativeリポジトリにプルリクエストを作成します。
  8. プルリクエストのコメントを確認し、対応します。
  9. ボットが提案をコメントすることがあります。通常、メンテナーがコードをレビューする前に、まずこれらの問題を解決するようお願いしています。
  10. まだ提出していない場合は、貢献者ライセンス契約("CLA")を提出してください。

すべて問題がなければ、プルリクエストはマージされます。マージされない場合は、メンテナーがその理由を説明するために最善を尽くします。

初めてプルリクエストを送信する場合は、ステップバイステップガイドを作成しました。プルリクエストの処理方法の詳細については、プルリクエストの管理ページを参照してください。

貢献者ライセンス契約

プルリクエストを受け入れるには、貢献者ライセンス契約(CLA)を提出していただく必要があります。Metaのオープンソースプロジェクトで作業するには、これを1回だけ行う必要があります。所要時間はわずか1分なので、依存関係のインストールを待っている間に行うことができます。

ライセンス

React Nativeに貢献することにより、お客様の貢献がReact NativeリポジトリのルートディレクトリにあるLICENSEファイルに基づいてライセンスされることに同意するものとします。