Skip to content

Commit f9c31cd

Browse files
committed
blog: announce poetry 1.6.0
1 parent ada4218 commit f9c31cd

File tree

3 files changed

+101
-2
lines changed

3 files changed

+101
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
layout: single
3+
title: "Announcing Poetry 1.6.0"
4+
date: 2023-08-20
5+
categories: [releases]
6+
tags: ["1.x", "1.6"]
7+
---
8+
9+
The Poetry team is pleased to announce the immediate availability of Poetry **1.6.0**.
10+
11+
<!--more-->
12+
13+
If you have a previous version of Poetry installed via the [official installer](/docs/#installation),
14+
getting Poetry **1.6.0** is as easy as:
15+
16+
```bash
17+
$ poetry self update
18+
```
19+
20+
## Highlights
21+
22+
### Official Poetry badge
23+
24+
Poetry provides an official badge that can be used to indicate that a project is managed with Poetry.
25+
See the [documentation](docs/community/#badge) for details.
26+
27+
### Support for repositories that do not provide a supported hash algorithm
28+
29+
Some outdated package indices do only provide insecure MD5 hashes.
30+
Poetry 1.6 supports these repositories by calculating a SHA256 hash for the lockfile by itself.
31+
32+
{{% note %}}
33+
If you care about security, you should still switch to modern package indices that provide secure hashes.
34+
{{% /note %}}
35+
36+
### Full support for duplicate dependencies with overlapping markers
37+
38+
Poetry 1.6 fully supports duplicate dependencies with overlapping markers.
39+
Therefore, it transforms a set of dependencies with overlapping markers into
40+
an equivalent set of dependencies mutually exclusive markers during dependency resolution.
41+
For example,
42+
43+
```toml
44+
my-package = [
45+
{ version = ">=1.0" },
46+
{ version = "<2", markers = "python_version < '3.10'" },
47+
{ version = ">=1.5", markers = "sys_platform == 'win32'" },
48+
]
49+
```
50+
51+
becomes
52+
53+
```toml
54+
my-package = [
55+
{ version = ">=1.0", markers = "python_version >= '3.10' and sys_platform != 'win32'" },
56+
{ version = "<2", markers = "python_version < '3.10' and sys_platform != 'win32'" },
57+
{ version = ">=1.5", markers = "sys_platform = 'win32' and python_version >= '3.10'" },
58+
{ version = ">=1.5,<2", markers = "python_version < '3.10' and sys_platform == 'win32'" },
59+
]
60+
```
61+
62+
so that for each of the resulting markers a valid solution can be found.
63+
64+
If there is a conflict between the constraints of duplicate dependencies with overlapping markers,
65+
a comprehensive error message is displayed.
66+
Previously, overlapping markers could result in incorrect dependency resolutions.
67+
68+
### Improved performance of `poetry lock` for certain edge cases
69+
70+
Especially since the release of urllib3 2.0, Poetry has been affected
71+
by a dramatic performance regression under certain circumstances when boto3 or botocore
72+
were among the dependencies. That's because Poetry's algorithm decided to resolve
73+
dependencies with fewer candidates first to find conflicts faster
74+
(urllib3 has far fewer releases than boto3/botocore). However, all of the many versions
75+
of boto3/botocore are incompatible with `urllib3 >= 2.0`, so the algorithm has
76+
to try all of them before it chooses an older version of urllib3.
77+
Even though resolving dependencies with fewer candidates first will find conflicts
78+
a bit faster in some cases, it tends to be a lot slower in other cases.
79+
Therefore, we inverted the heuristics to resolve dependencies with more candidates first,
80+
which seems to be a bit slower in some cases, but a lot faster in other cases.
81+
82+
## Other important Changes
83+
84+
### Dropping support for Python 3.7 as runtime environment
85+
86+
Poetry 1.6 drops runtime support for Python 3.7.
87+
88+
{{% note %}}
89+
This change is about installing and running Poetry itself.
90+
Managing projects requiring Python 3.7 might still work.
91+
{{% /note %}}
92+
93+
## Changelog
94+
95+
### TODO: insert changelog

content/history.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ layout: single
44
title: History
55
---
66

7+
## TODO: add changelog
8+
79
## [1.5.1] - 2023-05-29
810

911
### Added
@@ -1807,6 +1809,8 @@ This release **must** be downloaded via the `get-poetry.py` script and not via t
18071809

18081810
Initial release
18091811

1812+
### TODO: update
1813+
18101814
[unreleased]: https://github.com/python-poetry/poetry/compare/1.5.1...master
18111815
[1.5.1]: https://github.com/python-poetry/poetry/releases/tag/1.5.1
18121816
[1.5.0]: https://github.com/python-poetry/poetry/releases/tag/1.5.0

pyproject.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ tags = "/blog/tag/:title/"
6767
description = "Python dependency management and packaging made easy"
6868

6969
[tool.website.config.params.documentation]
70-
defaultVersion = "1.5"
70+
defaultVersion = "1.5" # TODO: update
7171

7272
[tool.website.config.markup.goldmark.renderer]
7373
unsafe = true
@@ -76,7 +76,7 @@ unsafe = true
7676
keepWhitespace = true
7777

7878
[tool.website.versions]
79-
"1.5" = "1.5"
79+
"1.5" = "1.5" # TODO: update
8080
"1.4" = "1.4"
8181

8282
[build-system]

0 commit comments

Comments
 (0)