Added
- Add an
installer.builtin-uninstallsetting to uninstall packages with a built-in uninstaller instead of invokingpip uninstall(#10931). - Add official support for Python 3.15 (#11046).
Changed
- Do not send credentials configured for an
httpsrepository viahttp(#11073). - Fail with an error when the current Python version is not compatible with the project and
virtualenvs.createisfalse(#10941). - Validate version constraints that are entered interactively in
poetry init(#10909). - Include the path of the
pyproject.tomlfile in the message about already present packages inpoetry add(#10908). - Improve performance of processing package links and repository pages (#10895, #10896, #10903, #10949, #10951, #10953).
- Improve performance of dependency resolution (#10907, #10954).
- Improve performance of choosing and installing wheels (#10905,
#10958). - Improve performance by avoiding redundant keyring lookups for repositories without credentials (#10959).
- Improve performance by reducing the number of subprocesses to discover virtual environment data (#11042).
- Improve performance of
poetry searchfor single-token queries (#10906). - Improve startup time by deferring the import of
requests(#11004). - Improve performance of schema validation by caching compiled JSON schema validators (#11033).
Fixed
- Fix an issue where credentials of the wrong repository were used under certain circumstances when multiple repositories were configured on the same host (#11072).
- Fix an issue where credentials of a repository on another host were used for git dependencies if the path of the URL was the same (#11074).
- Fix an issue where dependency resolution failed for conflicting requirements of different packages even though the requirements had mutually exclusive markers (#10944).
- Fix an issue where dependency resolution failed when the same package was required with different extras in several optional dependencies or dependency groups (#10943).
- Fix an issue where dependency resolution failed with a
KeyError(#11008). - Fix an issue where the dependencies of an extra were missing in the lock file after adding the extra to a locked dependency, e.g. a git dependency, in the
pyproject.tomlfile (#10987). - Fix an issue where a path or git dependency was not reinstalled when its
developsetting changed (#11022). - Fix an issue where scripts of type
filewere not installed when installing the project (#10736). - Fix an issue where GUI scripts were not installed when installing the project (#10973).
- Fix an issue where a relative path was written to
direct_url.jsonfor path dependencies (#10917). - Fix an issue where
poetry show <package>showed a version that was not relevant for the current environment if there were multiple versions of the package in the lock file (#11003). - Fix an issue where
poetry show --outdateddid not find newer versions of packages from sources withexplicitpriority (#10982). - Fix an issue where
poetry env activateignored the environment that was determined by the application, e.g. when using--directory(#10916). - Fix an issue where
poetry initproposed an invalid package name if the directory name was not a valid package name (#10975).
Docs
- Document the
--licenseoption ofpoetry initandpoetry new(#11064). - Clarify which dependencies are locked when running
poetry updatewith dependency groups (#11024). - Clarify the portability of path dependencies (#11020).
- Clarify the usage of
poetry runwith console scripts (#10984). - Clarify what
--no-cachedisables (#10915). - Document how to use package sources for
poetry self update(#10923). - Fix the stale minimum Python version (#11050).
- Update outdated links (#10913, #10938, #11000, #11043).
poetry-core (2.5.0)
- Add Python 3.15 to the automatically generated classifiers (#961).
- Fix an issue where a
<Vversion constraint wrongly allowed pre-releases ofVin some cases (#939). - Fix an issue where version ranges with coincident bounds were not recognized as empty (#939).
- Fix an issue where the string representation of a version union did not describe the same constraint after being parsed again (#939).
- Fix an issue where the intersection of a version range with a local version resulted in a wrong constraint (#949).
- Fix an issue where the union of a version range and a public version did not include all local versions of the public version (#950).
- Fix an issue where the union of a public version and one of its local versions did not result in the public version (#966).
- Fix an issue where the difference between a public version and one of its local versions still allowed the local version, which could result in an infinite loop during dependency resolution (#953).
- Fix an issue where a version range that excluded some local versions of a public version was wrongly considered to allow all versions of the public version (#959).
- Fix an issue where a
!= <value>constraint was wrongly considered to allow all values of a<value> not inconstraint (#955). - Fix an issue where merging
platform_releasemarkers with incompatible constraint types failed (#956). - Fix an issue where the string representation of a version range whose upper bound only consists of zeros raised an
IndexError(#964). - Fix an issue where formatting a Python constraint that only allows unknown Python versions raised an
IndexError(#971). - Fix an issue where marker values containing spaces could not be parsed (#972).
- Fix an issue where the upper bound of a
~=constraint was wrong for versions with more than three release segments (#973). - Fix an issue where the filename of a link created from a Windows path was wrong and reject filenames containing path separators (#974).