cmp0xff opened a new issue, #4128:
URL: https://github.com/apache/iceberg-python/issues/4128
### Apache Iceberg version
0.12.0 (latest release)
### Please describe the bug 🐞
Since 0.11.0, `requires-python` includes an upper bound `<4.0.0`. It was
introduced in #2601 when the Poetry `python = ">=3.10,<4"` constraint was
converted, and it was kept by #3586. 0.10.0 had no upper bound.
Poetry requires a dependency's `requires-python` to cover the project's
whole supported Python range. Projects that declare an open-ended range, such
as `requires-python = ">=3.11"`, therefore never get 0.11.0 or 0.12.0. Poetry
quietly picks 0.10.0 instead, with no error or warning.
Reproduction with Poetry 2.5.1:
```toml
[project]
name = "repro"
version = "0"
requires-python = ">=3.11"
dependencies = ["pyiceberg"]
[tool.poetry]
package-mode = false
```
`poetry lock` locks `pyiceberg 0.10.0`, while `uv lock` on the same file
locks `0.12.0`.
If something else splits the project's Python range, for example a
dependency with `python_version >= "3.15"` markers, Poetry locks 0.12.0 for the
bounded part and 0.10.0 for the open-ended part. We hit this in
pandas-dev/pandas-stubs#2015: Python 3.15 got 0.10.0, which raises
`DeprecationWarning`s from pyparsing and pydantic at import.
**Expected:** remove the upper bound and use `requires-python = ">=3.10"`.
This matches the consensus in #1348 ("We don't necessarily have to enforce the
upper bound") and the reasoning in #3586. Python 4 isn't planned, so the cap
doesn't protect against anything in practice.
_Drafted with AI assistance; reproduction verified with Poetry 2.5.1 and uv._
### Willingness to contribute
- [x] I can contribute a fix for this bug independently
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]