Skip to content

Latest commit

 

History

History
217 lines (153 loc) · 7.21 KB

File metadata and controls

217 lines (153 loc) · 7.21 KB

貢献ガイドライン

<YOUR_PROJECT_NAME>プロジェクトへの貢献を検討していただき、ありがとうございます。このガイドでは、バグ報告、コード変更の提案、新機能の実装などの貢献方法について説明します。

目次

開発環境のセットアップ

必要条件

  • Python 3.9以上
  • pip(最新バージョン推奨)
  • Git

セットアップ手順

  1. リポジトリをクローンします:
git clone https://github.com/<YOUR_USERNAME>/<YOUR_REPOSITORY>.git
cd <YOUR_REPOSITORY>
  1. 仮想環境を作成してアクティベートします:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
  1. 依存関係をインストールします:
# 基本依存関係
pip install -e .
# 開発依存関係
pip install -e ".[dev]"
  1. pre-commitフックをインストールします:
pre-commit install
  1. 環境設定ファイルを作成します:
cp .env.example .env
# .envファイルを編集して必要な設定を追加

開発プロセス

当プロジェクトではGitHub Flowを採用しています:

  1. mainブランチから新しい機能ブランチを作成します
  2. コードを修正し、変更をコミットします
  3. GitHub上でプルリクエストを作成します
  4. レビューとディスカッションを行います
  5. 変更が承認されたら、mainブランチにマージします

ブランチ命名規則

  • 機能追加: feature/短い説明
  • バグ修正: fix/問題の短い説明
  • ドキュメント: docs/変更の説明
  • リファクタリング: refactor/変更の説明
  • テスト: test/テスト対象の説明

コミットメッセージ規則

コミットメッセージは以下の形式に従ってください:

<種類>: <簡潔な説明>

<詳細な説明(必要な場合)>

種類には以下のものがあります:

  • feat: 新機能
  • fix: バグ修正
  • docs: ドキュメントのみの変更
  • style: コードの意味に影響しない変更(フォーマット等)
  • refactor: バグ修正でも機能追加でもないコード変更
  • test: テスト追加・既存テストの修正
  • chore: ビルドプロセスやツール関連の変更

例:

feat: GoogleSpreadsheetクラスに列単位の読み込み機能を追加

- 特定の列のみを読み込むget_column()メソッドを実装
- パフォーマンス改善のための最適化

コーディング規約

当プロジェクトでは、以下のコーディング規約に従ってください:

  1. PEP 8: Pythonの標準コーディングスタイルガイドに従います
  2. 型ヒント: すべての関数・メソッドには型ヒントを追加します
  3. ドキュメンテーション: すべてのクラス・関数・メソッドにはdocstringを追加します
  4. テスト: 新しい機能にはテストを追加します

コードの品質を確保するために、ruffを使用してコードスタイルをチェックします:

# コードスタイルチェック
ruff check zangetsu_data

テスト

すべてのコード変更は、関連するユニットテストを含める必要があります。テストはpytestを使用して実行されます。

テストの実行方法

# すべてのテストを実行
pytest

# 特定のテストモジュールを実行
pytest tests/test_common_database.py

# カバレッジレポートを生成
pytest --cov=zangetsu_data tests/

テスト規則

  • 各クラスに対応するテストクラスをtests/ディレクトリに作成します
  • テストクラスはTest<クラス名>の形式で命名します
  • 各メソッドに対して少なくとも1つのテストケースを作成します
  • モックを使用して外部依存性をテストから分離します

ドキュメント

コード変更を行う場合は、以下のドキュメントも更新してください:

  1. 関連するクラス・メソッドのdocstring
  2. README.mdの使用例(必要な場合)
  3. インラインコメント(複雑なロジックに対して)

docstringはGoogle Styleフォーマットに従ってください。

バグ報告と機能リクエスト

バグを報告したり、新機能をリクエストする場合は、GitHubのIssueを使用してください。

バグ報告

バグ報告には以下の情報を含めてください:

  • タイトル: バグを簡潔に説明
  • 環境: Pythonバージョン、OS、zangetsu-dataのバージョン
  • 再現手順: バグを再現するための詳細な手順
  • 期待される動作: 本来どのように動作すべきか
  • 実際の動作: 実際に何が起こったか
  • 関連するログ出力やスクリーンショット

機能リクエスト

機能リクエストには以下の情報を含めてください:

  • タイトル: 機能を簡潔に説明
  • ユースケース: この機能がどのような問題を解決するか
  • 提案される実装: 実装方法の提案(オプション)
  • 代替案: 検討した他のアプローチ(もしあれば)

プルリクエストの作成

プルリクエストを作成する前に、以下を確認してください:

  1. コードがすべてのテストに合格すること
  2. 新しい機能にはテストが追加されていること
  3. ドキュメントが更新されていること
  4. コードスタイルがガイドラインに従っていること

プルリクエストの説明には、以下の情報を含めてください:

  • 変更内容の概要
  • 変更理由(関連するIssueがある場合はリンク)
  • テスト方法
  • スクリーンショットやログ(UIの変更またはパフォーマンスの改善の場合)

ライセンス

当プロジェクトへの貢献は、プロジェクトのライセンスの下で公開されることに同意したものとみなされます。


質問やサポートが必要な場合は、Issueを開くか、プロジェクトのメンテナーにお問い合わせください。