# Poetry changelog > Python packaging and dependency management made easy. - Vendor: Poetry - Category: Developer Tools - Official site: https://python-poetry.org - Tracked by: What's New (https://whatsnew.fyi/product/poetry) - Harvested from: GitHub (python-poetry/poetry) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 2.4.1 - Date: 2026-05-09 - Version: 2.4.1 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.4.1 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.4.1 - **changed** — Re-allow installer==0.7.0 - **fixed** — Fix an issue where poetry update failed when was a transitive dependency ###### Changed - Re-allow `installer==0.7.0` ([#10887](https://github.com/python-poetry/poetry/pull/10887)). ###### Fixed - Fix an issue where `poetry update ` failed when `` was a transitive dependency ([#10885](https://github.com/python-poetry/poetry/pull/10885)). ### 2.4.0 - Date: 2026-05-03 - Version: 2.4.0 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.4.0 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.4.0 - **added** — Add `solver.min-release-age` setting to require package releases to be a certain number of days old before they are considered during dependency resolution - **added** — Add `solver.min-release-age-exclude` to exclude selected packages from age filtering - **added** — Add `solver.min-release-age-exclude-source` to exclude all packages from selected package indexes from age filtering - **changed** — Raise an error instead of silently ignoring a package name that is not a dependency when it is passed to `poetry update` - **changed** — Automatically add a trailing slash to legacy repository URLs if missing - **changed** — Require `installer>=1.0.0` - **changed** — Allow `findpython>=0.8` - **fixed** — Fix an issue where `requires-plugins` fails on Windows if scheme paths are on different drives - **fixed** — Fix an issue where the order of markers in the lock file was not deterministic - **fixed** — Fix an issue where the wrong command was suggested when `poetry self` commands failed due to an outdated lock file - **fixed** — Fix an issue where `poetry env activate` did not work for bash on Windows - **fixed** — Fix an issue where `poetry debug resolve` failed when there was a package with a marker - **fixed** — Fix an issue where the error message about a build backend failure contained garbled `--config-settings` - **fixed** — Fix an issue where a false warning about a circular dependency was printed - **fixed** — Fix an issue where falsy config values were incorrectly treated as not set - **fixed** — Fix an issue where `poetry publish --build` ignored failing builds and uploaded stale artifacts - **fixed** — Fix an issue where `poetry publish` was aborted instead of retrying after package registration - **fixed** — Fix an issue where zip files were not closed after fetching metadata via `lazy-wheel` - **fixed** — Fix an issue where data fetched via `lazy-wheel` was corrupted when part of it had already been cached ###### Added - Add `solver.min-release-age` setting to require package releases to be a certain number of days old before they are considered during dependency resolution ([#10824](https://github.com/python-poetry/poetry/pull/10824)). - Add `solver.min-release-age-exclude` to exclude selected packages from age filtering ([#10824](https://github.com/python-poetry/poetry/pull/10824)). - Add `solver.min-release-age-exclude-source` to exclude all packages from selected package indexes from age filtering ([#10824](https://github.com/python-poetry/poetry/pull/10824)). ###### Changed - Raise an error instead of silently ignoring a package name that is not a dependency when it is passed to `poetry update` ([#10721](https://github.com/python-poetry/poetry/pull/10721)). - Automatically add a trailing slash to legacy repository URLs (used for publishing) if missing ([#10785](https://github.com/python-poetry/poetry/pull/10785)). - Require `installer>=1.0.0` ([#10869](https://github.com/python-poetry/poetry/pull/10869)). - Allow `findpython>=0.8` ([#10874](https://github.com/python-poetry/poetry/pull/10874)). ###### Fixed - Fix an issue where `requires-plugins` fails on Windows if scheme paths are on different drives ([#10869](https://github.com/python-poetry/poetry/pull/10869)). - Fix an issue where the order of markers in the lock file was not deterministic ([#10720](https://github.com/python-poetry/poetry/pull/10720)). - Fix an issue where the wrong command was suggested when `poetry self` commands failed due to an outdated lock file ([#10715](https://github.com/python-poetry/poetry/pull/10715)). - Fix an issue where `poetry env activate` did not work for bash on Windows ([#10716](https://github.com/python-poetry/poetry/pull/10716)). - Fix an issue where `poetry debug resolve` failed when there was a package with a marker ([#10807](https://github.com/python-poetry/poetry/pull/10807)). - Fix an issue where the error message about a build backend failure contained garbled `--config-settings` ([#10804](https://github.com/python-poetry/poetry/pull/10804)). - Fix an issue where a false warning about a circular dependency was printed ([#10811](https://github.com/python-poetry/poetry/pull/10811)). - Fix an issue where falsy config values were incorrectly treated as not set ([#10808](https://github.com/python-poetry/poetry/pull/10808)). - Fix an issue where `poetry publish --build` ignored failing builds and uploaded stale artifacts ([#10802](https://github.com/python-poetry/poetry/pull/10802)). - Fix an issue where `poetry publish` was aborted instead of retrying after package registration ([#10801](https://github.com/python-poetry/poetry/pull/10801)). - Fix an issue where zip files were not closed after fetching metadata via `lazy-wheel` ([#10800](https://github.com/python-poetry/poetry/pull/10800)). - Fix an issue where data fetched via `lazy-wheel` was corrupted when part of it had already been cached ([#10806](https://github.com/python-poetry/poetry/pull/10806)). - Fix an issue where further packages were installed even though installation should be aborted ([#10742](https://github.com/python-poetry/poetry/pull/10742)). - Fix an issue where installed packages without a `METADATA` file caused an exception on Python 3.15+ ([#10860](https://github.com/python-poetry/poetry/pull/10860)). - Fix an issue where `http-basic` could not be set for repository names with periods ([#10845](https://github.com/python-poetry/poetry/pull/10845)). - Fix an issue where calculating the hash of large wheels failed with a memory error ([#10814](https://github.com/python-poetry/poetry/pull/10814)). ###### Docs - Clarify the precedence of configuration sources ([#10757](https://github.com/python-poetry/poetry/pull/10757)). - Add a note about the influence of `.gitignore` on `tool.poetry.packages` ([#10835](https://github.com/python-poetry/poetry/pull/10835)). ###### poetry-core ([`2.4.0`](https://github.com/python-poetr _[Truncated at 4000 characters — full notes: https://github.com/python-poetry/poetry/releases/tag/2.4.0]_ ### 2.3.4 - Date: 2026-04-12 - Version: 2.3.4 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.3.4 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.3.4 - **fixed** — Fix a performance regression in the wheel installer that was introduced in Poetry 2.3.3 - **security** — Fix a path traversal vulnerability in sdist extraction on Python 3.10.0-3.10.12 and 3.11.0-3.11.4 that could allow malicious tarball files to write files outside the target directory ###### Fixed - Fix a performance regression in the wheel installer that was introduced in Poetry 2.3.3 ([#10821](https://github.com/python-poetry/poetry/pull/10821)). - Fix a path traversal vulnerability in sdist extraction on Python 3.10.0-3.10.12 and 3.11.0-3.11.4 that could allow malicious tarball files to write files outside the target directory ([#10837](https://github.com/python-poetry/poetry/pull/10837)). ### 2.3.3 - Date: 2026-03-29 - Version: 2.3.3 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.3.3 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.3.3 - **security** — Fix a path traversal vulnerability in the wheel installer that could allow malicious wheel files to write files outside the intended installation directory - **fixed** — Fix an issue where git dependencies from annotated tags could not be updated - **fixed** — Fix an issue where empty VIRTUAL_ENV or CONDA_PREFIX environment variables would cause Poetry to incorrectly detect an active virtualenv - **fixed** — Fix an issue where an incomprehensible error message was printed when .venv was a file instead of a directory - **fixed** — Fix an issue where HTTP Basic Authentication credentials could be corrupted during request preparation, causing authentication failures with long tokens - **fixed** — Fix an issue where poetry publish --no-interaction --build requested user interaction - **fixed** — Fix an issue where poetry init and poetry new created a deprecated project.license format - **fixed** — Fix an issue where platform_release could not be parsed on Debian Trixie - **fixed** — Fix an issue where using project.readme.text in the pyproject.toml file resulted in broken metadata - **fixed** — Fix an issue where dependency groups were considered equal when their resolved dependencies were equal, even if the groups themselves were not - **fixed** — Fix an issue where removing a dependency from a group that included another group resulted in other dependencies being added to the included group - **fixed** — Fix an issue where PEP 735 include-group entries were lost when [tool.poetry.group] also defined include-groups for the same group - **fixed** — Fix an issue where the union of not in constraints was wrongly treated as always satisfied - **fixed** — Fix an issue where a post release with a local version identifier was wrongly allowed by a > version constraint - **fixed** — Fix an issue where a version with the local version identifier 0 was treated as equal to the corresponding public version - **fixed** — Fix an issue where a != constraint wrongly disallowed pre releases and post releases of the specified version - **fixed** — Fix an issue where in and not in constraints were wrongly not allowed by specific compound constraints ###### Fixed - **Fix a path traversal vulnerability in the wheel installer that could allow malicious wheel files to write files outside the intended installation directory** ([#10792](https://github.com/python-poetry/poetry/pull/10792)). - Fix an issue where `git` dependencies from annotated tags could not be updated ([#10719](https://github.com/python-poetry/poetry/pull/10719)). - Fix an issue where empty `VIRTUAL_ENV` or `CONDA_PREFIX` environment variables (e.g., after `conda deactivate`) would cause Poetry to incorrectly detect an active virtualenv ([#10784](https://github.com/python-poetry/poetry/pull/10784)). - Fix an issue where an incomprehensible error message was printed when `.venv` was a file instead of a directory ([#10777](https://github.com/python-poetry/poetry/pull/10777)). - Fix an issue where HTTP Basic Authentication credentials could be corrupted during request preparation, causing authentication failures with long tokens ([#10748](https://github.com/python-poetry/poetry/pull/10748)). - Fix an issue where `poetry publish --no-interaction --build` requested user interaction ([#10769](https://github.com/python-poetry/poetry/pull/10769)). - Fix an issue where `poetry init` and `poetry new` created a deprecated `project.license` format ([#10787](https://github.com/python-poetry/poetry/pull/10787)). ###### Docs - Clarify the differences between `poetry install` and `poetry update` ([#10713](https://github.com/python-poetry/poetry/pull/10713)). - Clarify the section of fields in the `pyproject.toml` examples ([#10753](https://github.com/python-poetry/poetry/pull/10753)). - Add a note about the different installation location when Python from the Microsoft Store is used ([#10759](https://github.com/python-poetry/poetry/pull/10759)). - Fix the system requirements for Poetry ([#10739](https://github.com/python-poetry/poetry/pull/10739)). - Fix the `poetry cache clear` example ([#10749](https://github.com/python-poetry/poetry/pull/10749)). - Fix the link to `pipx` installation instructions ([#10783](https://github.com/python-poetry/poetry/pull/10783)). ###### poetry-core ([`2.3.2`](https://github.com/python-poetry/poetry-core/releases/tag/2.3.2)) - Fix an issue where `platform_release` could not be parsed on Debian Trixie ([#930](https://github.com/python-poetry/poetry-core/pull/930)). - Fix an issue where using `project.readme.text` in the `pyproject.toml` file resulted in broken metadata ([#914](https://github.com/python-poetry/poetry-core/pull/914)). - Fix an issue where dependency groups were considered equal when their resolved dependencies were equal, even if the groups themselves were not ([#919](https://github.com/python-poetry/poetry-core/pull/919)). - Fix an issue where removing a dependency from a group that included another group resulted in other dependencies being added to the included group ([#922](https://github.com/python-poetry/poetry-core/pull/922)). - Fix an issue where PEP 735 `include-group` entries were lost when `[tool.poetry.group]` also defined `include-groups` for the same group ([#924](https://github.com/python-poetry/poetry-core/pull/924)). - Fix an issue where the union of ` not in ` constraints was wrongly treated as always satisfied ([#925](https://github.com/python-poetry/poetry-core/pull/925)). - Fix an issue where a post release with a local version identifier was wrongly allowed by a `>` version constraint ([#921](https://github.com/python-poetry/poetry-core/pull/921)). - Fix an issue where a version with the local version identifier `0` was treated as equal to the corresponding public version ([#920](https://github.com/python-poetry/poetry-core/pull/920)). - Fix an issue where a `!= ` constraint wrongly disallowed pre releases and post releases of the specified version ([#929](https://github.com/python-poetry/poetry-core/pull/929)). - Fix an issue where `in` and `not in` constraints were wrongly not allowed by specific co _[Truncated at 4000 characters — full notes: https://github.com/python-poetry/poetry/releases/tag/2.3.3]_ ### 2.3.2 - Date: 2026-02-01 - Version: 2.3.2 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.3.2 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.3.2 - **changed** — Allow dulwich>=1.0 - **fixed** — Fix an issue where platform_release could not be parsed on Windows Server ###### Changed - Allow `dulwich>=1.0` ([#10701](https://github.com/python-poetry/poetry/pull/10701)). ###### poetry-core ([`2.3.1`](https://github.com/python-poetry/poetry-core/releases/tag/2.3.1)) - Fix an issue where `platform_release` could not be parsed on Windows Server ([#911](https://github.com/python-poetry/poetry-core/pull/911)). ### 2.3.1 - Date: 2026-01-20 - Version: 2.3.1 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.3.1 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.3.1 - **fixed** — Fix an issue where cached information about each package was always considered outdated ###### Fixed - Fix an issue where cached information about each package was always considered outdated ([#10699](https://github.com/python-poetry/poetry/pull/10699)). ###### Docs - Document SHELL_VERBOSITY environment variable ([#10678](https://github.com/python-poetry/poetry/pull/10678)). ### 2.3.0 - Date: 2026-01-18 - Version: 2.3.0 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.3.0 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.3.0 - **added** — Add support for exporting pylock.toml files with poetry-plugin-export - **added** — Add support for specifying build constraints for dependencies - **added** — Add support for publishing artifacts whose version is determined dynamically by the build-backend - **added** — Add support for editable project plugins - **added** — Check requires-poetry before any other validation - **added** — Validate the content of project.readme when running poetry check - **added** — Add the option to clear all caches by making the cache name in poetry cache clear optional - **added** — Automatically update the cache for packages where the locked files differ from cached files - **added** — Suggest to clear the cache if running a command with --no-cache solves an issue - **added** — Propose poetry init when trying poetry new for an existing directory - **added** — Add support for poetry publish --skip-existing for new Nexus OSS versions - **added** — Show Poetry's own Python's path in poetry debug info - **removed** — Drop support for Python 3.9 - **changed** — Change the default of installer.re-resolve from true to false - **changed** — PEP 735 dependency groups are considered in the lock file hash - **deprecated** — Deprecate poetry.utils._compat.metadata in favor of importlib.metadata - **changed** — Improve managing free-threaded Python versions with poetry python - **changed** — Prefer JSON API to HTML API in legacy repositories - **changed** — When running poetry init, only add the readme field in the pyproject.toml if the readme file exists - **changed** — Raise an error if no hash can be determined for any distribution link of a package ###### Added - **Add support for exporting `pylock.toml` files with `poetry-plugin-export`** ([#10677](https://github.com/python-poetry/poetry/pull/10677)). - Add support for specifying build constraints for dependencies ([#10388](https://github.com/python-poetry/poetry/pull/10388)). - Add support for publishing artifacts whose version is determined dynamically by the build-backend ([#10644](https://github.com/python-poetry/poetry/pull/10644)). - Add support for editable project plugins ([#10661](https://github.com/python-poetry/poetry/pull/10661)). - Check `requires-poetry` before any other validation ([#10593](https://github.com/python-poetry/poetry/pull/10593)). - Validate the content of `project.readme` when running `poetry check` ([#10604](https://github.com/python-poetry/poetry/pull/10604)). - Add the option to clear all caches by making the cache name in `poetry cache clear` optional ([#10627](https://github.com/python-poetry/poetry/pull/10627)). - Automatically update the cache for packages where the locked files differ from cached files ([#10657](https://github.com/python-poetry/poetry/pull/10657)). - Suggest to clear the cache if running a command with `--no-cache` solves an issue ([#10585](https://github.com/python-poetry/poetry/pull/10585)). - Propose `poetry init` when trying `poetry new` for an existing directory ([#10563](https://github.com/python-poetry/poetry/pull/10563)). - Add support for `poetry publish --skip-existing` for new Nexus OSS versions ([#10603](https://github.com/python-poetry/poetry/pull/10603)). - Show Poetry's own Python's path in `poetry debug info` ([#10588](https://github.com/python-poetry/poetry/pull/10588)). ###### Changed - **Drop support for Python 3.9** ([#10634](https://github.com/python-poetry/poetry/pull/10634)). - **Change the default of `installer.re-resolve` from `true` to `false`** ([#10622](https://github.com/python-poetry/poetry/pull/10622)). - **PEP 735 dependency groups are considered in the lock file hash** ([#10621](https://github.com/python-poetry/poetry/pull/10621)). - Deprecate `poetry.utils._compat.metadata`, which is sometimes used in plugins, in favor of `importlib.metadata` ([#10634](https://github.com/python-poetry/poetry/pull/10634)). - Improve managing free-threaded Python versions with `poetry python` ([#10606](https://github.com/python-poetry/poetry/pull/10606)). - Prefer JSON API to HTML API in legacy repositories ([#10672](https://github.com/python-poetry/poetry/pull/10672)). - When running `poetry init`, only add the readme field in the `pyproject.toml` if the readme file exists ([#10679](https://github.com/python-poetry/poetry/pull/10679)). - Raise an error if no hash can be determined for any distribution link of a package ([#10673](https://github.com/python-poetry/poetry/pull/10673)). - Require `dulwich>=0.25.0` ([#10674](https://github.com/python-poetry/poetry/pull/10674)). ###### Fixed - Fix an issue where `poetry remove` did not work for PEP 735 dependency groups with `include-group` items ([#10587](https://github.com/python-poetry/poetry/pull/10587)). - Fix an issue where `poetry remove` caused dangling `include-group` references in PEP 735 dependency groups ([#10590](https://github.com/python-poetry/poetry/pull/10590)). - Fix an issue where `poetry add` did not work for PEP 735 dependency groups with `include-group` items ([#10636](https://github.com/python-poetry/poetry/pull/10636)). - Fix an issue where PEP 735 dependency groups were not considered in the lock file hash ([#10621](https://github.com/python-poetry/poetry/pull/10621)). - Fix an issue where wrong markers were locked for a dependency that was required by several groups with different markers ([#10613](https://github.com/python-poetry/poetry/pull/10613)). - Fix an issue where non-deterministic markers were created in a method used by `poetry-plugin-export` ([#10667](https://github.com/python-poetry/poetry/pull/10667)). - Fix an issue where wrong w _[Truncated at 4000 characters — full notes: https://github.com/python-poetry/poetry/releases/tag/2.3.0]_ ### 2.2.1 - Date: 2025-09-21 - Version: 2.2.1 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.2.1 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.2.1 ###### Fixed - Fix an issue where `poetry self show` failed with a message about an invalid output format ([#10560](https://github.com/python-poetry/poetry/pull/10560)). ###### Docs - Remove outdated statements about dependency groups ([#10561](https://github.com/python-poetry/poetry/pull/10561)). ###### poetry-core ([`2.2.1`](https://github.com/python-poetry/poetry-core/releases/tag/2.2.1)) - Fix an issue where it was not possible to declare a PEP 735 dependency group as optional ([#888](https://github.com/python-poetry/poetry-core/pull/888)). ### 2.2.0 - Date: 2025-09-14 - Version: 2.2.0 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.2.0 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.2.0 ###### Added - **Add support for nesting dependency groups** ([#10166](https://github.com/python-poetry/poetry/pull/10166)). - **Add support for PEP 735 dependency groups** ([#10130](https://github.com/python-poetry/poetry/pull/10130)). - **Add support for PEP 639 license clarity** ([#10413](https://github.com/python-poetry/poetry/pull/10413)). - Add a `--format` option to `poetry show` to alternatively output json format ([#10487](https://github.com/python-poetry/poetry/pull/10487)). - Add official support for Python 3.14 ([#10514](https://github.com/python-poetry/poetry/pull/10514)). ###### Changed - **Normalize dependency group names** ([#10387](https://github.com/python-poetry/poetry/pull/10387)). - Change `installer.no-binary` and `installer.only-binary` so that explicit package names will take precedence over `:all:` ([#10278](https://github.com/python-poetry/poetry/pull/10278)). - Improve log output during `poetry install` when a wheel is built from source ([#10404](https://github.com/python-poetry/poetry/pull/10404)). - Improve error message in case a file lock could not be acquired while cloning a git repository ([#10535](https://github.com/python-poetry/poetry/pull/10535)). - Require `dulwich>=0.24.0` ([#10492](https://github.com/python-poetry/poetry/pull/10492)). - Allow `virtualenv>=20.33` again ([#10506](https://github.com/python-poetry/poetry/pull/10506)). - Allow `findpython>=0.7` ([#10510](https://github.com/python-poetry/poetry/pull/10510)). - Allow `importlib-metadata>=8.7` ([#10511](https://github.com/python-poetry/poetry/pull/10511)). ###### Fixed - Fix an issue where `poetry new` did not create the project structure in an existing empty directory ([#10431](https://github.com/python-poetry/poetry/pull/10431)). - Fix an issue where a dependency that was required for a specific Python version was not installed into an environment of a pre-release Python version ([#10516](https://github.com/python-poetry/poetry/pull/10516)). ###### poetry-core ([`2.2.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.2.0)) - Deprecate table values and values that are not valid SPDX expressions for `[project.license]` ([#870](https://github.com/python-poetry/poetry-core/pull/870)). - Fix an issue where explicitly included files that are in `.gitignore` were not included in the distribution ([#874](https://github.com/python-poetry/poetry-core/pull/874)). - Fix an issue where marker operations could result in invalid markers ([#875](https://github.com/python-poetry/poetry-core/pull/875)). ### 2.1.4 - Date: 2025-08-05 - Version: 2.1.4 - Original notes: https://github.com/python-poetry/poetry/releases/tag/2.1.4 - Permalink: https://whatsnew.fyi/product/poetry/releases/2.1.4 ###### Changed - Require `virtualenv<20.33` to work around an issue where Poetry uses the wrong Python version ([#10491](https://github.com/python-poetry/poetry/pull/10491)). - Improve the error messages for the validation of the `pyproject.toml` file ([#10471](https://github.com/python-poetry/poetry/pull/10471)). ###### Fixed - Fix an issue where project plugins were installed even though `poetry install` was called with `--no-plugins` ([#10405](https://github.com/python-poetry/poetry/pull/10405)). - Fix an issue where dependency resolution failed for self-referential extras with duplicate dependencies ([#10488](https://github.com/python-poetry/poetry/pull/10488)). ###### Docs - Clarify how to include files that were automatically excluded via VCS ignore settings ([#10442](https://github.com/python-poetry/poetry/pull/10442)). - Clarify the behavior of `poetry add` if no version constraint is explicitly specified ([#10445](https://github.com/python-poetry/poetry/pull/10445)).