コントリビュート
セットアップ
正しい場所に小さな変更を 1 つ加え、プルリクエストとして送ります。
始める前に
始める前に へのリンク- まず issue を作成するか、すでにある issue にコメントします。何を変えたいのか、なぜ変えたいのかを書いてください。
- 返信を待ちます。マージされないものを作ってしまわないためです。
- セットアップを済ませ、HolyArrs をビルドして実行できるようにします。
質問は Discord へ。アイデアは r/HolyArrs へ。issue はバグとロードマップのためのものです。
最初のプルリクエストを送る
最初のプルリクエストを送る へのリンク-
変更が属するモジュールを探します。モジュールにある名前はフォルダー名と同じなので、Discord の通知がおかしい場合は
alertsの変更になります。 -
app/backend/internal/<module>/とapp/frontend/src/lib/<module>/で変更を加えます。1 つの修正か 1 つの機能に絞ります。 -
Web アプリ、プログラムの順にビルドし、ブラウザーで変更を試します。セットアップを参照してください。
-
テストにあるチェックを実行します。
失敗が 1 つも表示されなければ問題ありません。
-
ページを変更した場合は、そのページのエンドツーエンドのプロジェクトを実行します。たとえば
npm --prefix app/frontend run e2e -- --project=moviesです。 -
プルリクエストを作成します。issue にリンクし、何を変えたか、どうテストしたかを書き、その変更のテストを追加または更新します。
-
最初のプルリクエストでは、ボットがコントリビューターライセンス契約への署名を求めます。求められた 1 文を返信します。
オプション
オプション へのリンク変更の種類ごとの行き先
変更の種類ごとの行き先 へのリンク良いプルリクエストとは
良いプルリクエストとは へのリンク- コメントには、コードがなぜそう動くのかを書きます。ロードマップの番号、日付、名前、em ダッシュはコメントに入れません。
- issue が文言についてのものでない限り、アプリの文言は変えません。
- リリース済みの API パス、フィールド名、設定キー、テーブル名、ジョブ名はそのままにします。追加はしても、名前の変更はしません。
うまくいかないとき
うまくいかないとき へのリンク症状。 構造チェックが失敗する。 原因。 メッセージにファイルとルールの名前が出ています。 対処。 コードを移動するか、上のモジュールから単純なデータを渡します。モジュールを参照してください。
症状。 Web アプリが古いままに見える。 原因。 プログラムは、組み込んだ時点のビルドを提供します。 対処。 プログラムの前に Web アプリをもう一度ビルドします。
症状。 エンドツーエンドテストが開始できない。
原因。 テスト用のブラウザーがインストールされていません。
対処。 npx --prefix app/frontend playwright install chromium を実行します。
上級者向け
上級者向け へのリンクプルリクエストが守るべきルール
- モジュールがほかのモジュールとやり取りするのは、そのサービス(Go)か
index.ts(Web)を通すときだけです。ストアやファイルを直接使ってはいけません。 - SQL はモジュールの
store*.goファイルにだけ置き、対象はそのモジュール自身のテーブルだけです。 - Web のパーツを
lib/uiに置くのは、2 つ以上のモジュールが使うときだけです。 util、common、shared、helpersというパッケージは作りません。- 外部への呼び出しはすべて
core/outboundを通します。
これらのルールはテストでチェックされるため、間違ったインポートがあるとビルドが失敗します。ルールの一覧とチェックの名前はモジュールにあります。
CI が実行する内容
| ジョブ | 実行内容 |
|---|---|
| Web | check、lint、test、build とエンドツーエンドのスイート |
| Go | go build、go vet、go test -timeout 60m ./... を amd64 と arm64 で、ネイティブとエミュレーションの両方で実行 |
| Race | go test -race ./... |
| Contract | openapi.json の一致、すべてのルートのスコープチェック、ダウンローダーのスイート |
| Fault and scale | クラッシュ、遅い書き込み、不調な外部サービス、メモリの各実行 |
| Image | 開発用イメージがビルドでき、起動し、バージョンを報告すること |
長時間の実行の詳細はテストにあります。
関連ページ
関連ページ へのリンクHolyArrs は無料です。時間の節約になったら、GitHub でスターを付ける、スポンサーになる、コーヒーをおごるのいずれかで応援してください。