Contribution Guideline
このドキュメントでは, truztプロジェクトへの貢献方法について説明します.
開発環境のセットアップ
1. uvのインストール
このプロジェクトではuvを使用して, Python環境とパッケージ管理を行います. uvのインストール手順は手元の環境によって公式ドキュメントを参照してください.
2. プロジェクトのセットアップ
3. pre-commitのセットアップ
このプロジェクトでは, コードの品質を保つためにpre-commitを使用しています.以下のコマンドでセットアップしてください:
これにより, コミット時に以下のチェックが自動的に実行されます: - commitizen: コミットメッセージの形式チェック - ruff: コードの静的解析とフォーマット - pyright: 型チェック
開発プロセス
1. 新しい機能の開発やバグ修正
- プロジェクトをフォークし, ローカルにクローンします
- 既存のissueを確認し, 同様の内容がないことを確認します
- 新規のissueを作成し, 実装内容について説明します
- 新しいブランチを作成
- 変更を加えます
- 必要に応じテストを実行
- プルリクエストを作成
2. コードスタイル
このプロジェクトでは, ruffを使用してコードスタイルを管理し, pyrightを使用して型チェックを行っています.
2.1 Ruff
主なルール:
- 行の最大長: 100文字
- docstringスタイル: Google形式
- インポートの自動整理
- 型アノテーションの必須化(テストファイルを除く)
手動でコードをフォーマットする場合:
2.2 Pyright
Pyrightは型チェックを行い, 以下を確認します:
- すべての関数とメソッドの型アノテーション
- 変数の型の整合性
- オプショナルな値の適切な処理
- 未定義の属性へのアクセス
設定はpyproject.toml
の[tool.pyright]
セクションで管理されています.
2.3 VSCode Extensions
VSCodeでの開発では以下の拡張を推奨します:
- Linter, Formatter: Ruff
- Python Type Check: Pylance
- Typo Check: Typos spell checker
3. プルリクエストの作成
- 変更をコミットし, プッシュします
- GitHubでプルリクエストを作成します
- プルリクエストのタイトルと説明には以下を含めてください:
- 変更の目的
- 変更の概要
- 関連するIssue番号
4. レビュープロセス
- CIチェックがすべてパスすることを確認します
- レビュアーからのフィードバックに基づいて必要な修正を行います
- 承認を得たら, 変更がマージされます
ヘルプが必要な場合
- バグを見つけた場合は, GitHubのIssueを作成してください
- 質問がある場合は, GitHubのDiscussionsを使用してください
ご協力ありがとうございます!