プルリクエスト ガイドライン
このドキュメントは XOOPS プロジェクトへプルリクエストを送信するための包括的なガイドラインを提供します。これらのガイドラインに従うことで、スムーズなコード レビューと高速なマージが確保されます。
プルリクエスト作成前
Section titled “プルリクエスト作成前”ステップ 1: 既存の問題をチェック
Section titled “ステップ 1: 既存の問題をチェック”1. GitHub リポジトリにアクセス2. Issues タブに進む3. 変更に関連する既存の問題を検索4. 未解決とクローズされた問題の両方をチェックステップ 2: リポジトリをフォークしてクローン
Section titled “ステップ 2: リポジトリをフォークしてクローン”# GitHub でリポジトリをフォーク# リポジトリ ページで "Fork" ボタンをクリック
# フォークをクローンgit clone https://github.com/YOUR_USERNAME/XOOPS.gitcd XOOPS
# アップストリーム リモートを追加git remote add upstream https://github.com/XOOPS/XOOPS.git
# リモートを確認git remote -v# origin (フォーク) と upstream (公式) を表示する必要がありますステップ 3: フィーチャー ブランチを作成
Section titled “ステップ 3: フィーチャー ブランチを作成”# メイン ブランチを更新git fetch upstreamgit checkout maingit merge upstream/main
# フィーチャー ブランチを作成# 説明的な名前を使用: bugfix/issue-number または feature/descriptiongit checkout -b bugfix/123-fix-database-connectiongit checkout -b feature/add-psr-7-supportステップ 4: 変更を行う
Section titled “ステップ 4: 変更を行う”# ファイルに変更を加える# コード スタイル ガイドラインに従う
# 変更をステージgit add .
# 明確なメッセージでコミットgit commit -m "Fix database connection timeout issue"
# 論理的な変更のために複数のコミットを作成git commit -m "Add connection retry logic"git commit -m "Improve error messages for debugging"コミット メッセージ標準
Section titled “コミット メッセージ標準”良いコミット メッセージ
Section titled “良いコミット メッセージ”明確で説明的なメッセージを使用し、以下のパターンに従います:
# フォーマット<type>: <subject>
<body>
<footer>
# 例 1: バグ修正fix: resolve database connection timeout
Add exponential backoff retry mechanism to database connection.Connections now retry up to 3 times with increasing delays.
Fixes #123プルリクエスト説明
Section titled “プルリクエスト説明”PR テンプレート
Section titled “PR テンプレート”## 説明加えた変更と理由の明確な説明。
## 変更タイプ- [ ] バグ修正- [ ] 新機能- [ ] 破壊的な変更- [ ] ドキュメント更新
## 関連する問題Closes #123関連: #456
## 加えた変更- 変更 1- 変更 2- 変更 3
## テスト- [ ] ローカルでテスト- [ ] すべてのテストがパス- [ ] 新しいテストを追加- [ ] マニュアル テスト ステップを含む
## チェックリスト- [ ] コードはスタイル ガイドラインに従う- [ ] セルフ レビューを完了- [ ] 複雑なロジックにコメントを追加- [ ] ドキュメントを更新- [ ] 新しい警告は生成されない- [ ] 新機能にテストを追加- [ ] すべてのテストがパスコード品質要件
Section titled “コード品質要件”コード スタイル
Section titled “コード スタイル”Code-Style ガイドラインに従う:
<?php// 良い: PSR-12 スタイルnamespace MyModule\Controller;
use MyModule\Model\Item;use MyModule\Repository\ItemRepository;
class ItemController{ private ItemRepository $repository;
public function __construct(ItemRepository $repository) { $this->repository = $repository; }
public function indexAction() { $items = $this->repository->findAll(); return $this->render('items', ['items' => $items]); }}ユニット テスト
Section titled “ユニット テスト”namespace Tests\Feature;
use PHPUnit\Framework\TestCase;use Xoops\Database\XoopsDatabase;
class DatabaseConnectionTest extends TestCase{ private XoopsDatabase $database;
protected function setUp(): void { $this->database = new XoopsDatabase(); }
public function testConnectionWithValidCredentials() { $result = $this->database->connect(); $this->assertTrue($result); }
public function testConnectionWithInvalidCredentials() { $this->database->setCredentials('invalid', 'invalid'); $result = $this->database->connect(); $this->assertFalse($result); }}テストを実行
Section titled “テストを実行”# すべてのテストを実行vendor/bin/phpunit
# 特定のテスト ファイルを実行vendor/bin/phpunit tests/Feature/DatabaseConnectionTest.php
# カバレッジで実行vendor/bin/phpunit --coverage-html coverage/ブランチの操作
Section titled “ブランチの操作”ブランチを最新に保つ
Section titled “ブランチを最新に保つ”# アップストリームから最新を取得git fetch upstream
# メイン ブランチ上でリベースgit rebase upstream/main
# またはマージを優先git merge upstream/main
# リベースした場合は強制プッシュ (警告: ブランチのみ!)git push -f origin bugfix/123-fix-database-connectionプルリクエストを作成
Section titled “プルリクエストを作成”PR タイトル フォーマット
Section titled “PR タイトル フォーマット”[Type] 短い説明 (fix/feature/docs)
例:- [FIX] Resolve database connection timeout issue (#123)- [FEATURE] Implement PSR-7 HTTP message interfaces- [DOCS] Update API reference for Criteria classコード レビュー プロセス
Section titled “コード レビュー プロセス”レビュアーが見るもの
Section titled “レビュアーが見るもの”-
正確性
- コードは述べられた問題を解決するか
- エッジ ケースは処理されるか
- エラー処理は適切か
-
品質
- コーディング標準に従うか
- メンテナンス可能か
- よくテストされているか
-
パフォーマンス
- パフォーマンス回帰はないか
- クエリは最適化されているか
- メモリ使用は合理的か
-
セキュリティ
- 入力検証か
- SQL インジェクション防止か
- 認証/認可か
フィードバックに対応
Section titled “フィードバックに対応”# フィードバックに対応# レビュー コメントに基づいてファイルを編集
# 変更をコミットgit commit -m "Address code review feedback
- Add additional error handling- Improve test coverage for edge cases- Update documentation"
# 変更をプッシュgit push origin bugfix/123-fix-database-connectionベストプラクティス サマリー
Section titled “ベストプラクティス サマリー”すべき こと
Section titled “すべき こと”- 説明的なコミット メッセージを作成
- フォーカスされた、単一目的の PR を作成
- 新機能にテストを含める
- ドキュメントを更新
- 関連する問題を参照
- PR 説明を明確に保つ
- レビューに迅速に対応
- 無関連な変更を含める
- main をブランチにマージ (リベースを使用)
- レビュー開始後に強制プッシュ
- テストをスキップ
- 進行中の作業を送信
- コード レビュー フィードバックを無視
関連ドキュメント
Section titled “関連ドキュメント”- ../貢献 - 貢献概要
- Code-Style - コード スタイル ガイドライン
- ../../03-Module-Development/Best-Practices/Testing - テスト ベストプラクティス
- ../Architecture-Decisions/ADR-Index - アーキテクチャ ガイドライン
最終更新: 2026-01-31 適用対象: すべての XOOPS プロジェクト リポジトリ: https://github.com/XOOPS/XOOPS