Skip to content

Commit 17f15a9

Browse files
authored
Merge branch 'main' into lfs
2 parents f9d6fbe + 3fc8b33 commit 17f15a9

59 files changed

Lines changed: 2016 additions & 695 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949

5050
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
5151
with:
52-
node-version: "18"
52+
node-version: "22"
5353

5454
- uses: ./poetry-github/.github/actions/bootstrap-poetry
5555

@@ -68,7 +68,7 @@ jobs:
6868
6969
- uses: amondnet/vercel-action@c71810f8732de6b8656e41155e63b6303ca3e4bf # v42.1.0
7070
with:
71-
vercel-version: 48.12.1
71+
vercel-version: 50.44.0
7272
vercel-token: ${{ secrets.VERCEL_TOKEN }}
7373
github-token: ${{ secrets.GITHUB_TOKEN }}
7474
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}

CHANGELOG.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,49 @@
11
# Change Log
22

3+
## [2.4.0] - 2026-05-03
4+
5+
### Added
6+
7+
- Add `solver.min-release-age` setting to require package releases to be a certain number of days old before they are considered during dependency resolution ([#10824](https://github.com/python-poetry/poetry/pull/10824)).
8+
- Add `solver.min-release-age-exclude` to exclude selected packages from age filtering ([#10824](https://github.com/python-poetry/poetry/pull/10824)).
9+
- Add `solver.min-release-age-exclude-source` to exclude all packages from selected package indexes from age filtering ([#10824](https://github.com/python-poetry/poetry/pull/10824)).
10+
11+
### Changed
12+
13+
- Raise an error instead of silently ignoring a package name that is not a dependency when it is passed to `poetry update` ([#10721](https://github.com/python-poetry/poetry/pull/10721)).
14+
- Automatically add a trailing slash to legacy repository URLs (used for publishing) if missing ([#10785](https://github.com/python-poetry/poetry/pull/10785)).
15+
- Require `installer>=1.0.0` ([#10869](https://github.com/python-poetry/poetry/pull/10869)).
16+
- Allow `findpython>=0.8` ([#10874](https://github.com/python-poetry/poetry/pull/10874)).
17+
18+
### Fixed
19+
20+
- Fix an issue where `requires-plugins` fails on Windows if scheme paths are on different drives ([#10869](https://github.com/python-poetry/poetry/pull/10869)).
21+
- Fix an issue where the order of markers in the lock file was not deterministic ([#10720](https://github.com/python-poetry/poetry/pull/10720)).
22+
- Fix an issue where the wrong command was suggested when `poetry self` commands failed due to an outdated lock file ([#10715](https://github.com/python-poetry/poetry/pull/10715)).
23+
- Fix an issue where `poetry env activate` did not work for bash on Windows ([#10716](https://github.com/python-poetry/poetry/pull/10716)).
24+
- Fix an issue where `poetry debug resolve` failed when there was a package with a marker ([#10807](https://github.com/python-poetry/poetry/pull/10807)).
25+
- Fix an issue where the error message about a build backend failure contained garbled `--config-settings` ([#10804](https://github.com/python-poetry/poetry/pull/10804)).
26+
- Fix an issue where a false warning about a circular dependency was printed ([#10811](https://github.com/python-poetry/poetry/pull/10811)).
27+
- Fix an issue where falsy config values were incorrectly treated as not set ([#10808](https://github.com/python-poetry/poetry/pull/10808)).
28+
- Fix an issue where `poetry publish --build` ignored failing builds and uploaded stale artifacts ([#10802](https://github.com/python-poetry/poetry/pull/10802)).
29+
- Fix an issue where `poetry publish` was aborted instead of retrying after package registration ([#10801](https://github.com/python-poetry/poetry/pull/10801)).
30+
- Fix an issue where zip files were not closed after fetching metadata via `lazy-wheel` ([#10800](https://github.com/python-poetry/poetry/pull/10800)).
31+
- Fix an issue where data fetched via `lazy-wheel` was corrupted when part of it had already been cached ([#10806](https://github.com/python-poetry/poetry/pull/10806)).
32+
- Fix an issue where further packages were installed even though installation should be aborted ([#10742](https://github.com/python-poetry/poetry/pull/10742)).
33+
- Fix an issue where installed packages without a `METADATA` file caused an exception on Python 3.15+ ([#10860](https://github.com/python-poetry/poetry/pull/10860)).
34+
- Fix an issue where `http-basic` could not be set for repository names with periods ([#10845](https://github.com/python-poetry/poetry/pull/10845)).
35+
- Fix an issue where calculating the hash of large wheels failed with a memory error ([#10814](https://github.com/python-poetry/poetry/pull/10814)).
36+
37+
### Docs
38+
39+
- Clarify the precedence of configuration sources ([#10757](https://github.com/python-poetry/poetry/pull/10757)).
40+
- Add a note about the influence of `.gitignore` on `tool.poetry.packages` ([#10835](https://github.com/python-poetry/poetry/pull/10835)).
41+
42+
### poetry-core ([`2.4.0`](https://github.com/python-poetry/poetry-core/releases/tag/2.4.0))
43+
44+
- Update vendored `packaging` to `26.2` ([#936](https://github.com/python-poetry/poetry-core/pull/936)).
45+
46+
347
## [2.3.4] - 2026-04-12
448

549
### Fixed
@@ -2701,7 +2745,8 @@ Initial release
27012745

27022746

27032747

2704-
[Unreleased]: https://github.com/python-poetry/poetry/compare/2.3.4...main
2748+
[Unreleased]: https://github.com/python-poetry/poetry/compare/2.4.0...main
2749+
[2.4.0]: https://github.com/python-poetry/poetry/releases/tag/2.4.0
27052750
[2.3.4]: https://github.com/python-poetry/poetry/releases/tag/2.3.4
27062751
[2.3.3]: https://github.com/python-poetry/poetry/releases/tag/2.3.3
27072752
[2.3.2]: https://github.com/python-poetry/poetry/releases/tag/2.3.2

docs/configuration.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,73 @@ Especially with slow network connections, this setting can speed up dependency r
409409
If the cache has already been filled or the server does not support HTTP range requests,
410410
this setting makes no difference.
411411

412+
### `solver.min-release-age`
413+
414+
**Type**: `int`
415+
416+
**Default**: `0`
417+
418+
**Environment Variable**: `POETRY_SOLVER_MIN_RELEASE_AGE`
419+
420+
*Introduced in 2.4.0*
421+
422+
Minimum age of a package release in **days** before it is considered during dependency resolution.
423+
When set, any package version where at least one distribution file was uploaded more recently
424+
than the specified number of days ago will be ignored by the solver.
425+
426+
For example, with a value of `7`, a version is only considered
427+
if all known distribution files are at least seven days old.
428+
If the option is not set or set to `0`, all versions are considered.
429+
430+
This option is useful to protect against supply chain attacks where a new release
431+
of a dependency is published with malicious code.
432+
This is often detected within hours or days and the compromised release is removed.
433+
434+
{{% note %}}
435+
This filter can only be enforced for package sources that expose file upload timestamps.
436+
If a source does not provide upload times for a release,
437+
that release is not filtered out by this setting.
438+
{{% /note %}}
439+
440+
### `solver.min-release-age-exclude`
441+
442+
**Type**: `string`
443+
444+
**Default**: *not set*
445+
446+
**Environment Variable**: `POETRY_SOLVER_MIN_RELEASE_AGE_EXCLUDE`
447+
448+
*Introduced in 2.4.0*
449+
450+
A comma-separated list of package names that should be excluded from the
451+
[`solver.min-release-age`](#solvermin-release-age) filter.
452+
Versions of these packages will always be considered by the solver,
453+
regardless of their upload age.
454+
455+
```bash
456+
poetry config solver.min-release-age-exclude "my-package,other-package"
457+
```
458+
459+
### `solver.min-release-age-exclude-source`
460+
461+
**Type**: `string`
462+
463+
**Default**: *not set*
464+
465+
**Environment Variable**: `POETRY_SOLVER_MIN_RELEASE_AGE_EXCLUDE_SOURCE`
466+
467+
*Introduced in 2.4.0*
468+
469+
A comma-separated list of source names or URLs that should be excluded from the
470+
[`solver.min-release-age`](#solvermin-release-age) filter.
471+
All packages from these sources will always be considered by the solver,
472+
regardless of their upload age.
473+
Sources can be referenced by the name defined in `pyproject.toml` or by URL.
474+
475+
```bash
476+
poetry config solver.min-release-age-exclude-source "private-repo,https://example.com/simple/"
477+
```
478+
412479
### `system-git-client`
413480

414481
**Type**: `boolean`

0 commit comments

Comments
 (0)