コンテンツにスキップ

Libraries

この章では、Poetryを使用してライブラリをインストール可能にする方法について説明します。

Versioning

Poetryは、すべてのプロジェクトでPEP 440に準拠したバージョンを必要とします。

Poetryはリリース規約を強制していませんが、PEP 440の範囲内でsemantic versioningの使用を奨励し、特にsemverに適したversion constraintsをサポートしています。

Note

例えば、1.0.0-hotfix.1PEP 440と互換性がありません。 代わりに1.0.0-post1または1.0.0.post1を使うこともできます。

Lock file

ライブラリでは、必要に応じてpoetry.lockファイルをコミットできます。 これにより、チームは常に同じバージョンの依存関係に対してテストすることができます。 ただし、このロックファイルは、このファイルに依存する他のプロジェクトには影響しません。 これは主プロジェクトに対してのみ有効です。

ロックファイルをコミットせずにgitを使用している場合は、.gitignoreに追加します。

Packaging

ライブラリを実際に公開する前に、ライブラリをパッケージ化する必要があります。

poetry build

このコマンドは、ライブラリを2つの異なる形式でパッケージ化します。ソース形式のsdistと、compiledパッケージのwheelです。

Poetryは、パッケージを構築するときに自動的にいくつかのメタデータファイルを含めます。wheelを構築するとき、次のファイルが.dist-infoディレクトリに含まれます。 - LICENSE - LICENSE.* - COPYING - COPYING.* - LICENSES/**

sdistを構築すると、以下のファイルがルートフォルダに含まれます。 - LICENSE*

構築が完了したら、ライブラリを公開する準備が整います。

Publishing to PyPI

これでパッケージを公開できるようになりました。

PoetryはデフォルトでPyPIに公開されます。 PyPIに公開されたものはすべて、Poetryを通じて自動的に利用できます。pendulum はPyPI上にあるので、追加のリポジトリを指定しなくてもPyPIに依存できます。

poetry-demoをPythonコミュニティーと共有したければ、PyPIにも公開したいと思います。

poetry publish

これは、あなたが登録ユーザであり、認証情報を設定したが適切であるという条件で、ライブラリをパッケージ化してPyPIに公開します。

Note

publishコマンドは、デフォルトではbuildを実行しません。

パッケージを一緒にビルドして公開したい場合は、--buildオプションを渡してください。

これが完了すると、あなたのライブラリは誰でも利用できるようになります。

Publishing to a private repository

場合によっては、ライブラリをプライベートにしておきながら、チームがアクセスできるようにしたいこともあります。

この場合は、プライベートリポジトリを使用する必要があります。

プライベートリポジトリに発行するには、そのリポジトリをリポジトリのグローバルリストに追加する必要があります。詳細については、リポジトリの追加を参照してください。

これが完了したら、次のように実際にパブリッシュできます。

poetry publish -r my-repository