Announcing Poetry 1.4.0
The Poetry team is pleased to announce the immediate availability of Poetry 1.4.0.
If you have a previous version of Poetry installed via the official installer, getting Poetry 1.4.0 is as easy as:
$ poetry self update
Faster installation of packages #
Poetry 1.4 introduces a new modern installer, which is enabled by default. The new installer is independent from
and faster than the former default installer, especially if the packages are already cached. In contrast, to former
installers it does not compile byte code by default. (This is done automatically when the installed packages are used
for the first time.) In order to compile byte code on installation, you can run
poetry install --compile.
If you encounter issues, you can deactivate the new installer by setting
Further, the oldest installer (setting
false) has been deprecated, so there are
only two non-deprecated installers available (the new installer and the former default installer). Despite its name
experimental.new-installer=true had been the stable default installer for some releases now.
Validate path dependencies during use instead of during construction #
Path dependencies are not validated during construction anymore but only during use. In other words,
path dependencies are not validated if they are contained only in a group that is not selected for installation.
poetry lock --no-update does not fail anymore for renamed path dependencies.
Other important Changes #
generate-setup-file = false #
Poetry has long generated a stub
setup.py file for compatibility with older versions of
versions older than 19, the first to introduce support for PEP 517). Users who did not want Poetry to do this
have long been able to opt out with the
generate-setup-file option in
As already announced in the last blog post, Poetry 1.4 inverts this behavior, turning off generation of
default. This change should be transparent to nearly all users, as versions of
pip supporting alternate build systems
natively have been available for nearly four years.
Users who wish to maintain the legacy behavior may explicitly do so in their
pyproject.toml; however, users should
keep in mind that this option will be deprecated and eventually removed in future versions of Poetry:
[tool.poetry.build] generate-setup-file = true
- Add a modern installer (
installer.modern-installation) for faster installation of packages and independence from pip (#6205).
- Add support for
Private ::trove classifiers (#7271).
- Add the version of poetry in the
@generatedcomment at the beginning of the lock file (#7339).
- Add support for
- Deprecate the old installer, i.e. setting
- Remove unused
platformfield from cached package info and bump the cache version (#7304).
- Extra dependencies of the root project are now sorted in the lock file (#7375).
- Remove upper boundary for
- Validate path dependencies during use instead of during construction (#6844).
- Remove the deprecated
- Fix an issue where an unconditional dependency of an extra was not installed in specific environments (#7175).
- Fix an issue where a pre-release of a dependency was chosen even if a stable release fulfilled the constraint (#7225, #7236).
- Fix an issue where HTTP redirects were not handled correctly during publishing (#7160).
- Fix an issue where
poetry checkdid not handle the
-C, --directoryoption correctly (#7241).
- Fix an issue where the subdirectory information of a git dependency was not written to the lock file (#7367).
- Fix an issue where the wrong Python version was selected when creating an virtual environment (#7221).
- Fix an issue where packages that should be kept were uninstalled when calling
poetry install --sync(#7389).
- Fix an issue where an incorrect value was set for
sys.argvwhen running installed scripts (#6737).
- Fix an issue where hashes in
direct_url.jsonfiles were not written according to the specification (#7475).
- Fix an issue where poetry commands failed due to special characters in the path of the project or virtual environment (#7471).
- Fix an issue where poetry crashed with a
JSONDecodeErrorwhen running a Python script that produced certain warnings (#6665).
- Add advice on how to maintain a poetry plugin (#6977).
- Update tox examples to comply with the latest tox release (#7341).
- Mention that the
poetry exportcan export
- Add clarifications for moving configuration files (#6864).
- Mention the different types of exact version specifications (#7503).
- Improve marker handling (#528, #534, #530, #546, #547).
- Validate whether dependencies referenced in
extrasare defined in the main dependency group (#542).
- Poetry no longer generates a
setup.pyfile in sdists by default (#318).
- Fix an issue where trailing newlines were allowed in
- Fix an issue where the name of the data folder in wheels was not normalized (#532).
- Fix an issue where the order of entries in the RECORD file was not deterministic (#545).
- Fix an issue where zero padding was not correctly handled in version comparisons (#540).
- Fix an issue where sdist builds did not support multiple READMEs (#486).
- Fix an issue where the export failed if there was a circular dependency on the root package (#118).