2025/1/5の Poetry v2.0.0リリースに伴い、いくつかの変更が導入されました。pyproject.tomlの記述方法の変更や、一部コマンドのプラグイン化などが挙げられます。以下に、特に重要と思われる変更点をまとめました。
pyproject.tomlの記述方法の変更
PEP 621に準拠した[project]セクションのサポートが追加されました。これにより、従来の[tool.poetry]セクションからの移行が推奨されています。
旧形式
[tool.poetry]
name = "example-project"
version = "0.1.0"
description = "An example project"
authors = ["Your Name <your.email@example.com>"]
新形式
[project]
name = "example-project"
version = "0.1.0"
description = "An example project"
authors = [
{ name = "Your Name", email = "your.email@example.com" }
]
package-modeオプションの必須化
プロジェクトと同じ名前のディレクトリの中に__init__.py ファイルとソースコードがある状態ではない時に、
package-modeオプションの設定が必須となりました。(前verまでは警告だったが、v2.0.0からはエラー)
[tool.poetry]
package-mode = false
を記述することでエラーを防げる。
dev-dependenciesの非推奨化
group.dev.dependenciesが推奨となった
poetry add pytest --group dev
[tool.poetry.group.dev.dependencies]
pytest = "^6.2"
一部コマンドのプラグイン化
Poetry v2.0.0では、一部のコマンドが poetry-core から分離され、プラグインとして提供されるようになりました。これにより、これらのコマンドを使用する際には、対応するプラグインのインストールが必要となりました。
poetry shell
poetry-plugin-shellプラグインのインストールが必要。
poetry self add poetry-plugin-shell
代わりとして、poetry-coreに
poetry env activate
が追加された。
poetry export
poetry-plugin-exportプラグインのインストールが必要。
poetry self add poetry-plugin-export
一部コマンドの非推奨化・置き換え
poetry install --syncの非推奨化
poetry sync
が推奨となった。
virtualenvs.prefer-active-pythonの廃止
代わりとして、
poetry config virtualenvs.use-poetry-python true
に置き換え