Announcing Poetry 1.7.0

Published on November 3, 2023 in Releases with tags 1.X 1.7

The Poetry team is pleased to announce the immediate availability of Poetry 1.7.0.

If you have a previous version of Poetry installed via pipx, getting Poetry 1.7.0 is as easy as:

$ pipx upgrade poetry

If you used the official installer, you can run:

$ poetry self update

Highlights #

Official support for Python 3.12 #

Even though Poetry 1.6 probably works well with Python 3.12, we did some fine-tuning to make the user experience more consistent:

Python 3.12 is the first Python version that does not implicitly includes setuptools in newly created virtual environments. In order to align Poetry with other tools, we now also do not implicitly include setuptools in newly created Python 3.12 environments. In this context, we have also changed that wheel is not implicitly included anymore (for all Python versions). Further, setuptools and wheel will now be removed when running poetry install --sync if they are not required by the project. If you rely on setuptools or wheel, please make it an explicit dependency in your pyproject.toml.

Further, some deprecation warnings were addressed and the Programming Language :: Python :: 3.12 classifier will be set automatically now if Python 3.12 is in your project’s supported Python versions.

Improved handling of dependencies with extras during dependency resolution #

The extra marker is quite special. Whereas other markers can only have one value for a specific environment, extra can have multiple values at the same time.

For example, a marker like sys_platform == "win32" and sys_platform == "linux" can never be satisfied because sys_platform can only be either "win32" or "linux" (not both). By contrast, a marker like extra == "a" and extra == "b" can be satisfied if both extras are requested.

Poetry can now handle this peculiarity and ignore dependencies that are only relevant for inactive extras.

Fix longstanding race condition in poetry install #

Intermittent failures of poetry install with error messages like Backend 'setuptools.build_meta:__legacy__' is not available. should now be resolved by fixing a race condition when installing multiple source distributions with overlapping build requirements in parallel.

Upcoming Changes #

Removing poetry-plugin-export from the default installation #

Prior Poetry 1.2, export had been a built-in command. With Poetry 1.2, the export command was outsourced into poetry-plugin-export. To avoid a breaking change, we decided to install poetry-plugin-export per default. However, this resulted in a cyclic dependency between poetry and poetry-plugin-export, which causes issues for some third-party tools and results in an increased maintenance effort for the Poetry team.

Therefore, we are planning to not install poetry-plugin-export per default in a future version of Poetry. To ensure that as many users as possible are informed about this upcoming change, a warning, which can be deactivated, will be shown when running poetry export. In order to make your automation forward-compatible, just install poetry-plugin-export explicitly (even though it is already installed per default for now).

Changelog #

Added #

Changed #

Fixed #

Docs #

poetry-core (1.8.1) #

poetry-plugin-export (^1.6.0) #