これは、Pypiで配布されるPythonプロジェクトを作成するCookiecutterテンプレートです。 GitHub Actions、readthedocs.ioおよびCoveralls.ioとの統合が含まれます。
プロジェクト構造は、謝罪デモンストレーションプロジェクトのパターンに従います。詩はPythonパッケージと依存関係を管理し、ほとんどの日々のタスク(コマンドラインからのユニットテストの実行など)は、私のrunscriptフレームワークを使用して詩を通して組織化されています。ブラック、アイソルト、ピリントを使用して、コーディング標準が強制されます。 Python 3タイプのヒントは、MyPyを使用して検証されます。 GitHubアクションワークフローは、GHA-Shared-Workflowsを使用して実装されたマトリックスビルドです。コードスタイルのチェックを実施するための事前コミットフックもあります。生成されたDEVELOPER.mdファイルは、コードの構造の構造、開発環境のセットアップ方法などについてのメモを提供します。
このテンプレートを使用するには、cookeiecutterをインストールする必要があります。
pip install cookiecutter
結果のプロジェクトは、詩のビルドツールに依存します。 Python 3の通訳と詩のみをインストールする必要があります。詩自体が他のすべての世話をします。指示を参照してください。
結果のDEVELOPER.mdファイルで説明されている開発者プロセスは、BashなどのUNIXスタイルのシェルを使用していると想定しています。 Windowsでは、Windows用のGitでインストールされたGit Bashエミュレーターを使用することが期待されています。
デフォルトでは、生成された.github/workflows/test-suite.ymlワークフローのリリースプロセスは、Githubリポジトリのリリースにそれらを取り付けることにより、アーティファクトを公開するように構成されています。 (生成されたDEVELOPER.mdファイルには手順が含まれています。)オプションで、PYPIに公開することもできます。これを行うには、自分でPypiでアカウントを作成し、プロジェクトを登録してください。プロジェクトが存在したら、PYPIアカウント設定に移動し、新しいプロジェクトのアップロード許可を使用してAPIトークンを作成します。 githubリポジトリに、 PYPI_TOKENと呼ばれるgithubアクションの秘密を追加して、トークンを保持します。次に、 publish-pypi: trueを設定するようにtest-suite.ymlを調整します。
cookiecutterを使用してテンプレートを実行します。
cookiecutter gh:pronovic/cookiecutter-pypi
プロンプトが表示されたら、すべてのテンプレートパラメーターの値を提供します。
project_slug [sample-project]:
project_name [Sample Project]:
short_description [Short description]:
author_name [First Last]:
author_email [[email protected]]:
github_owner [owner]:
github_repo [samplerepo]:
default_branch [master]:
package [sample]:
python_version [>=3.9,<4]:
black_target ['py39', 'py310']:
copyright_year [2022]:
プロジェクトスラッグは結果のディレクトリの名前であるため、この例では、プロジェクトはsample-projectで生成されます。
cd sample-project
次に、gitリポジトリを初期化します。
git init . && git add . && git commit -m "Initial revision based on pronovic/cookiecutter-pypi"
すでにpoetryをインストールしていると仮定すると(指示に従って)、 runスクリプトを使用して物事を開始できます。まず、依存関係をインストールし、コミット前のフックをセットアップします。
./run install
最後に、テストスイートを実行します。
./run suite
テストスイートが合格すると仮定すると、 poetry.lockをチェックインする必要があります。すべての依存関係の現在のバージョンでロックする必要があります。
git add poetry.lock && git commit -m "Add initial poetry.lock" poetry.lock
次に、リポジトリにプッシュして、GitHubアクションプロセスをテストできます。
注:他のコマンドが利用可能なものを確認するには、
./run --helpを使用してください。 Pycharmとの統合など、開発環境の詳細については、生成されたDEVELOPER.mdファイルを参照してください。
テストするプラットフォームとPythonバージョンを反映するには、 .github/workflows/test-suite.yml手動で調整する必要があります。推奨されるワークフローは、サポートされているすべてのPythonバージョンのLinux上のマトリックスビルドを実行し、最新のPythonバージョンでのみWindowsとMacOにビルドを実行します。 GitHubアクションでは、Linuxランナーははるかに高速で信頼性が高くなるため、この戦略は最良の結果をもたらすようです。