React Router への貢献
貢献ありがとうございます!あなたは最高です!
オープンソースでは、さまざまな種類の貢献が可能です。すべてが価値のあるものです。貢献を準備する際に役立つ、いくつかのガイドラインを紹介します。
セットアップ
コードベースに貢献するには、まずリポジトリをフォークする必要があります。これは、どのような種類の貢献をするかによって、少し異なるものになります。
- 新しい機能、バグ修正、または**
react-router
コードに影響を与えるもの**はすべて、dev
ブランチから分岐し、dev
ブランチにマージする必要があります。 - ドキュメントのみを変更する場合は、
main
ブランチから分岐し、main
ブランチにマージすることができます。
次の手順で、このリポジトリへの変更を貢献できるようになります。
- リポジトリをフォークする(このページの右上にあるForkボタンをクリックする)。
- フォークをローカルにクローンする
- 依存関係をインストールしてビルドします。React Router はpnpmを使用しているので、あなたも使用する必要があります。
npm
でインストールすると、不要なpackage-lock.json
ファイルが生成されます。
バグを見つけた?
問題テンプレートに従い、コード例を使用して再現への明確なパスを提供してください。最も良いのは、失敗するテストを含むプルリクエストです。次善は、CodeSandboxまたはバグを説明するリポジトリへのリンクです。
例を追加しますか?
例は、メインブランチに直接追加できます。ローカルにクローンしたmain
からブランチを作成します。完了したら、プルリクエストを作成して、あなたの例について説明してください。
新しいAPIまたは変更されたAPIを提案しますか?
思慮深いコメントと、アプリでReact Routerを使用したい方法を示すサンプルコードを提供してください。現在のAPIによってどのように制限されているかを示してから、変更または追加が必要なものについて結論を出すと、会話がスムーズに進みます。
私たちは経験から、小さなAPIの方が通常良いことを学んでいるので、現在のAPIに明らかな制限がない限り、新しいものを追加することに少し抵抗があります。とはいえ、私たちはこれまで考えたことのないケースについて常に知りたいと思っていますので、遠慮しないでください! :)
問題が注目されていない?
バグを修正する必要があるのに誰も修正していない場合は、修正を提供してプルリクエストを作成することが最善です。オープンソースコードは私たち全員のものであり、それを前進させるのは私たち全員の責任です。
プルリクエストを作成しますか?
プルリクエストは、マージされるためには2人以上の共同作業者からの承認が必要です。プルリクエストの作成者が共同作業者である場合、それは1人としてカウントされます。
dev
ブランチにする必要があります。GitHubでプルリクエストを作成する際に、"Compare changes"ヘッダーの下にあるドロップダウンでベースを設定します。
テスト
バグを修正したり、機能を追加したりするすべてのコミットにはテストが必要です。
<blink>
テストがないコードをマージしないでください!</blink>
ドキュメント+例
APIを変更または追加するすべてのコミットは、関連するすべての例とドキュメントを更新するプルリクエストで行う必要があります。
開発
パッケージ
React Router は、複数のパッケージのコードをホストするために、モノレポを使用しています。これらのパッケージは、packages
ディレクトリにあります。
私たちはpnpm workspacesを使用して、依存関係のインストールとさまざまなスクリプトの実行を管理しています。すべてをインストールするには、pnpmをインストールし、リポジトリのルートからpnpm install
を実行してください。
ビルド
ルートディレクトリからpnpm build
を実行すると、ビルドが実行されます。これは数秒で完了します。個々のパッケージはお互いに依存しているため、すべてのパッケージを一緒にビルドすることが重要です。
テスト
テストを実行する前に、ビルドを実行する必要があります。ビルド後、ルートディレクトリからpnpm test
を実行すると、すべてのパッケージのテストが実行されます。特定のパッケージのテストを実行したい場合は、pnpm test --projects packages/<パッケージ名>
を使用します。
リポジトリの分岐
このリポジトリでは、さまざまな目的のために、別々のブランチが維持されています。次のようになります。
- main > 最新のリリースと現在のドキュメント
- dev > 安定リリース間の、アクティブな開発中のコード
- v5 > 特定のメジャーリリースの最新のコード
さまざまな機能や実験のために、他のブランチが存在する場合がありますが、すべての魔法はこれらのブランチから起こります。
新しいリリース
新しいリリースを行う際には、リリースの種類に応じて、分岐戦略に基づいたプロセスに従います。
react-router@next
リリース
dev
ブランチの現在の状態から、実験的なリリースを作成します。これらは、@next
タグを使用してインストールできます。
これらのリリースは、PRがdev
ブランチにマージされると自動化されます。
最新のメジャーリリース
ホットフィックスリリース
最新のリリースに影響する重大なバグをすぐに修正する必要がある場合があります。バグが最新のリリースに影響する場合は、main
(またはバグが存在する関連するメジャーリリースブランチ)から直接新しいバージョンを作成できます。