ワークフローを自動化し、パッケージを保守する#

パッケージを作成、公開してリポジトリを設定したら、次のステップは開発とメンテナンスのワークフローを自動化することです。自動化により、パッケージの保守がより簡単、より堅牢、より安全になります。また、新しいコントリビューターが複雑な開発環境やテスト ワークフローを手動でセットアップする必要がなく、すぐに作業を開始できるようになります。

なぜ自動化するのか?#

テストの実行、コード スタイルのチェック、ドキュメントの作成などの反復的なタスクを自動化すると、これらの重要な手順が毎回一貫して実行されるようになります。この一貫性により、バグを早期に発見し、コードの品質を維持し、他の人がパッケージに貢献しやすくなります。自動化により時間も節約できます。長いコマンド シーケンスを覚えて入力する代わりに、単純なコマンドですべてを実行したり、コードを GitHub にプッシュするときにワークフローを自動的に実行したりできます。

学べること#

このセクションでは、Python パッケージの 2 つの主要な自動化戦略について説明します。

タスク ランナー は、テストの実行、ドキュメントの構築、コードのフォーマット、エラーのチェックなど、一般的な開発タスクをローカルで自動化するのに役立ちます。毎回長いコマンド シーケンスを入力する代わりに、タスクを一度定義し、単純なコマンドで実行します。 Hatch や Nox などのタスク ランナーは、さまざまなワークフローの分離環境も管理し、各タスクに適切な依存関係を確保します。

継続的インテグレーション (CI) は、コードが GitHub にプッシュされるたび、または誰かがプル リクエストを開くたびにテストとチェックを自動的に実行することで、自動化をさらに進めます。 CI では、すべての変更がマージされる前に、異なる Python バージョンおよびオペレーティング システム間でテストされることが保証されます。継続的デプロイメント (CD) を使用して、PyPI へのパッケージの公開とドキュメントのデプロイを自動化することもできます。

タスク ランナーと CI/CD を組み合わせることで、パッケージの保守が容易になり、コントリビューターにとってより歓迎される堅牢な開発ワークフローが作成されます。

conda 環境での開発インストール は、conda ベースの科学開発環境をローカルの Python パッケージ開発と接続するのに役立ちます。これは、conda が適切に管理するコンパイル済み依存関係またはシステム レベルの依存関係にパッケージが依存している場合に特に便利です。