開発に貢献する
QURI Partsの開発に興味を持っていただきありがとうございます!まずは、以下のコントリビューションガイドラインを読んでください。
Issues
IssueはGitHubで管理しています。新規のissueを作る前に、既に同様のissueがないか確認するようにしてください。
Contributor License Agreement
開発者として貢献していただくには、Contributor License Agreement (CLA) への同意が必要となります。この同意により、あなたの実装がQURI Partsプロジェクトの一部として利用・再配布されることを認めることになります。GitHubのQURI Partsリポジトリに対しプルリクエストを作成した際に、CLAへの 同意を示すためのサインを求めるプルリクエストへのコメントが自動で投稿されますので、同意する場合はコメントでサインをしてください。この同意は以後のコントリビューション全てに適用されます。
開発
開発環境の構築にはPoetryを使用しています。poetryの最新版をインストールし、poetry install
を実行することで仮想環境の構築と依存するライブラリのインストールが行われ、開発環境の構築ができます。
Lintとテスト
lintとテストには以下のツールを使用しています。実装後には以下のツールを実行し、全てパスしているか確認するようにしてください。各ツールの使用方法は以下の二通りあります。
poetry run
を使用する。例えば、poetry run black .
poetry shell
コマンドで仮想環境をアクティブにし、各コマンドを実行する
Import formatting
poetry run isort .
Code formatting
poetry run black .
Document formatting
poetry run docformatter -i -r .
Linting
poetry run flake8
Type checking
poetry run mypy .
各パッケージのディレクトリ(packages/*/
)でmypyを実行する場合は、mypyの設定ファイル mypy.ini
を指定する必要があります。
poetry run mypy --config-file ../../mypy.ini .
テスト
poetry run pytest
Continuous integration (CI)
プルリクエストを作成すると、上記のlinterやテストがGitHub Actionsで自動的に実行されます。プルリクエストがマージされるためには、全てのチェックをパスする必要があります。