メインコンテンツまでスキップ

開発に貢献する

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で自動的に実行されます。プルリクエストがマージされるためには、全てのチェックをパスする必要があります。