This version brings huge improvements to the dependency resolution speed.

New Features

Huge speed improvements in the dependency resolution process

In previous releases, the dependency resolution process could be extremely slow, especially for some packages like boto3, due to the way the resolver works.

So, one of the focus of this release was to improve it so that the dependency resolution time could be deemed acceptable. And it seems it paid off.

As an example, we will take boto3 which was an extreme case: the dependency resolution time goes from about 30 minutes to about 11 seconds on a cold cache!

This is a huge improvement and should help you manage your projects more efficiently.

add command improvements.

The add command has been improved.

You can now use it to add git dependencies:

poetry add pendulum --git https://github.com/sdispater/pendulum.git

You can also add path (directories or files) dependencies:

poetry add my-package --path ../my-package/
poetry add my-package --path ../my-package/dist/my-package-0.1.0.tar.gz
poetry add my-package --path ../my-package/dist/my_package-0.1.0.whl

Directory dependencies are now supported

You can now specify directory dependencies in your pyproject.toml file.

[tool.poetry.dependencies]
my-package = { path = "../my-package/" }

Support for src/ layout in projects

poetry now supports the src/ layout in projects.

Note that the name of the package or module inside the src/ directory is still derived from the name of the project defined in the pyproject.toml file.

my-package/
└── src/
    └── my_package/
        └── __init__.py

Automatic detection of .venv virtualenvs

If you store you virtualenv inside your project in the form of a .venv directory, poetry will now automatically detect it and use it.

New cache:clear command

A new cache:clear command has been added, to help clear caches when something goes wrong.

This is useful in the rare cases where new distributions are added to a package after the cache has been generated (see https://github.com/sdispater/poetry/issues/51).

You can clear caches for a specific version:

poetry cache:clear pypy:pendulum:1.4.4

or you can clear all caches for a specific repository:

poetry cache:clear pypy --all

Changes

  • Dependency resolution caches now use sha256 hashes.
  • Changed CLI error style.
  • Improved debugging of dependency resolution.
  • Poetry now attempts to find pyproject.toml not only in the directory it was invoked in, but in all its parents up to the root. This allows to run Poetry commands in project subdirectories.
  • Made the email address for authors optional.

Fixes

  • Fixed handling of extras when resolving dependencies.
  • Fixed self:update command for some installation.
  • Fixed handling of extras when building projects.
  • Fixed handling of wildcard dependencies wen packaging/publishing.
  • Fixed an error when adding a new packages with prereleases in lock file.
  • Fixed packages name normalization.
View Comments