Added
- Add support for the
project
section in thepyproject.toml
file according to PEP 621 (#9135, #9917). - Add support for defining Poetry plugins that are required by the project and automatically installed if not present (#9547).
- Lock resulting markers and groups and add a
installer.re-resolve
option (default:true
) to allow installation without re-resolving (#9427). - Add a
--local-version
option topoetry build
(#9064). - Add a
--clean
option topoetry build
(#9067). - Add FIPS support for
poetry publish
(#9101). - Add the option to use
poetry new
interactively and configure more fields (#9101). - Add a config option
installer.only-binary
to enforce the use of binary distribution formats (#9150). - Add support for
poetry search
in legacy sources (#9132). - Add support to resume downloads from connection resets (#9422).
- Add the option to define a constraint for the required Poetry version to manage the project (#9547).
- Add an
--all-groups
option topoetry install
(#9744). - Add an
poetry env activate
command as replacement ofpoetry shell
(#9763). - Add a
--markers
option topoetry add
to add a dependency with markers (#9814). - Add a
--migrate
option topoetry config
to migrate outdated configs (#9830). - Add a
--project
option to search thepyproject.toml
file in another directory without switching the directory (#9831). - Add support for shortened hashes to define git dependencies (#9748).
- Add partial support for conflicting extras (#9553).
- Add a
poetry sync
command as replacement ofpoetry install --sync
(#9801).
Changed
- Change the default behavior of
poetry lock
to--no-update
and introduce a--regenerate
option for the old default behavior (#9327). - Remove the dependency on
poetry-plugin-export
so thatpoetry export
is not included per default (#5980). - Outsource
poetry shell
intopoetry-plugin-shell
(#9763). - Change the interface of
poetry add --optional
to require an extra the optional dependency is added to (#9135). - Actually switch the directory when using
--directory
/-C
(#9831). - Drop support for Python 3.8 (#9692).
- Rename
experimental.system-git-client
toexperimental.system-git
(#9787, #9795). - Replace
virtualenvs.prefer-active-python
by the inverse settingvirtualenvs.use-poetry-python
and prefer the active Python by default (#9786). - Deprecate several fields in the
tool.poetry
section in favor of the respective fields in theproject
section in thepyproject.toml
file (#9135). - Deprecate
poetry install --sync
in favor ofpoetry sync
(#9801). - Upgrade the warning if the current project cannot be installed to an error (#9333).
- Remove special handling for
platformdirs 2.0
macOS config directory (#8916). - Tweak PEP 517 builds (#9094).
- Use Poetry instead of pip to manage dependencies in isolated build environments (#9168, #9227).
- Trust empty
Requires-Dist
with modern metadata (#9078). - Do PEP 517 builds instead of parsing
setup.py
to determine dependencies (#9099). - Drop support for reading lock files prior version 1.0 (created with Poetry prior 1.1) (#9345).
- Default to
>=
instead of^
for the Python requirement when initializing a new project (#9558). - Limit
build-system
to the current major version ofpoetry-core
when initializing a new project (#9812). - Remove pip-based installation, i.e.
installer.modern-installation = false
(#9392). - Remove
virtualenvs.options.no-setuptools
config option and never includesetuptools
per default (#9331). - Rename exceptions to have an
Error
suffix (#9705). - Remove deprecated CLI options and methods and revoke the deprecation of
--dev
(#9732). - Ignore installed packages during dependency resolution (#9851).
- Improve the error message on upload failure (#9701).
- Improve the error message if the current project cannot be installed to include another root cause (#9651).
- Improve the output of
poetry show <package>
(#9750). - Improve the error message for build errors (#9870).
- Improve the error message when trying to remove a package from a project without any dependencies (#9918).
- Drop the direct dependency on
crashtest
(#9108). - Require
keyring>=23.3.1
(#9167). - Require
build>=1.2.1
(#9283). - Require
dulwich>=0.22.6
(#9748).
Fixed
- Fix an issue where git dependencies with extras could only be cloned if a branch was specified explicitly (#7028).
- Fix an issue where
poetry env remove
failed ifvirtualenvs.in-project
was set totrue
(#9118). - Fix an issue where locking packages with a digit at the end of the name and non-standard sdist names failed (#9189).
- Fix an issue where credentials where not passed when trying to download an URL dependency (#9202).
- Fix an issue where using uncommon group names with
poetry add
resulted in a brokenpyproject.toml
(#9277). - Fix an issue where an inconsistent entry regarding the patch version of Python was kept in
envs.toml
(#9286). - Fix an issue where relative paths were not resolved properly when using
poetry build --directory
(#9433). - Fix an issue where unrequested extras were not uninstalled when running
poetry install
without an existing lock file (#9345). - Fix an issue where the
poetry-check
pre-commit hook did not trigger if onlypoetry.lock
has changed (#9504). - Fix an issue where files (rather than directories) could not be added as single page source (#9166).
- Fix an issue where invalid constraints were generated when adding a package with a local version specifier (#9603).
- Fix several encoding warnings (#8893).
- Fix an issue where
virtualenvs.prefer-active-python
was not respected (#9278). - Fix an issue where the line endings of the lock file were changed (#9468).
- Fix an issue where installing multiple dependencies from the same git repository failed sporadically due to a race condition (#9658).
- Fix an issue where installing multiple dependencies from forked monorepos failed sporadically due to a race condition (#9723).
- Fix an issue where an extra package was not installed if it is required by multiple extras (#9700).
- Fix an issue where a
direct_url.json
with vcs URLs not compliant with PEP 610 was written (#9007). - Fix an issue where other files than wheels were recognized as wheels (#9770).
- Fix an issue where
installer.max-workers
was ignored for the implicit PyPI source (#9815). - Fix an issue where local settings (from
poetry.toml
) were ignored for the implicit PyPI source (#9816). - Fix an issue where different
dulwich
versions resulted in different hashes for a git dependency from a tag (#9849). - Fix an issue where installing a yanked package with no dependencies failed with an
IndexError
(#9505). - Fix an issue where a package could not be added from a source that required an empty password (#9850).
- Fix an issue where setting
allow-prereleases = false
still allowed pre-releases if no other solution was found (#9798). - Fix an issue where the wrong environment was used for checking if an installed package is from system site packages (#9861).
- Fix an issue where build errors from builds to retrieve metadata information were hidden (#9870).
- Fix an issue where
poetry check
falsely reported that an invalid source "pypi" is referenced in dependencies (#9475). - Fix an issue where
poetry install --sync
tried to uninstall system site packages if the virtual environment was created withvirtualenvs.options.system-site-packages = true
(#9863). - Fix an issue where HTTP streaming requests were not closed properly when not completely consumed (#9899).
Docs
- Add information about getting test coverage in the contribution guide (#9726).
- Mention
pre-commit-autoupdate
as an alternative topre-commit autoupdate
(#9716). - Improve the explanation of
exclude
andinclude
(#9734). - Add information about compatible release requirements, i.e.
~=
(#9783). - Add documentation for using a build script to build extension modules (#9864).
poetry-core (2.0.0
)
- Add support for non PEP440 compliant version in the
platform_release
marker (#722). - Add support for string comparisons with
in
/not in
in generic constraints (#722). - Add support for script files that are generated by a build script (#710).
- Add support for
SOURCE_DATE_EPOCH
when building packages (#766, #781). - Create
METADATA
files with version 2.3 instead of 2.2 (#707). - Remove support for
x
in version constraints (#770). - Remove support for scripts with extras (#708).
- Remove deprecated features and interfaces (#702, #769).
- Deprecate
tool.poetry.dev-dependencies
in favor oftool.poetry.group.dev.dependencies
(#754). - Fix an issue where the
platlib
directory of the wrong Python was used (#726). - Fix an issue where building a wheel in a nested output directory results in an error (#762).
- Fix an issue where
+
was not allowed in git URL paths (#765). - Fix an issue where the temporary directory was not cleaned up on error (#775).
- Fix an issue where the regular expression for author names was too restrictive (#517).
- Fix an issue where basic auth http(s) credentials could not be parsed (#791).