Libraries
この章では、Poetryを使用してライブラリをインストール可能にする方法について説明します。
Versioning
Poetryは、すべてのプロジェクトでPEP 440に準拠したバージョンを必要とします。
Poetryはリリース規約を強制していませんが、PEP 440の範囲内でsemantic versioningの使用を奨励し、特にsemverに適したversion constraintsをサポートしています。
Note
例えば、1.0.0-hotfix.1はPEP 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