Electron の開発
これらのガイドは、Electron プロジェクトそのものに取り組む人を対象にしています。 Electron アプリ開発のガイドについては、/docs/README.md を参照してください。
目次
- Issues
- プルリクエスト
- ドキュメントガイド
- ソースコードのディレクトリ構造
- コーディング スタイル
- C++ コードに clang-tidy を使用する
- ビルド手順
- Chromium開発
- V8 開発
- テスト
- デバッグする
- パッチ
始めましょう
Electron にコントリビュートするには、まずそのコードを取得する必要があります。
Electron の build-tools
は、さまざまな設定やビルドターゲットを使ってソースから Electron をコンパイルするためのセットアップの、その多くを自動化します。
Electron を手動ビルドしたい方は、ビルド手順 をご参照ください。
コードをチェックアウトしてビルドしたら、ソースツリーを見て回って各ディレクトリが担う役割を知り、より良いアイデアを探してみましょう。 ソースコードのディレクトリ構造 では、各ディレクトリの目的の優れた概要を示してあります。
Electron に Issue を開く
どのような Issue でも個人でコントリビュートできる方法が、一般的に 3 つあります。
- 議論のために Issue を開く
- Electron に新たなバグを見つけたと思われたら、
electron/electron
の Issue トラッカー に新しい Issue を作って報告することを推奨します。
- Electron に新たなバグを見つけたと思われたら、
- Issue のトリアージを支援する
- 補助となる詳細 (バグを実証する再現可能なテストケース) や問題に対処する提案を提供することで支援できます。
- Issue の解決を支援する
- その問題がバグではないこと、あるいは修正済みだと示すことで解決を支援できます。しかし、大抵の場合は
electron/electron
のソースを具体的かつレビュー可能な方法で変更するプルリクエストを開くことが行われます。
- その問題がバグではないこと、あるいは修正済みだと示すことで解決を支援できます。しかし、大抵の場合は
詳細は Issue をご覧ください。
Electron にプルリクエストを作る
electron/electron
リポジトリに対して開かれるほとんどのプルリクエストは、shell/
フォルダーの C/C++ コード、lib/
フォルダーの TypeScript コード、docs/
のドキュメント、または spec/
フォルダーのテストのいずれかへの変更です。
詳細は プルリクエスト をご覧ください。
Electron に新しい API モジュールを追加したい場合は、API の作成 をご参照ください。
ガバナンス
Electron には、API、リリース、Chromium や Node.js など Electron の依存関係のアップグレードといったそれぞれの領域を担当する作業グループがあり、Electron の活動を監督する本格的なガバナンスシステムを備えています。 どのくらいの頻度で、どのような目的でコントリビュートしたいかに応じて、作業グループへの参加を検討してもよいでしょう。
各グループの詳細と責務は、ガバナンスレポジトリ に記載されています。
Electron のパッチ
Electron は、Chromium と Node.js という 2 つのメジャーな上流プロジェクトで構築されています。 これらのプロジェクトにも、それぞれ独自の依存関係がいくつかあります。 これらの依存関係をそのまま使用するように最善を尽くしていますが、ユースケースに合わせて上流の依存関係にパッチを適用しないと目標を達成できない場合があります。
そのため、ソースツリーの一部としてパッチの集まりを管理しています。 これらのパッチをプルリクエストで Electron のソースツリーに追加/変更する手順は、パッチ に記載されています。
デバッグする
Electron の問題やバグをデバッグするには様々なアプローチがありますが、その多くはプラットフォーム固有のものです。
Electron 自体 (Electron で構築された アプリではない) のデバッグに関する情報の概要は、デバッ グ をご覧ください。