Change8

2.2.0

Breaking Changes
📦 poetryView on GitHub →
2 breaking5 features🐛 4 fixes1 deprecations🔧 7 symbols

Summary

This release introduces support for PEP 735 dependency groups and PEP 639 license clarity, adds JSON output to 'poetry show', and officially supports Python 3.14.

⚠️ Breaking Changes

  • Dependency group names are now normalized, which may affect how groups are referenced if they contained non-standard characters.
  • installer.no-binary and installer.only-binary logic changed: explicit package names now take precedence over the :all: keyword.

Migration Steps

  1. Update project licenses to use valid SPDX expressions instead of table values to avoid deprecation warnings.
  2. Review dependency group names for normalization changes if using non-standard naming conventions.
  3. Ensure dulwich is updated to >=0.24.0.

✨ New Features

  • Add support for nesting dependency groups.
  • Add support for PEP 735 dependency groups.
  • Add support for PEP 639 license clarity.
  • Add a --format option to poetry show to output JSON format.
  • Add official support for Python 3.14.

🐛 Bug Fixes

  • Fix an issue where poetry new did not create the project structure in an existing empty directory.
  • Fix an issue where dependencies for specific Python versions were not installed into pre-release Python environments.
  • Fix an issue where explicitly included files in .gitignore were not included in the distribution.
  • Fix an issue where marker operations could result in invalid markers.

🔧 Affected Symbols

poetry showpoetry newpoetry installinstaller.no-binaryinstaller.only-binary[project.license]poetry-core

⚡ Deprecations

  • Deprecate table values and values that are not valid SPDX expressions for [project.license] in poetry-core.