<YOUR_PROJECT_NAME>プロジェクトへの貢献を検討していただき、ありがとうございます。このガイドでは、バグ報告、コード変更の提案、新機能の実装などの貢献方法について説明します。
- Python 3.9以上
- pip(最新バージョン推奨)
- Git
- リポジトリをクローンします:
git clone https://github.com/<YOUR_USERNAME>/<YOUR_REPOSITORY>.git
cd <YOUR_REPOSITORY>- 仮想環境を作成してアクティベートします:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate- 依存関係をインストールします:
# 基本依存関係
pip install -e .
# 開発依存関係
pip install -e ".[dev]"- pre-commitフックをインストールします:
pre-commit install- 環境設定ファイルを作成します:
cp .env.example .env
# .envファイルを編集して必要な設定を追加当プロジェクトではGitHub Flowを採用しています:
mainブランチから新しい機能ブランチを作成します- コードを修正し、変更をコミットします
- GitHub上でプルリクエストを作成します
- レビューとディスカッションを行います
- 変更が承認されたら、
mainブランチにマージします
- 機能追加:
feature/短い説明 - バグ修正:
fix/問題の短い説明 - ドキュメント:
docs/変更の説明 - リファクタリング:
refactor/変更の説明 - テスト:
test/テスト対象の説明
コミットメッセージは以下の形式に従ってください:
<種類>: <簡潔な説明>
<詳細な説明(必要な場合)>
種類には以下のものがあります:
feat: 新機能fix: バグ修正docs: ドキュメントのみの変更style: コードの意味に影響しない変更(フォーマット等)refactor: バグ修正でも機能追加でもないコード変更test: テスト追加・既存テストの修正chore: ビルドプロセスやツール関連の変更
例:
feat: GoogleSpreadsheetクラスに列単位の読み込み機能を追加
- 特定の列のみを読み込むget_column()メソッドを実装
- パフォーマンス改善のための最適化
当プロジェクトでは、以下のコーディング規約に従ってください:
- PEP 8: Pythonの標準コーディングスタイルガイドに従います
- 型ヒント: すべての関数・メソッドには型ヒントを追加します
- ドキュメンテーション: すべてのクラス・関数・メソッドにはdocstringを追加します
- テスト: 新しい機能にはテストを追加します
コードの品質を確保するために、ruffを使用してコードスタイルをチェックします:
# コードスタイルチェック
ruff check zangetsu_dataすべてのコード変更は、関連するユニットテストを含める必要があります。テストはpytestを使用して実行されます。
# すべてのテストを実行
pytest
# 特定のテストモジュールを実行
pytest tests/test_common_database.py
# カバレッジレポートを生成
pytest --cov=zangetsu_data tests/- 各クラスに対応するテストクラスを
tests/ディレクトリに作成します - テストクラスは
Test<クラス名>の形式で命名します - 各メソッドに対して少なくとも1つのテストケースを作成します
- モックを使用して外部依存性をテストから分離します
コード変更を行う場合は、以下のドキュメントも更新してください:
- 関連するクラス・メソッドのdocstring
README.mdの使用例(必要な場合)- インラインコメント(複雑なロジックに対して)
docstringはGoogle Styleフォーマットに従ってください。
バグを報告したり、新機能をリクエストする場合は、GitHubのIssueを使用してください。
バグ報告には以下の情報を含めてください:
- タイトル: バグを簡潔に説明
- 環境: Pythonバージョン、OS、zangetsu-dataのバージョン
- 再現手順: バグを再現するための詳細な手順
- 期待される動作: 本来どのように動作すべきか
- 実際の動作: 実際に何が起こったか
- 関連するログ出力やスクリーンショット
機能リクエストには以下の情報を含めてください:
- タイトル: 機能を簡潔に説明
- ユースケース: この機能がどのような問題を解決するか
- 提案される実装: 実装方法の提案(オプション)
- 代替案: 検討した他のアプローチ(もしあれば)
プルリクエストを作成する前に、以下を確認してください:
- コードがすべてのテストに合格すること
- 新しい機能にはテストが追加されていること
- ドキュメントが更新されていること
- コードスタイルがガイドラインに従っていること
プルリクエストの説明には、以下の情報を含めてください:
- 変更内容の概要
- 変更理由(関連するIssueがある場合はリンク)
- テスト方法
- スクリーンショットやログ(UIの変更またはパフォーマンスの改善の場合)
当プロジェクトへの貢献は、プロジェクトのライセンスの下で公開されることに同意したものとみなされます。
質問やサポートが必要な場合は、Issueを開くか、プロジェクトのメンテナーにお問い合わせください。