diff --git a/content/blog/2023-11-01-announcing-poetry-1-7-0.md b/content/blog/2023-11-01-announcing-poetry-1-7-0.md new file mode 100644 index 0000000..aa8931c --- /dev/null +++ b/content/blog/2023-11-01-announcing-poetry-1-7-0.md @@ -0,0 +1,86 @@ +--- +layout: single +title: "Announcing Poetry 1.7.0" +date: 2023-11-01 +categories: [releases] +tags: ["1.x", "1.7"] +--- + +The Poetry team is pleased to announce the immediate availability of Poetry **1.7.0**. + + + +If you have a previous version of Poetry installed via `pipx`, +getting Poetry **1.7.0** is as easy as: + +```bash +$ pipx upgrade poetry +``` + +If you used the [official installer](/docs/#installation), you can run: + +```bash +$ poetry self update +``` + +## Highlights + +### Official support for Python 3.12 + +Even though Poetry 1.6 probably works well with Python 3.12, +we did some fine-tuning to make the user experience more consistent: + +Python 3.12 is the first Python version that does not implicitly includes `setuptools` +in newly created virtual environments. In order to align Poetry with other tools, +we now also do not implicitly include `setuptools` in newly created Python 3.12 +environments. In this context, we have also changed that `wheel` is not implicitly +included anymore (for all Python versions). Further, `setuptools` and `wheel` +will now be removed when running `poetry install --sync` if they are not required +by the project. If you rely on `setuptools` or `wheel`, +please make it an explicit dependency in your `pyproject.toml`. + +Further, some deprecation warnings were addressed and +the `Programming Language :: Python :: 3.12` classifier will be set automatically now +if Python 3.12 is in your project's supported Python versions. + +### Improved handling of dependencies with extras during dependency resolution + +The `extra` marker is quite special. Whereas other markers can only have one value for +a specific environment, `extra` can have multiple values at the same time. + +For example, a marker like `sys_platform == "win32" and sys_platform == "linux"` +can never be satisfied because `sys_platform` can only be either `"win32"` or `"linux"` +(not both). By contrast, a marker like `extra == "a" and extra == "b"` +can be satisfied if both extras are requested. + +Poetry can now handle this peculiarity and ignore dependencies that are only +relevant for inactive extras. + +### Fix longstanding race condition in `poetry install` + +Intermittent failures of `poetry install` with error messages like +`Backend 'setuptools.build_meta:__legacy__' is not available.` should now be resolved +by fixing a race condition when installing multiple source distributions with +overlapping build requirements in parallel. + +## Upcoming Changes + +### Removing `poetry-plugin-export` from the default installation + +Prior Poetry 1.2, `export` had been a built-in command. With Poetry 1.2, the `export` +command was outsourced into `poetry-plugin-export`. To avoid a breaking change, +we decided to install `poetry-plugin-export` per default. However, this resulted +in a cyclic dependency between `poetry` and `poetry-plugin-export`, which causes +issues for some third-party tools and results in an increased maintenance effort +for the Poetry team. + +Therefore, **we are planning to not install `poetry-plugin-export` +per default in a future version of Poetry.** +To ensure that as many users as possible are informed about this upcoming change, +a warning, which can be deactivated, will be shown when running `poetry export`. +In order to make your automation forward-compatible, just install `poetry-plugin-export` +explicitly (even though it is already installed per default for now). + +## Changelog + +TODO diff --git a/content/history.md b/content/history.md index 48371de..1d4b2a3 100644 --- a/content/history.md +++ b/content/history.md @@ -4,6 +4,8 @@ layout: single title: History --- +## TODO: 1.7.0 + ## [1.6.1] - 2023-08-21 ### Fixed @@ -1867,6 +1869,8 @@ This release **must** be downloaded via the `get-poetry.py` script and not via t Initial release +# TODO: 1.7.0 + [unreleased]: https://github.com/python-poetry/poetry/compare/1.6.1...master [1.6.1]: https://github.com/python-poetry/poetry/releases/tag/1.6.1 [1.6.0]: https://github.com/python-poetry/poetry/releases/tag/1.6.0 diff --git a/pyproject.toml b/pyproject.toml index 1d8df8c..8274d3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,7 @@ tags = "/blog/tag/:title/" description = "Python dependency management and packaging made easy" [tool.website.config.params.documentation] -defaultVersion = "1.6" +defaultVersion = "1.6" # TODO [tool.website.config.markup.goldmark.renderer] unsafe = true @@ -76,7 +76,7 @@ unsafe = true keepWhitespace = true [tool.website.versions] -"1.6" = "1.6" +"1.6" = "1.6" # TODO "1.5" = "1.5" [build-system]