Poetry Changelog

What's new in Poetry 1.8.3

May 9, 2024
  • Added:
  • Add support for untagged CPython builds with versions ending with a + (#9207).
  • Changed:
  • Require pkginfo>=1.10 to ensure support for packages with metadata version 2.3 (#9130).
  • Improve locking on FIPS systems (#9152).
  • Fixed:
  • Fix an issue where unrecognized package metadata versions silently resulted in empty dependencies (#9203, #9226).
  • Fix an issue where trailing slashes in git URLs where not handled correctly (#9205).
  • Fix an issue where poetry self commands printed a warning that the current project cannot be installed (#9302).
  • Fix an issue where poetry install sporadically failed with a KeyError due to a race condition (#9335).
  • Docs:
  • Fix incorrect information about poetry shell (#9060).
  • Add a git subdirectory example to poetry add (#9080).
  • Mention interactive credential configuration (#9074).
  • Add notes for optional advanced installation steps (#9098).
  • Add reference to configuration credentials in documentation of poetry publish (#9110).
  • Improve documentation for configuring credentials via environment variables (#9121).
  • Remove misleading wording around virtual environments (#9213).
  • Remove outdated advice regarding seeding keyring backends (#9164).
  • Add a pyproject.toml example for a dependency with multiple extras (#9138).
  • Clarify help of poetry add (#9230).
  • Add a note how to configure credentials for TestPyPI for poetry publish (#9255).
  • Fix information about the --readme option in poetry new (#9260).
  • Clarify what is special about the Python constraint in dependencies (#9256).
  • Update how to uninstall plugins via pipx (#9320).

New in Poetry 1.8.2 (Mar 2, 2024)

  • Fixed:
  • Harden lazy-wheel error handling if the index server is behaving badly in an unexpected way.
  • Improve lazy-wheel error handling if the index server does not handle HTTP range requests correctly.
  • Improve lazy-wheel error handling if the index server pretends to support HTTP range requests but does not respect them.
  • Improve lazy-wheel to allow redirects for HEAD requests.
  • Improve debug logging for lazy-wheel errors.
  • Fix an issue where the hash of a metadata file could not be calculated correctly due to an encoding issue.
  • Fix an issue where poetry add failed in non-package mode if no project name was set.
  • Fix an issue where a hint to non-package mode was not compliant with the final name of the setting.

New in Poetry 1.8.0 (Feb 25, 2024)

  • Added:
  • Add a non-package mode for use cases where Poetry is only used for dependency management (#8650).
  • Add support for PEP 658 to fetch metadata without having to download wheels (#5509).
  • Add a lazy-wheel config option (default: true) to reduce wheel downloads during dependency resolution (#8815, #8941).
  • Improve performance of dependency resolution by using shallow copies instead of deep copies (#8671).
  • poetry check validates that no unknown sources are referenced in dependencies (#8709).
  • Add archive validation during installation for further hash algorithms (#8851).
  • Add a to key in tool.poetry.packages to allow custom subpackage names (#8791).
  • Add a config option to disable keyring (#8910).
  • Add a --sync option to poetry update (#8931).
  • Add an --output option to poetry build (#8828).
  • Add a --dist-dir option to poetry publish (#8828).
  • Changed:
  • The implicit PyPI source is disabled if at least one primary source is configured (#8771).
  • Deprecate source priority default (#8771).
  • Upgrade the warning about an inconsistent lockfile to an error (#8737).
  • Deprecate setting installer.modern-installation to false (#8988).
  • Drop support for pip<19 (#8894).
  • Require requests-toolbelt>=1 (#8680).
  • Allow platformdirs 4.x (#8668).
  • Allow and require xattr 1.x on macOS (#8801).
  • Improve venv shell activation in fish (#8804).
  • Rename system to base in output of poetry env info (#8832).
  • Use pretty name in output of poetry version (#8849).
  • Improve error handling for invalid entries in tool.poetry.scripts (#8898).
  • Improve verbose output for dependencies with extras during dependency resolution (#8834).
  • Improve message about an outdated lockfile (#8962).
  • Fixed:
  • Fix an issue where poetry shell failed when Python has been installed with MSYS2 (#8644).
  • Fix an issue where Poetry commands failed in a terminal with a non-UTF-8 encoding (#8608).
  • Fix an issue where a missing project name caused an incomprehensible error message (#8691).
  • Fix an issue where Poetry failed to install an sdist path dependency (#8682).
  • Fix an issue where poetry install failed because an unused extra was not available (#8548).
  • Fix an issue where poetry install --sync did not remove an unrequested extra (#8621).
  • Fix an issue where poetry init did not allow specific characters in the author field (#8779).
  • Fix an issue where Poetry could not download sdists from misconfigured servers (#8701).
  • Fix an issue where metadata of sdists that call CLI tools of their build requirements could not be determined (#8827).
  • Fix an issue where Poetry failed to use the currently activated environment (#8831).
  • Fix an issue where poetry shell failed in zsh if a space was in the venv path (#7245).
  • Fix an issue where scripts with extras could not be installed (#8900).
  • Fix an issue where explicit sources where not propagated correctly (#8835).
  • Fix an issue where debug prints where swallowed when using a build script (#8760).
  • Fix an issue where explicit sources of locked dependencies where not propagated correctly (#8948).
  • Fix an issue where Poetry's own environment was falsely identified as system environment (#8970).
  • Fix an issue where dependencies from a setup.py were ignored silently (#9000).
  • Fix an issue where environment variables for virtualenv.options were ignored (#9015).
  • Fix an issue where virtualenvs.options.no-pip and virtualenvs.options.no-setuptools were not normalized (#9015).
  • Docs:
  • Replace deprecated --no-dev with --without dev in the FAQ (#8659).
  • Recommend poetry-check instead of the deprecated poetry-lock pre-commit hook (#8675).
  • Clarify the names of the environment variables to provide credentials for repositories (#8782).
  • Add note how to install several version of Poetry in parallel (#8814).
  • Improve description of poetry show --why (#8817).
  • Improve documentation of poetry update (#8706).
  • Add a warning about passing variables that may start with a hyphen via command line (#8850).
  • Mention that the virtual environment in which Poetry itself is installed should not be activated (#8833).
  • Add note about poetry run and externally managed environments (#8748).
  • Update FAQ entry about tox for tox 4.x (#8658).
  • Fix documentation for default format option for include and exclude value (#8852).
  • Add note about tox and configured credentials (#8888).
  • Add note and link how to install pipx (#8878).
  • Fix examples for poetry add with git dependencies over ssh (#8911).
  • Remove reference to deprecated scripts extras feature (#8903).
  • Change examples to prefer --only main instead of --without dev (#8921).
  • Mention that the develop attribute is a Poetry-specific feature and not propagated to other tools (#8971).
  • Fix examples for adding supplemental and secondary sources (#8953).
  • Add PyTorch example for explicit sources (#9006).
  • poetry-core (1.9.0):
  • Deprecate scripts that depend on extras (#690).
  • Add support for path dependencies that do not define a build system (#675).
  • Update list of supported licenses (#659, #669, #678, #694).
  • Rework list of files included in build artifacts (#666).
  • Fix an issue where insignificant errors were printed if the working directory is not inside a git repository (#684).
  • Fix an issue where the project's directory was not recognized as git repository on Windows due to an encoding issue (#685).

New in Poetry 1.7.1 (Nov 16, 2023)

  • Fixed:
  • Fix an issue where sdists that call CLI tools of their build requirements could not be installed (#8630).
  • Fix an issue where sdists with symlinks could not be installed due to a broken tarfile datafilter (#8649).
  • Fix an issue where poetry init failed when trying to add dependencies (#8655).
  • Fix an issue where poetry install failed if virtualenvs.create was set to false (#8672).

New in Poetry 1.7.0 (Nov 4, 2023)

  • Added:
  • Add official support for Python 3.12 (#7803, #8544).
  • Print a future warning that poetry-plugin-export will not be installed by default anymore (#8562).
  • Add poetry-install pre-commit hook (#8327).
  • Add --next-phase option to poetry version (#8089).
  • Print a warning when overwriting files from another package at installation (#8386).
  • Print a warning if the current project cannot be installed (#8369).
  • Report more details on build backend exceptions (#8464).
  • Changed:
  • Set Poetry as user-agent for all HTTP requests (#8394).
  • Do not install setuptools per default in Python 3.12 (#7803).
  • Do not install wheel per default (#7803).
  • Remove setuptools and wheel when running poetry install --sync if they are not required by the project (#8600).
  • Improve error message about PEP-517 support (#8463).
  • Improve keyring handling (#8227).
  • Read the description field when extracting metadata from setup.py files (#8545).
  • Fixed:
  • Fix an issue where dependencies of inactive extras were locked and installed (#8399).
  • Fix an issue where build requirements were not installed due to a race condition in the artifact cache (#8517).
  • Fix an issue where packages included in the system site packages were installed even though virtualenvs.options.system-site-packages was set (#8359).
  • Fix an issue where git dependencies' submodules with relative URLs were handled incorrectly (#8020).
  • Fix an issue where a failed installation of build dependencies was not noticed directly (#8479).
  • Fix an issue where poetry shell did not work completely with nushell (#8478).
  • Fix an issue where a confusing error messages was displayed when running poetry config pypi-token.pypi without a value (#8502).
  • Fix an issue where a cryptic error message is printed if there is no metadata entry in the lockfile (#8523).
  • Fix an issue with the encoding with special characters in the virtualenv's path (#8565).
  • Fix an issue where the connection pool size was not adjusted to the number of workers (#8559).
  • Docs:
  • Improve the wording regarding a project's supported Python range (#8423).
  • Make pipx the preferred (first mentioned) installation method (#8090).
  • Add a warning about poetry self on Windows (#8090).
  • Fix example for poetry add with a git dependency (#8438).
  • Add information about auto-included files in wheels and sdist (#8555).
  • Fix documentation of the POETRY_REPOSITORIES_ variables docs (#8492).
  • Add CITATION.cff file (#8510).
  • poetry-core (1.8.1):
  • Add support for creating packages dynamically in the build script (#629).
  • Improve marker logic for extra markers (#636).
  • Update list of supported licenses (#635, #646).
  • Fix an issue where projects with extension modules were not installed in editable mode (#633).
  • Fix an issue where the wrong or no lib folder was added to the wheel (#634).
  • poetry-plugin-export (^1.6.0):
  • Add an --all-extras option (#241).
  • Fix an issue where git dependencies are exported with the branch name instead of the resolved commit hash (#213).

New in Poetry 1.6.1 (Aug 31, 2023)

  • Update the minimum required version of requests (#8336).

New in Poetry 1.6.0 (Aug 21, 2023)

  • Added:
  • Add support for repositories that do not provide a supported hash algorithm (#8118).
  • Add full support for duplicate dependencies with overlapping markers (#7257).
  • Improve performance of poetry lock for certain edge cases (#8256).
  • Improve performance of poetry install (#8031).
  • poetry check validates that specified readme files do exist (#7444).
  • Add a downgrading note when updating to an older version (#8176).
  • Add support for vox in the xonsh shell (#8203).
  • Add support for pre-commit hooks for projects where the pyproject.toml file is located in a subfolder (#8204).
  • Add support for the git+http:// scheme (#6619).
  • Changed:
  • Drop support for Python 3.7 (#7674).
  • Move poetry lock --check to poetry check --lock and deprecate the former (#8015).
  • Change future warning that PyPI will only be disabled automatically if there are no primary sources (#8151).
  • Fixed:
  • Fix an issue where build-system.requires were not respected for projects with build scripts (#7975).
  • Fix an issue where the encoding was not handled correctly when calling a subprocess (#8060).
  • Fix an issue where poetry show --top-level did not show top level dependencies with extras (#8076).
  • Fix an issue where poetry init handled projects with src layout incorrectly (#8218).
  • Fix an issue where Poetry wrote .pth files with the wrong encoding (#8041).
  • Fix an issue where poetry install did not respect the source if the same version of a package has been locked from different sources (#8304).
  • Docs:
  • Document official Poetry badge (#8066).
  • Update configuration folder path for macOS (#8062).
  • Add a warning about pip ignoring lock files (#8117).
  • Clarify the use of the virtualenvs.in-project setting. (#8126).
  • Change pre-commit YAML style to be consistent with pre-commit's own examples (#8146).
  • Fix command for listing installed plugins (#8200).
  • Mention the nox-poetry package (#8173).
  • Add an example with a PyPI source in the pyproject.toml file (#8171).
  • Use reference instead of deprecated callable in the scripts example (#8211).
  • poetry-core (1.7.0):
  • Improve performance of marker handling (#609).
  • Allow | as a value separator in markers with the operators in and not in (#608).
  • Put pretty name (instead of normalized name) in metadata (#620).
  • Update list of supported licenses (#623).
  • Fix an issue where PEP 508 dependency specifications with names starting with a digit could not be parsed (#607).
  • Fix an issue where Poetry considered an unrelated .gitignore file resulting in an empty wheel (#611).
  • poetry-plugin-export (^1.5.0):
  • Fix an issue where markers for dependencies required by an extra were not generated correctly (#209).

New in Poetry 1.5.1 (May 29, 2023)

  • Added:
  • Improve dependency resolution performance in cases with a lot of backtracking (#7950).
  • Changed:
  • Disable wheel content validation during installation (#7987).
  • Fixed:
  • Fix an issue where partially downloaded wheels were cached (#7968).
  • Fix an issue where poetry run did no longer execute relative-path scripts (#7963).
  • Fix an issue where dependencies were not installed in in-project environments (#7977).
  • Fix an issue where no solution was found for a transitive dependency on a pre-release of a package (#7978).
  • Fix an issue where cached repository packages were incorrectly parsed, leading to its dependencies being ignored (#7995).
  • Fix an issue where an explicit source was ignored so that a direct origin dependency was used instead (#7973).
  • Fix an issue where the installation of big wheels consumed a lot of memory (#7987).
  • Docs:
  • Add information about multiple constraints dependencies with direct origin and version dependencies (#7973).
  • Poetry-core (1.6.1):
  • Fix an endless recursion in marker handling (#593).
  • Fix an issue where the wheel tag was not built correctly under certain circumstances (#591).
  • Poetry-plugin-export (^1.4.0):
  • Fix an issue where --extra-index-url and --trusted-host was not generated for sources with priority explicit (#205).

New in Poetry 1.5.0 (May 19, 2023)

  • Added:
  • Introduce the new source priorities explicit and supplemental (#7658,
  • #6879).
  • Introduce the option to configure the priority of the implicit PyPI source (#7801).
  • Add handling for corrupt cache files (#7453).
  • Improve caching of URL and git dependencies (#7693,
  • #7473).
  • Add option to skip installing directory dependencies (#6845,
  • #7923).
  • Add --executable option to poetry env info (#7547).
  • Add --top-level option to poetry show (#7415).
  • Add --lock option to poetry remove (#7917).
  • Add experimental POETRY_REQUESTS_TIMEOUT option (#7081).
  • Improve performance of wheel inspection by avoiding unnecessary file copy operations (#7916).
  • Changed:
  • Remove the old deprecated installer and the corresponding setting experimental.new-installer (#7356).
  • Introduce priority key for sources and deprecate flags default and secondary (#7658).
  • Deprecate poetry run <script> if the script was not previously installed via poetry install (#7606).
  • Only write the lock file if the installation succeeds (#7498).
  • Do not write the unused package category into the lock file (#7637).
  • Fixed:
  • Fix an issue where Poetry's internal pyproject.toml continually grows larger with empty lines (#7705).
  • Fix an issue where Poetry crashes due to corrupt cache files (#7453).
  • Fix an issue where the Retry-After in HTTP responses was not respected and retries were handled inconsistently (#7072).
  • Fix an issue where Poetry silently ignored invalid groups (#7529).
  • Fix an issue where Poetry does not find a compatible Python version if not given explicitly (#7771).
  • Fix an issue where the direct_url.json of an editable install from a git dependency was invalid (#7473).
  • Fix an issue where error messages from build backends were not decoded correctly (#7781).
  • Fix an infinite loop when adding certain dependencies (#7405).
  • Fix an issue where pre-commit hooks skip pyproject.toml files in subdirectories (#7239).
  • Fix an issue where pre-commit hooks do not use the expected Python version (#6989).
  • Fix an issue where an unclear error message is printed if the project name is the same as one of its dependencies (#7757).
  • Fix an issue where poetry install returns a zero exit status even though the build script failed (#7812).
  • Fix an issue where an existing .venv was not used if in-project was not set (#7792).
  • Fix an issue where multiple extras passed to poetry add were not parsed correctly (#7836).
  • Fix an issue where poetry shell did not send a newline to fish (#7884).
  • Fix an issue where poetry update --lock printed operations that were not executed (#7915).
  • Fix an issue where poetry add --lock did perform a full update of all dependencies (#7920).
  • Fix an issue where poetry shell did not work with nushell (#7919).
  • Fix an issue where subprocess calls failed on Python 3.7 (#7932).
  • Fix an issue where keyring was called even though the password was stored in an environment variable (#7928).
  • Docs:
  • Add information about what to use instead of --dev (#7647).
  • Promote semantic versioning less aggressively (#7517).
  • Explain Poetry's own versioning scheme in the FAQ (#7517).
  • Update documentation for configuration with environment variables (#6711).
  • Add details how to disable the virtualenv prompt (#7874).
  • Improve documentation on whether to commit poetry.lock (#7506).
  • Improve documentation of virtualenv.create (#7608).
  • poetry-core (1.6.0):
  • Improve error message for invalid markers (#569).
  • Increase robustness when deleting temporary directories on Windows (#460).
  • Replace tomlkit with tomli, which changes the interface of some internal classes (#483).
  • Deprecate Package.category (#561).
  • Fix a performance regression in marker handling (#568).
  • Fix an issue where wildcard version constraints were not handled correctly (#402).
  • Fix an issue where poetry build created duplicate Python classifiers if they were specified manually (#578).
  • Fix an issue where local versions where not handled correctly (#579).

New in Poetry 1.4.2 (Apr 2, 2023)

  • Changed:
  • When trying to install wheels with invalid RECORD files, Poetry does not fail anymore but only prints a warning.
  • This mitigates an unintended change introduced in Poetry 1.4.1.
  • Fixed:
  • Fix an issue where relative git submodule urls were not parsed correctly.
  • Fix an issue where Poetry could freeze when building a project with a build script if it generated enough output to fill the OS pipe buffer.

New in Poetry 1.4.1 (Mar 19, 2023)

  • Fixed:
  • Fix an issue where poetry install did not respect the requirements for building editable dependencies (#7579).
  • Fix an issue where poetry init crashed due to bad input when adding packages interactively (#7569).
  • Fix an issue where poetry install ignored the subdirectory argument of git dependencies (#7580).
  • Fix an issue where installing packages with no-binary could result in a false hash mismatch (#7594).
  • Fix an issue where the hash of sdists was neither validated nor written to the direct_url.json during installation (#7594).
  • Fix an issue where poetry install --sync attempted to remove itself (#7626).
  • Fix an issue where wheels with non-normalized dist-info directory names could not be installed (#7671).
  • Fix an issue where poetry install --compile compiled with optimization level 1 (#7666).
  • Docs:
  • Clarify the behavior of the --extras option (#7563).
  • Expand the FAQ on reasons for slow dependency resolution (#7620).

New in Poetry 1.4.0 (Feb 28, 2023)

  • Added:
  • Add a modern installer (installer.modern-installation) for faster installation of packages and independence from pip (#6205).
  • Add support for Private :: trove classifiers (#7271).
  • Add the version of poetry in the @generated comment at the beginning of the lock file (#7339).
  • Add support for virtualenvs.prefer-active-python when running poetry new and poetry init (#7100).
  • Changed:
  • Deprecate the old installer, i.e. setting experimental.new-installer to false (#7358).
  • Remove unused platform field from cached package info and bump the cache version (#7304).
  • Extra dependencies of the root project are now sorted in the lock file (#7375).
  • Remove upper boundary for importlib-metadata dependency (#7434).
  • Validate path dependencies during use instead of during construction (#6844).
  • Remove the deprecated repository modules (#7468).
  • Fixed:
  • Fix an issue where an unconditional dependency of an extra was not installed in specific environments (#7175).
  • Fix an issue where a pre-release of a dependency was chosen even if a stable release fulfilled the constraint (#7225, #7236).
  • Fix an issue where HTTP redirects were not handled correctly during publishing (#7160).
  • Fix an issue where poetry check did not handle the -C, --directory option correctly (#7241).
  • Fix an issue where the subdirectory information of a git dependency was not written to the lock file (#7367).
  • Fix an issue where the wrong Python version was selected when creating an virtual environment (#7221).
  • Fix an issue where packages that should be kept were uninstalled when calling poetry install --sync (#7389).
  • Fix an issue where an incorrect value was set for sys.argv[0] when running installed scripts (#6737).
  • Fix an issue where hashes in direct_url.json files were not written according to the specification (#7475).
  • Fix an issue where poetry commands failed due to special characters in the path of the project or virtual environment (#7471).
  • Fix an issue where poetry crashed with a JSONDecodeError when running a Python script that produced certain warnings (#6665).
  • Docs:
  • Add advice on how to maintain a poetry plugin (#6977).
  • Update tox examples to comply with the latest tox release (#7341).
  • Mention that the poetry export can export constraints.txt files (#7383).
  • Add clarifications for moving configuration files (#6864).
  • Mention the different types of exact version specifications (#7503).
  • Poetry-core (1.5.1)
  • Improve marker handling (#528, #534, #530, #546, #547).
  • Validate whether dependencies referenced in extras are defined in the main dependency group (#542).
  • Poetry no longer generates a setup.py file in sdists by default (#318).
  • Fix an issue where trailing newlines were allowed in tool.poetry.description (#505).
  • Fix an issue where the name of the data folder in wheels was not normalized (#532).
  • Fix an issue where the order of entries in the RECORD file was not deterministic (#545).
  • Fix an issue where zero padding was not correctly handled in version comparisons (#540).
  • Fix an issue where sdist builds did not support multiple READMEs (#486).

New in Poetry 1.3.2 (Jan 11, 2023)

  • Fixed:
  • Fix a performance regression when locking dependencies from PyPI (#7232).
  • Fix an issue where passing a relative path via -C, --directory fails (#7266).
  • Docs:
  • Update docs to reflect the removal of the deprecated get-poetry.py installer from the repository (#7288).
  • Add clarifications for virtualenvs.path settings (#7286).

New in Poetry 1.3.1 (Dec 12, 2022)

  • Fix an issue where an explicit dependency on lockfile was missing, resulting in a broken Poetry in rare circumstances (7169).

New in Poetry 1.3.0 (Dec 9, 2022)

  • Added:
  • Mark the lock file with an @generated comment as used by common tooling (#2773).
  • Poetry check validates trove classifiers and warns for deprecations (#2881).
  • Introduce a top level -C, --directory option to set the working path (#6810).
  • Changed:
  • New lock file format (version 2.0) (#6393).
  • Path dependency metadata is unconditionally re-locked (#6843).
  • URL dependency hashes are locked (#7121).
  • Poetry update and poetry lock should now resolve dependencies more similarly (#6477).
  • Poetry publish will report more useful errors when a file does not exist (#4417).
  • Poetry add will check for duplicate entries using canonical names (#6832).
  • Wheels are preferred to source distributions when gathering metadata (#6547).
  • Git dependencies of extras are only fetched if the extra is requested (#6615).
  • Invoke pip with --no-input to prevent hanging without feedback (#6724, #6966).
  • Invoke pip with --isolated to prevent the influence of user configuration (#6531).
  • Interrogate environments with Python in isolated (-I) mode (#6628).
  • Raise an informative error when multiple version constraints overlap and are incompatible (#7098).
  • Fixed:
  • Fix an issue where concurrent instances of Poetry would corrupt the artifact cache (#6186).
  • Fix an issue where Poetry can hang after being interrupted due to stale locking in cache (#6471).
  • Fix an issue where the output of commands executed with --dry-run contained duplicate entries (#4660).
  • Fix an issue where requests's pool size did not match the number of installer workers (#6805).
  • Fix an issue where poetry show --outdated failed with a runtime error related to direct origin dependencies (#6016).
  • Fix an issue where only the last command of an ApplicationPlugin is registered (#6304).
  • Fix an issue where git dependencies were fetched unnecessarily when running poetry lock --no-update (#6131).
  • Fix an issue where stdout was polluted with messages that should go to stderr (#6429).
  • Fix an issue with poetry shell activation and zsh (#5795).
  • Fix an issue where a url dependencies were shown as outdated (#6396).
  • Fix an issue where the source field of a dependency with extras was ignored (#6472).
  • Fix an issue where a package from the wrong source was installed for a multiple-constraints dependency with different sources (#6747).
  • Fix an issue where dependencies from different sources where merged during dependency resolution (#6679).
  • Fix an issue where experimental.system-git-client could not be used via environment variable (#6783).
  • Fix an issue where Poetry fails with an AssertionError due to distribution.files being None (#6788).
  • Fix an issue where poetry env info did not respect virtualenvs.prefer-active-python (#6986).
  • Fix an issue where poetry env list does not list the in-project environment (#6979).
  • Fix an issue where poetry env remove removed the wrong environment (#6195).
  • Fix an issue where the return code of a script was not relayed as exit code (#6824).
  • Fix an issue where the solver could silently swallow ValueError (#6790).
  • Docs:
  • Improve documentation of package sources (#5605).
  • Correct the default cache path on Windows (#7012).
  • Poetry-core (1.4.0):
  • The PEP 517 metadata_directory is now respected as an input to the build_wheel hook (#487).
  • 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 invalid PEP 508 requirements were generated due to a missing space before semicolons (#510).
  • Fix an issue where relative paths were encoded into package requirements, instead of a file:// URL as required by PEP 508 (#512).
  • Poetry-plugin-export (^1.2.0)
  • Ensure compatibility with Poetry 1.3.0. No functional changes.
  • Cleo (^2.0.0):
  • Fix an issue where shell completions had syntax errors (#247).
  • Fix an issue where not reading all the output of a command resulted in a "Broken pipe" error (#165).
  • Fix an issue where errors were not shown in non-verbose mode (#166).

New in Poetry 1.2.2 (Oct 10, 2022)

  • Added:
  • Add forward compatibility for lock file format 2.0, which will be used by Poetry 1.3 (#6608).
  • Changed:
  • Allow poetry lock to re-generate the lock file when invalid or incompatible (#6753).
  • Fixed:
  • Fix an issue where the deprecated JSON API was used to query PyPI for available versions of a package (#6081).
  • Fix an issue where versions were escaped wrongly when building the wheel name (#6476).
  • Fix an issue where the installation of dependencies failed if pip is a dependency and is updated in parallel to other dependencies (#6582).
  • Fix an issue where the names of extras were not normalized according to PEP 685 (#6541).
  • Fix an issue where sdist names were not normalized (#6621).
  • Fix an issue where invalid constraints, which are ignored, were only reported in a debug message instead of a warning (#6730).
  • Fix an issue where poetry shell was broken in git bash on Windows (#6560).
  • Docs:
  • Rework the README and contribution docs (#6552).
  • Fix for inconsistent docs for multiple-constraint dependencies (#6604).
  • Rephrase plugin configuration (#6557).
  • Add a note about publishable repositories to publish (#6641).
  • Fix the path for lazy-loaded bash completion (#6656).
  • Fix a reference to the invalid option --require (#6672).
  • Add a PowerShell one-liner to the basic usage section (#6683).
  • Fix the minimum poetry version in the example for plugins (#6739).
  • poetry-core (1.3.2):
  • Add 3.11 to the list of available Python versions (#477).
  • Fix an issue where caret constraints of pre-releases with a major version of 0 resulted in an empty version range (#475).
  • poetry-plugin-export (^1.1.2):
  • Add support for exporting constraints.txt files (#128).
  • Fix an issue where a relative path passed via -o was not interpreted relative to the current working directory (#130).

New in Poetry 1.2.1 (Sep 16, 2022)

  • Changed:
  • Bump poetry-core to 1.2.0.
  • Bump poetry-plugin-export to ^1.0.7.
  • Fixed:
  • Fix an issue where poetry cache clear did not respect the -n/--no-interaction flag (#6338).
  • Fix an issue where poetry lock --no-update updated dependencies from non-PyPI package sources (#6335).
  • Fix a poetry install performance regression by falling back to internal pip (#6062).
  • Fix an issue where a virtual environment was created unnecessarily when running poetry export (#6282).
  • Fix an issue where poetry lock --no-update added duplicate hashes to the lock file (#6389).
  • Fix an issue where poetry install fails because of missing hashes for url dependencies (#6389).
  • Fix an issue where Poetry was not able to update pip in Windows virtual environments (#6430).
  • Fix an issue where Poetry was not able to install releases that contained less common link types (#5767).
  • Fix a poetry lock performance regression when checking non-PyPI sources for yanked versions (#6442).
  • Fix an issue where --no-cache was not respected when running poetry install (#6479).
  • Fix an issue where deprecation warnings for --dev were missing (#6475).
  • Fix an issue where Git dependencies failed to clone when insteadOf was used in .gitconfig using the Dulwich Git client (#6506).
  • Fix an issue where no cache entry is found when calling poetry cache clear with a non-normalized package name (#6537).
  • Fix an invalid virtualenv constraint on Poetry (#6402).
  • Fix outdated build system requirements for Poetry (#6509).

New in Poetry 1.2.0 (Sep 1, 2022)

  • Added note about how to add a git dependency with a subdirectory (#6218)
  • Fixed several style issues in the docs (#6255)
  • Fixed outdated info about --only parameter (#6264)

New in Poetry 1.2.0 RC 2 (Aug 28, 2022)

  • Fixed:
  • Fixed an issue where virtual environments were created unnecessarily when running poetry self commands (#6226)
  • Ensure that packages' pretty_name are written to the lock file (#6243)
  • Improvements:
  • Improved the consistency of Pool().remove_repository() to make it easier to write poetry plugins (#6231)
  • Docs:
  • Removed mentions of Python 2.7 from docs (#6235)
  • Added note about the difference between groups and extras (#6232)

New in Poetry 1.2.0 RC 1 (Aug 23, 2022)

  • Added:
  • Added support for subdirectories in git dependencies (#5172)
  • Added support for yanked releases and files (PEP-592) (#5841)
  • Virtual environments can now be created even with empty project names (#5856)
  • Added support for nushell in poetry shell (#6063)
  • Changed:
  • Poetry now falls back to gather metadata for dependencies via pep517 if parsing pyproject.toml fails (#5834)
  • Replaced Poetry's helper method canonicalize_name() with packaging.utils.canonicalize_name() (#6022)
  • Removed code for the export command, which is now provided via plugin (#6128)
  • Extras and extras dependencies are now sorted in the lock file (#6169)
  • Removed deprecated (1.2-only) CLI options (#6210)
  • Fixed:
  • Fixed an issue where symlinks in the lock file were not resolved (#5850)
  • Fixed a tomlkit regression resulting in inconsistent line endings (#5870)
  • Fixed an issue where the POETRY_PYPI_TOKEN_PYPI environment variable wasn't respected (#5911)
  • Fixed an issue where neither Python nor a managed venv can be found, when using Python from MS Store (#5931)
  • Improved error message of poetry publish in the event of an upload error (#6043)
  • Fixed an issue where poetry lock fails without output (#6058)
  • Fixed an issue where Windows drive mappings break virtual environment names (#6110)
  • tomlkit versions with memory leak are now avoided (#6160)
  • Fixed an infinite loop in the solver (#6178)
  • Fixed an issue where latest version was used instead of locked one for vcs dependencies with extras (#6185)
  • Docs:
  • Document use of the subdirectory parameter (#5949)
  • Document suggested tox config for different use cases (#6026)

New in Poetry 1.1.15 (Aug 22, 2022)

  • Changed:
  • Poetry now fallback to gather metadata for dependencies via pep517 if parsing pyproject.toml fail (#6206)
  • Extras and extras dependencies are now sorted in lock file (#6207)

New in Poetry 1.2.0 Beta 3 (Jul 14, 2022)

  • Added:
  • Added --only-root to poetry install to install a project without its dependencies (#5783)
  • Changed:
  • Improved user experience of poetry init (#5838)
  • Added default timeout for all HTTP requests, to avoid hanging requests (#5881)
  • Updated poetry init to better specify how to skip adding dependencies (#5946)
  • Updated Poetry repository names to avoid clashes with user-defined repositories (#5910)
  • Fixed:
  • Fixed an issue where extras where not handled if they did not match the case-sensitive name of the packages (#4122)
  • Fixed configuration of experimental.system-git-client option through poetry config (#5818)
  • Fixed uninstallation of git dependencies on Windows (#5836)
  • Fixed an issue where ~ was not correctly expanded in virtualenvs.path (#5848)
  • Fixed an issue where installing/locking dependencies would hang when setting an incorrect git repository (#5880)
  • Fixed an issue in poetry publish when keyring was not properly configured (#5889)
  • Fixed duplicated line output in console (#5890)
  • Fixed an issue where the same wheels where downloaded multiple times during installation (#5871)
  • Fixed an issue where dependencies hashes could not be retrieved when locking due to a breaking change on PyPI JSON API (#5973)
  • Fixed an issue where a dependency with non-requested extras could not be installed if it is requested with extras by another dependency (#5770)
  • Updated git backend to correctly read local/global git config when using dulwich as a git backend (#5935)
  • Fixed an issue where optional dependencies where not correctly exported when defining groups (#5819)
  • Docs:
  • Fixed configuration instructions for repositories specification (#5809)
  • Added a link to dependency specification from pyproject.toml (#5815)
  • Improved zsh autocompletion instructions (#5859)
  • Improved installation and update documentations (#5857)
  • Improved exact requirements documentation (#5874)
  • Added documentation for @ operator (#5822)
  • Improved autocompletion documentation (#5879)
  • Improved scripts definition documentation (#5884)

New in Poetry 1.1.14 (Jul 8, 2022)

  • Fixed an issue where dependencies hashes could not be retrieved when locking due to a breaking change on PyPI JSON API (#5973)

New in Poetry 1.2.0b2 Pre-release (Jun 7, 2022)

  • Added:
  • Added support for multiple-constraint direct origin dependencies with the same version (#5715)
  • Added support disabling TLS verification for custom package sources via poetry config certificates.<repository>.cert false (#5719
  • Added new configuration (virtualenvs.prompt) to customize the prompt of the Poetry-managed virtual environment (#5606)
  • Added progress indicator to download_file (used when downloading dists) (#5451)
  • Added --dry-run to poetry version command (#5603)
  • Added --why to poetry show (#5444)
  • Added support for single page (html) repositories (#5517)
  • Added support for PEP 508 strings when adding dependencies via poetry add command (#5554)
  • Added --no-cache as a global option (#5519)
  • Added cert retrieval for HTTP requests made by Poetry (#5320)
  • Added --skip-existing to poetry publish (#2812)
  • Added --all-extras to poetry install (#5452)
  • Added new poetry self sub-commands to manage plugins and/or system environment packages, eg: keyring backends (#5450)
  • Added new configuration (installer.no-binary) to allow selection of non-binary distributions when installing a dependency (#5609)
  • Changed:
  • poetry plugin commands are now deprecated in favor of the more generic poetry self commands (#5450)
  • When creating new projects, Poetry no longer restricts README extensions to md and rst (#5357)
  • Changed the provider to allow fallback to installed packages (#5704)
  • Solver now correctly handles and prefers direct reference constraints (vcs, file etc.) over public version identifiers (#5654)
  • Changed the build script behavior to create an ephemeral build environment when a build script is specified (#5401)
  • Improved performance when determining PEP 517 metadata from sources (#5601)
  • Project package sources no longer need to be redefined as global repositories when configuring credentials (#5563)
  • Replaced external git command use with dulwich, in order to force the legacy behaviour set experimental.system-git-client configuration to true (#5428)
  • Improved http request handling for sources and multiple paths on same netloc (#5518)
  • Made no-pip and no-setuptools configuration explicit (#5455)
  • Improved application logging, use of -vv now provides more debug information (#5503)
  • Renamed implicit group default to main (#5465)
  • Replaced in-tree implementation of poetry export with poetry-plugin-export (#5413)
  • Changed the password manager behavior to use a "null" keyring when disabled (#5251)
  • Incremental improvement of Solver performance (#5335)
  • Newly created virtual environments on macOS now are excluded from Time Machine backups (#4599)
  • Poetry no longer raises an exception when a package is not found on PyPI (#5698)
  • Update packaging dependency to use major version 21, this change forces Poetry to drop support for managing Python 2.7 environments (#4749)
  • Fixed:
  • Fixed poetry update --dry-run to not modify poetry.lock (#5718, #3666, #3766)
  • Fixed #5537 where export fails to resolve dependencies with more than one path (#5688)
  • Fixed an issue where the environment variables POETRY_CONFIG_DIR and POETRY_CACHE_DIR were not being respected (#5672)
  • Fixed #3628 and #4702 by handling invalid distributions gracefully (#5645)
  • Fixed an issue where the provider ignored subdirectory when merging and improve subdirectory support for vcs deps (#5648)
  • Fixed an issue where users could not select an empty choice when selecting dependencies (#4606)
  • Fixed an issue where poetry init -n crashes in a root directory (#5612)
  • Fixed an issue where Solver errors arise due to wheels having different Python constraints (#5616)
  • Fixed an issue where editable path dependencies using setuptools could not be correctly installed (#5590)
  • Fixed flicker when displaying executor operations (#5556)
  • Fixed an issue where the poetry lock --no-update only sorted by name and not by name and version (#5446)
  • Fixed an issue where the Solver fails when a dependency has multiple constrained dependency definitions for the same package (#5403)
  • Fixed an issue where dependency resolution takes a while because Poetry checks all possible combinations even markers are mutually exclusive (#4695)
  • Fixed incorrect version selector constraint (#5500)
  • Fixed an issue where poetry lock --no-update dropped packages (#5435)
  • Fixed an issue where packages were incorrectly grouped when exporting (#5156)
  • Fixed an issue where lockfile always updates when using private sources (#5362)
  • Fixed an issue where the solver did not account for selected package features (#5305)
  • Fixed an issue with console script execution of editable dependencies on Windows (#3339)
  • Fixed an issue where editable builder did not write PEP-610 metadata (#5703)
  • Fixed an issue where Poetry 1.1 lock files were incorrectly identified as not fresh (#5458)
  • Docs
  • Updated plugin management commands (#5450)
  • Added the --readme flag to documentation (#5357)
  • Added example for multiple maintainers (#5661)
  • Updated documentation for issues #4800, #3709, #3573, #2211 and #2414 (#5656)
  • Added poetry.toml note in configuration (#5492)
  • Add documentation for poetry about, poetry help, poetrylist, and the --full-path and --all options documentation (#5664)
  • Added more clarification to the --why flag (#5653)
  • Updated documentation to refer to PowerShell for Windows, including instructions (#3978, #5618)
  • Added PEP 508 name requirement (#5642)
  • Added example for each section of pyproject.toml (#5585)
  • Added documentation for --local to fix issue #5623 (#5629)
  • Added troubleshooting documentation for using proper quotation with ZSH (#4847)
  • Added information on git and basic http auth (#5578)
  • Removed ambiguity about PEP 440 and semver (#5576)
  • Removed Pipenv comparison (#5561)
  • Improved dependency group related documentation (#5338)
  • Added documentation for default directories used by Poetry (#5391)
  • Added warning about credentials preserved in shell history (#5726)
  • Improved documentation of the readme option, including multiple files and additional formats (#5158)
  • Improved contributing documentation (#5708)
  • Remove all references to --dev-only option (#5771)

New in Poetry 1.2.0b1 Pre-release (Mar 18, 2022)

  • Fixed:
  • Fixed an issue where the system environment couldn't be detected (#4406).
  • Fixed another issue where the system environment couldn't be detected (#4433).
  • Replace deprecated requests parameter in uploader (#4580).
  • Fix an issue where venv are detected as broken when using MSys2 on windows (#4482).
  • Fixed an issue where the cache breaks on windows (#4531).
  • Fixed an issue where a whitespace before a semicolon was missing on poetry export (#4575).
  • Fixed an issue where markers were not correctly assigned to nested dependencies (#3511).
  • Recognize one digit version in wheel filenames (#3338).
  • Fixed an issue when locale is unset (#4038).
  • Fixed an issue where the fallback to another interpreter didn't work (#3475).
  • Merge any marker constraints into constraints with specific markers (#4590).
  • Normalize path before hashing so that the generated venv name is independent of case on Windows (#4813).
  • Fixed an issue where a dependency wasn't upgrade by using @latest on poetry update (#4945).
  • Fixed an issue where conda envs in windows are always reported as broken(#5007).
  • Fixed an issue where Poetry doesn't find its own venv on poetry self update (#5049).
  • Fix misuse of pretty_constraint (#4932).
  • Fixed an issue where the reported python version used for venv creation wasn't correct (#5086).
  • Fixed an issue where the searched package wasn't display in the interactive dialog of poetry init (#5076).
  • Fixed an issue where Poetry raises an exception on poetry show when no lock files exists (#5242).
  • Fixed an issue where Poetry crashes when optional vcs_info.requested_version in direct_url.json wasn't included (#5274).
  • Fixed an issue where dependencies with extras were updated despite using --no-update (#4618).
  • Fixed various places where poetry writes messages to stdout instead of stderr (#4110, #5179).
  • Ensured that when complete packages are created dependency inherits source and resolved refs from package (#4604).
  • Ensured that when complete packages are created dependency inherits subdirectory from package if supported (#4604).
  • Fixed an issue where POETRY_EXPERIMENTAL_NEW_INSTALLER needs to be set to an empty string to disable it (#3811).
  • Added:
  • poetry show <package> now also shows which packages depend on it (#2351).
  • The info dialog by poetry about now contains version information about installed poetry and poetry-core (#5288).
  • Print error message when poetry publish fails (#3549).
  • Added in info output to poetry lock --check (#5081).
  • Added new argument --all for poetry env remove to delete all venv of a project at once (#3212).
  • Added new argument --without-urls for poetry export to exclude source repository urls from the exported file (#4763).
  • Added a new installer.max-workers property to the configuration (#3516).
  • Added experimental option virtualenvs.prefer-active-python to detect current activated python (#4852).
  • Added better windows shell support (#5053).
  • Changed:
  • Drop python3.6 support (#5055).
  • Exit with callable return code in generated script (#4456).
  • Internal use of the pep517 high level interfaces for package metadata inspections have been replaced with the build package. (#5155).
  • Poetry now raises an error if the python version in the project environment is no longer compatible with the project (#4520).

New in Poetry 1.1.13 (Feb 14, 2022)

  • Fixed an issue where envs in MSYS2 always reported as broken (#4942)
  • Fixed an issue where conda envs in windows are always reported as broken(#5008)
  • Fixed an issue where Poetry doesn't find its own venv on poetry self update (#5048)

New in Poetry 1.1.12 (Nov 28, 2021)

  • Fixed broken caches on Windows due to Path starting with a slash.
  • Fixed JSONDecodeError when installing packages by updating cachecontrol version.
  • Fixed dropped markers in dependency walk.

New in Poetry 1.1.11 (Oct 4, 2021)

  • Fixed errors when installing packages on Python 3.10. (#4592)
  • Fixed an issue where the wrong git executable could be used on Windows. (python-poetry/poetry-core#213)
  • Fixed an issue where the Python 3.10 classifier was not automatically added. (python-poetry/poetry-core#215)

New in Poetry 1.1.10 (Sep 21, 2021)

  • Fixed an issue where non-sha256 hashes were not checked.

New in Poetry 1.1.9 (Sep 18, 2021)

  • Fixed a security issue where file hashes were not checked prior to installation. (#4420, #4444, python-poetry/poetry-core#193)
  • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4507)
  • Fixed an issue where unsafe parameters could be passed to git commands. (python-poetry/poetry-core#203)
  • Fixed an issue where the wrong git executable could be used on Windows. (python-poetry/poetry-core#205)

New in Poetry 1.1.8 (Aug 20, 2021)

  • Fixed:
  • Fixed an error with repository prioritization when specifying secondary repositories. (#4241)
  • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4330, #4407)
  • Fixed the evaluation of relative path dependencies. (#4246)
  • Fixed environment detection for Python 3.10 environments. (#4387)
  • Fixed an error in the evaluation of in/not in markers (python-poetry/poetry-core#189)

New in Poetry 1.2.0a2 Pre-release (Aug 1, 2021)

  • Added:
  • Poetry now supports dependency groups. (#4260)
  • The install command now supports a --sync option to synchronize the environment with the lock file. (#4336)
  • Changed:
  • Improved the way credentials are retrieved to better support keyring backends. (#4086)
  • The --remove-untracked option of the install command is now deprecated in favor of the new --sync option. (#4336)
  • The user experience when installing dependency groups has been improved. (#4336)
  • Fixed:
  • Fixed performance issues when resolving dependencies. (#3839)
  • Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. (#4202)
  • Fixed the behavior of the init command in non-interactive mode. (#2899)
  • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4329)
  • Fixed the display of possible solutions for some common errors. (#4332)

New in Poetry 1.1.7 (Jun 25, 2021)

  • Changed:
  • This release is compatible with the install-poetry.py installation script to ease the migration path from 1.1 releases to 1.2 releases. (#4192)
  • Fixed:
  • Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. (#4203)
  • Fixed an issue where the combination of the --tree and --no-dev options for the show command was still displaying development dependencies. (#3992)

New in Poetry 1.2.0a1 Pre-release (May 22, 2021)

  • Added:
  • Poetry now supports a plugin system to alter or expand Poetry's functionality. (#3733)
  • Poetry now supports PEP 610. (#3876)
  • Several configuration options to better control the way virtual environments are created are now available. (#3157, #3711).
  • The new command now supports namespace packages. (#2768)
  • The add command now supports the --editable option to add packages in editable mode. (#3940)
  • Changed:
  • Python 2.7 and 3.5 are no longer supported. (#3405)
  • The usage of the get-poetry.py script is now deprecated and is replaced by the install-poetry.py script. (#3706)
  • Directory dependencies are now in non-develop mode by default. (poetry-core#98)
  • Improved support for PEP 440 specific versions that do not abide by semantic versioning. (poetry-core#140)
  • Improved the CLI experience and performance by migrating to the latest version of Cleo. (#3618)
  • Packages previously considered as unsafe (pip, setuptools, wheels and distribute) can now be managed as any other package. (#2826)
  • The new command now defaults to the Markdown format for README files. (#2768)
  • Fixed:
  • Fixed an error where command line options were not taken into account when using the run command. (#3618)
  • Fixed an error in the way custom repositories were resolved. (#3406)

New in Poetry 1.1.6 (May 7, 2021)

  • FIXED:
  • Fixed export format for path dependencies. (#3121)
  • Fixed errors caused by environment modification when executing some commands. (#3253)
  • Fixed handling of wheel files with single-digit versions. (#3338)
  • Fixed an error when handling single-digit Python markers. (poetry-core#156)
  • Fixed dependency markers not being properly copied when changing the constraint leading to resolution errors. (poetry-core#163)
  • Fixed an error where VCS dependencies were always updated. (#3947)
  • Fixed an error where the incorrect version of a package was locked when using environment markers. (#3945)