NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #290 most downloaded on PyPI
Poetry PEP 517 Build Backend
Last release 15 days ago
19 Sep 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 38 of 38 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
66 releases · first in 2020
One column per quarter.
Add Marker.apply() to partially evaluate a marker for a given environment ( #945 ).
Marker.apply() to partially evaluate a marker for a given environment (#945).<V version constraint wrongly allowed pre-releases of V in some cases (#939).!= <value> constraint was wrongly considered to allow all values of a <value> not in constraint (#955).platform_release markers with incompatible constraint types failed (#956).IndexError (#964).IndexError (#971).~= constraint was wrong for versions with more than three release segments (#973).Fix an issue where certain marker operations (mostly used with extra markers) resulted in wrong markers ( #943 ).
Update list of supported licenses ( #935 ).
Update list of supported licenses ( #917 ).
platform_release could not be parsed on Debian Trixie (#930).project.readme.text in the pyproject.toml file resulted in broken metadata (#914).include-group entries were lost when [tool.poetry.group] also defined include-groups for the same group (#924).<value> not in <marker> constraints was wrongly treated as always satisfied (#925).> version constraint (#921).0 was treated as equal to the corresponding public version (#920).!= <version> constraint wrongly disallowed pre releases and post releases of the specified version (#929).in and not in constraints were wrongly not allowed by specific compound constraints (#927).setup.py files were duplicated (#923).Update list of supported licenses ( #912 ).
Add (optional) size and upload_time to Link and Package.files ( #905 ).
size and upload_time to Link and Package.files (#905).Package.files (#904).python_full_version markers with pre-release versions were parsed incorrectly (#893).Fix an issue where it was not possible to declare a PEP 735 dependency group as optional ( #888 ).
Deprecate table values and values that are not valid SPDX expressions for [project.license] ( #870 ).
[project.license] (#870).Update list of supported licenses ( #864 ).
project section were treated as non-optional when a source was defined for them in the tool.poetry section (#857).=== were not parsed correctly (#860).extra markers with a value starting with "in" were not validated correctly (#862).WheelBuilder was unnecessarily difficult (#855).Improve performance of marker operations ( #851 ).
extra markers were not simplified (#842, #845, #847).python_version markers was not recognized as empty (#849).python_version markers were not simplified (#848, #851).Fix an issue where simplifying a python_version marker resulted in an invalid marker ( #838 ).
python_version marker resulted in an invalid marker (#838).Pass a local version label to the build backend interface (#814).
poetry instance (#319).has_upper_bound method to VersionConstraint (#833).extra markers (#818).python_version markers (#826).__pycache__ directory and *.pyc files were included in sdists and wheels (#835).TOMLDecodeError with free-form arguments.
msg, doc and pos arguments should be given.msg, doc, pos, lineno and colno attributes to TOMLDecodeErrorReplace the deprecated core metadata field Home-page with Project-URL: Homepage (#807).
Home-page with Project-URL: Homepage (#807).tool.poetry.packages without a specified format were not initialized with the default value resulting in a KeyError (#805).project.urls entries were not processed correctly resulting in a KeyError (#807).project.dependencies via tool.poetry.dependencies were ignored if project.optional-dependencies were defined (#811).TypeError for wrong file modeparse_float to return objects having the append attrparse_float returns an illegal typepytest testing framework to unittest and remove python-dateutil test dependency.
Tests now only require Python interpreter.Remove deprecated features and interfaces (#702, #769).
project section in the pyproject.toml file according to PEP 621 (#708, #792).platform_release marker (#722).in / not in in generic constraints (#722).SOURCE_DATE_EPOCH when building packages (#766, #781).METADATA files with version 2.3 instead of 2.2 (#707).allow-prereleases a tri-state setting (#783).Error suffix (#767).x in version constraints (#770).tool.poetry.dev-dependencies in favor of tool.poetry.group.dev.dependencies (#754).Package.python_marker (#446).pyproject.toml file cannot be parsed (#734).readme files (#752).platlib directory of the wrong Python was used (#726).+ was not allowed in git URL paths (#765).load input. Use binary file objects instead.load and loads can no longer be passed by keyword.Add 3.13 to the list of available Python versions (#747).
3.13 to the list of available Python versions (#747).Deprecate poetry.core.masonry.builder (#682).
to key in tool.poetry.packages to allow custom subpackage names (#672).tool.poetry.package-mode key to support non-package mode (#661).poetry.core.masonry.builder (#682).Fix an issue where git URLs starting with git+ could not be parsed anymore (#657).
git+ could not be parsed anymore (#657).Deprecate Dependency.transitive_python_versions (#648).
3.12 to the list of available Python versions (#631).extra markers (#636).Dependency.transitive_python_versions (#648).Dependency.transitive_python_constraint (#649).lib folder was added to the wheel (#634).jsonschema with fastjsonschema.lark==1.1.8packaging==23.2Remove deprecated poetry.core.constraints.generic and poetry.core.semver (#601).
poetry.core.constraints.generic and poetry.core.semver (#601).| as a value separator in markers with the operators in and not in (#608)..gitignore file resulting in an empty wheel (#611).Fix an endless recursion in marker handling (#593).
Deprecate Package.category (#561).
tomlkit with tomli, which changes the interface of some internal classes (#483).Package.category (#561).poetry build created duplicate Python classifiers if they were specified manually (#578).Fix an issue where wheels built on Windows could contain duplicate entries in the RECORD file (#555).
Improve performance by caching parsed markers, constraints and versions (#556).
Deprecate the hash function of FileDependency (#535).
extras are defined in the main dependency group (#542).FileDependency (#535).allows_preleases implicitly anymore if the lower bound of a constraint is a pre-release (#543).setup.py file in sdists by default (#318).platform attribute from Package (#548).pretty_version parameter when creating a Package (#549).metadata_directory was not respected when building an editable wheel (#537).tool.poetry.description (#505).The PEP 517 metadata_directory is now respected as an input to the build_wheel hook (#487).
metadata_directory is now respected as an input to the build_wheel hook (#487).EmptyConstraint is now hashable (#513).ParseConstraintError is now raised on version and constraint parsing errors, and includes information on the package that caused the error (#514).Fix an issue where the normalization was not applied to the path of an sdist built using a PEP 517 frontend (#495).
Fix an issue where a typing-driven assertion could be false at runtime, causing a failure during prepare_metadata_for_build_wheel (#492).
Deprecate poetry.core.constraints.generic, which is replaced by poetry.core.packages.constraints (#482).
3.11 to the list of available Python versions (#477).poetry.core.constraints.generic, which is replaced by poetry.core.packages.constraints (#482).poetry.core.semver, which is replaced by poetry.core.constraints.version (#482).Added support for subdirectories in url dependencies (#398).
url dependencies (#398).Requires-Dist information was generated when environment markers where used for optional packages (#462).load.
Binary file objects should be used instead to avoid opening a TOML file with universal newlines or with an encoding other than UTF-8.- No functional changes.
Fixed an issue where a malformed URL was passed to pip when installing from a git subdirectory (#451).
Enabled setting version of ProjectPackage to support dynamically setting the project's package version (e.g. from a plugin) (#447).
version of ProjectPackage to support dynamically setting the project's package version (e.g. from a plugin) (#447).authors property was not detected (#437).Fixed special cases of next_major(), next_minor(), etc. and deprecated ambiguous usage (#434).
canonicalize_name() by packaging.utils.canonicalize_name() (#418).allows_any() for local versions (#433).next_major(), next_minor(), etc. and deprecated ambiguous usage (#434).Deprecated Dependency.set_constraint() and replaced it by a constraint property for consistency (#370).
Dependency.set_constraint() and replaced it by a constraint property for consistency (#370).Package.requires_extras (#374).Dependency.set_constraint() and replaced it by a constraint property for consistency (#370).Package.requires_extras (#374).PackageSpecification, Package, Dependency and their sub classes (#370).python_version and python_full_version (#382, #388).Fixed a regression where poetry-core no longer handled improper Python version constraints from package metadata
poetry-core no longer handled improper Python version constraints from package metadata (#371)poetry.core.__version__ (#367)poetry-core generated wheel's now correctly identify Generator metadata as poetry-core instead of poetry (#367)Fixed an issue where canonicalize package names leads to infinite loops (#328).
default to main (#326).Fixed an issue when evaluate in/not in markers (#188).
in/not in markers (#188).description contains no new line (#219).>=3.* (#186).Added support for dependency groups.
Added support for script files in addition to standard entry points.
Files in source distributions now have a deterministic time to improve reproducibility.
poetry-core now includes tests. (#173)Package instances which led to file hashes not being available. (#159)Fixed dependency markers not being properly copied when changing the constraint (#162).
Fixed performance regressions when parsing version constraints (#152).
This version is the first to drop support for Python 2.7 and 3.5.
This version is the first to drop support for Python 2.7 and 3.5.
If you are still using these versions you should update the requires property of the build-system section
to restrict the version of poetry-core:
[build-system]
requires = ["poetry-core<1.1.0"]
build-backend = "poetry.core.masonry.api"
Add hooks according to PEP-660 for editable installs (#257).
Fixed an issue where the wrong git executable could be used on Windows.
Added support for more hash types gen generating hashes.
Fixed the copy of Package instances which led to file hashes not being available.
Fixed an error in the way python markers with a precision >= 3 were handled.
Fixed an error when handling single-digit Python markers (#156).
TOMLDecodeError instead of ValueError when parsing dates and datetimes that pass the regex check but don't correspond to a valid date or datetime.Fixed a missing import causing an error in Poetry (#134).
Fixed PEP 508 representation of dependency without extras (#102).
& character was not accepted for author names (#120).Requires-Python metadata generation (#127).No changes.
No changes.
TOMLDecodeError instead of KeyError when overwriting implicitly in an inline tableRemoved intreehooks build backend in favor of the backend-path mechanism (#90).
Fixed python_full_version markers conversion to version constraints (#86).
python_full_version markers conversion to version constraints (#86).Fixed Python constraint propagation when converting a package to a dependency (#84).
Added support for build executable for wheels (#72).
RECORD files in some cases by ensuring it's a valid CSV file (#61).exclude property (#62).include property set (#75).Added support for build scripts without setup.py generation (#45).
Fixed errors in the way Python environment markers were parsed and generated (#36).
Added support for format-specific includes via the include property (#6).
Added support for markers inverse (#21).
git dependencies should be installed in develop mode (#23).setup.py file when building (#26).git dependencies should be installed in develop mode (#23).setup.py file when building (#26).Your coding agent can read these notes before it upgrades. Set up the MCP server →