コード貢献ガイド
貢献方法
ドキュメント、コード、その他の内容は、以下の方法で貢献できます。
- Pull Request:コードをリポジトリへ提出し、コードレビュー後にメインブランチへマージします
- Issue:問題や提案を提出し、議論のうえで実装するかどうかを決め、開発者へ割り当てます
コード貢献の流れ
コードを提出する前に、ローカルで Git のグローバル設定が完了していることを確認してください。ローカル Git のコミットメールアドレスとユーザー名は、プラットフォームに登録されているメールアドレスとユーザー名に一致している必要があります。一致していない場合、誤ったコミット記録が作成され、貢献者一覧に反映されません。
メールアドレスとユーザー名が正しいか不明な場合は、ターミナルで Git 設定を確認してください。
git config --global user.name
git config --global user.email変更が必要な場合は、以下のコマンドを使用します。"Your Name" と "your.email@example.com" をそれぞれ自分のユーザー名とメールアドレスに置き換えてください。
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"設定完了後は、設定を確実に反映するためにターミナルを再起動することを推奨します。
- プロジェクトを Fork:右上の Fork をクリックして自分のリポジトリにコピーします
- ブランチを作成:
git checkout -b feature/your-feature - 変更をコミット:
git commit -m "feat: 変更内容を説明" - ブランチをプッシュ:
git push origin feature/your-feature - PR を提出:Pull Request を作成します
貢献されたコードはコードレビューを経て、承認後にメインブランチへマージされます。
GDScript コーディング規約の参考
本プロジェクトは Godot 公式ドキュメントの GDScript スタイルガイド に従います。以下は参考規約です。
フォーマット規約
- インデント:スペースではなくタブを使用し、インデント 1 段階につきタブ 1 つを使います
- 行の長さ:100 文字以内に抑え、できれば 80 文字以下にします。長すぎると読みづらくなります
- 改行:LF 改行を使用し、ファイル末尾には改行を残して Git の競合を避けます
- エンコーディング:文字化けを避けるため UTF-8 without BOM を使用します
通常、Godot 標準のスクリプトエディターや VSCode を使えば、これらのフォーマット規約を自動的に満たせます。他のエディターを使う場合は、これらの規約に注意してください。
命名規約
| 要素の種類 | 命名スタイル | 例 |
|---|---|---|
| ファイル名 | snake_case | player_controller.gd |
| クラス名 | PascalCase | class_name PlayerController |
| 関数/変数 | snake_case | func move_player() |
| シグナル | snake_case(過去形) | signal door_opened |
| 定数 | CONSTANT_CASE | const MAX_HEALTH = 100 |
| enum 名 | PascalCase | enum GameState |
| enum 値 | CONSTANT_CASE | IDLE, RUNNING, JUMPING |
スクリプト内の命名には英語のみを使用してください。他の言語は問題の原因になる可能性があるため使用しないでください。
コメント規約
- クラスコメント:各クラスの先頭には、その機能と使い方を説明するコメントが必要です。このコメントは自動的にドキュメントへ生成されるため、できるだけ詳しく書いてください
- 関数コメント:各 public 関数の先頭には、関数の機能、引数、戻り値を説明するコメントが必要です。private 関数や内部ユーティリティ関数では省略できます
- 変数コメント:必要な変数、特に特定の意味や用途を持つ変数にはコメントを付けることを推奨します
- シグナルコメント:各シグナルの先頭には、用途と引数を説明するコメントが必要です
- TODO コメント:TODO を追加する場合は
TODOコメントを使用し、内容と優先度を説明してください
コミット規約
オープンソースプロジェクトでは、コミットメッセージの規約を学び適応するために初期コストがかかりますが、長期的な効果は非常に大きいです。「厳格な」メッセージ規約は、開発者間の理解とコミュニケーションの時間を節約し、CHANGELOG の生成もより簡単で標準化されたものにします。
Commit メッセージ
本プロジェクトは Conventional Commits 1.0.0 を参考にしています。形式は以下のとおりです。
<type>(<scope)>: <subject>3 つのフィールドで構成されます:type(必須)、scope(任意)、subject(必須)。
type(種類) は commit の分類を示します。以下のいずれかを使用してください。
| 種類 | 説明 |
|---|---|
| feat | 新機能(feature) |
| fix | bug 修正 |
| docs | ドキュメント変更(documentation) |
| test | テストの追加または既存テストの変更 |
| ci | CI 設定ファイルやスクリプトの変更 |
scope(範囲) は commit が影響する範囲を示し、プロジェクトに応じてモジュール、コンポーネント、ファイルなどを指定できます。
feat(something): ...fix(ui): ...docs(readme): ...- 影響範囲が広い場合は省略するか
(*)を使用できます。
subject(件名) は今回の commit の目的を短く説明します。
例:
feat(xxx): リプレイ機能を追加
fix: リプレイ機能で再生速度が速すぎるとクラッシュする問題を修正
docs(readme): readme を更新Pull Request
PR(Pull Request)は、あなたのコードをメインリポジトリのメインブランチへ提出するために使います。PR を提出する前に、コードが以下の規約を満たしていることを確認してください。
- コードのフォーマットがプロジェクトのコードスタイルに合っている。
- コミットメッセージが Git Commit メッセージ規約に合っている。
- 提出するコードがテスト済みで、既知の問題がない。
これらの条件をおおむね満たしていれば、PR を提出できます。
PR 提出規約
PR 情報には以下を含めてください。
- タイトル:PR の内容を簡潔かつ明確に説明します。Git Commit メッセージを使っても構いません。
- 説明:PR の内容を詳しく説明します。機能説明、実装方法、影響範囲などを含めてください。
- issue 関連付け:PR がいくつかの issue を修正する場合は、PR 情報に issue のリンクを追加してください。
その他の提案
- メンテナーの時間と労力を節約するため、PR の説明はできるだけ詳しくしてください。
- 単純な bug 修正や文章修正以外では、変更内容を細かく説明する PR 本文を書くことを推奨します。
- PR 内の commit 内容を修正する必要がある場合があります。PR コメント欄の議論を随時確認してください。
- すべての PR がマージされるわけではありません。あらかじめご了承ください。
コードレビュー
レビューの流れ
PR 提出後、プロジェクトメンテナーがコードをレビューします。レビュー中、メンテナーはコードスタイル、パフォーマンス最適化、セキュリティ改善など、さまざまな改善提案を行う場合があります。メンテナーの提案をよく読み、提案に従って修正してください。
レビュー基準
コードレビューでは、プロジェクトメンテナーは以下の基準に従います。
- コードスタイル:コードスタイルがプロジェクトのスタイルガイドに合っていることを確認します。
- パフォーマンス最適化:コードに重大なパフォーマンス問題がある場合は、最適化案を提示してください。
- ドキュメント更新:コード変更がドキュメントに影響する場合は、対応するドキュメントを更新してください。
ヘルプを求める
多くの場合、プロジェクトメンテナーはコードレビュー中に発生した問題の解決を支援し、コードがメインブランチへスムーズにマージされるようサポートします。助けが必要な場合は、PR コメント欄の議論を確認してください。
メンテナーへの応募
プロジェクトに一定数の PR 貢献を行うと、メンテナーに応募する資格が得られます。メンテナーになりたい場合は、以下の手順でメールを送って申請してください。
個人の Git アカウント情報(ユーザー名、メールアドレス)を準備してください。これは貢献記録の確認と、後日の招待メール送信に使用します。
プロジェクトへの貢献情報を準備してください。これには、これまで提出・マージされた PR リンク、議論への参加回数、報告した Issue 数などが含まれます。
konado@godothub.comへメールを送信してください。件名は「Konado メンテナー応募」とし、本文に上記情報を含めてください。希望する場合は、興味、スキル、オープンソースプロジェクトへの参加経験などを含む自己紹介を添えてください。私たちがあなたをよりよく理解する助けになります。
プロジェクトメンテナーチームは、できるだけ早く申請へ返信します。貢献記録を確認した後、あなたのメールアドレスへ招待メールを送信します。メール内の指示に従って、メンテナー身份の確認とリポジトリ権限の設定を完了してください。
Konado プロジェクトの一員となり、私たちと一緒にオープンソースコミュニティへ貢献していただけることを期待しています!