From 30d355d86147652038a02ee9045874f69ce3a84d Mon Sep 17 00:00:00 2001 From: prql-bot <107324867+prql-bot@users.noreply.github.com> Date: Sun, 23 Aug 2026 08:10:37 +0000 Subject: [PATCH] build: require Python 3.10 for the prqlc Python package Python 3.9 is end-of-life and untested here (noxfile.py runs 3.10 and 3.12), and the stale `requires-python = ">=3.9"` claim has broken Dependabot's uv updater for this binding every day since 2026-08-07: Dependabot pins a candidate exactly, and pytest==9.1.1 requires 3.10+, so the python_full_version == '3.9.*' resolution fork is unsatisfiable and the whole job aborts. Regenerate uv.lock, which also picks up the pytest bump the blocked updater would have proposed. --- CHANGELOG.md | 8 ++++++++ prqlc/bindings/prqlc-python/pyproject.toml | 2 +- prqlc/bindings/prqlc-python/uv.lock | 10 +++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6760222fdcdc..5897bf8112fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,14 @@ **Integrations**: +- The `prqlc` Python package now declares `requires-python = ">=3.10"`. Python + 3.9 reached end-of-life in October 2025 and was never exercised by the test + matrix, which runs 3.10 and 3.12. The stale `>=3.9` claim also blocked every + Dependabot update to the binding's Python dependencies, because a pinned + candidate that itself requires 3.10+ leaves the 3.9 resolution fork + unsatisfiable. Users still on 3.9 continue to resolve the last release that + declared support for it. (@prql-bot, #6225) + **Internal changes**: **New Contributors**: diff --git a/prqlc/bindings/prqlc-python/pyproject.toml b/prqlc/bindings/prqlc-python/pyproject.toml index e600b284b2d2..8ec086bd4372 100644 --- a/prqlc/bindings/prqlc-python/pyproject.toml +++ b/prqlc/bindings/prqlc-python/pyproject.toml @@ -11,7 +11,7 @@ classifiers = [ description = "Python bindings for prqlc, the PRQL compiler" dynamic = ["version"] name = "prqlc" -requires-python = ">=3.9" +requires-python = ">=3.10" [tool.maturin] # This is required because of https://github.com/PyO3/pyo3/pull/2135 (closed diff --git a/prqlc/bindings/prqlc-python/uv.lock b/prqlc/bindings/prqlc-python/uv.lock index a91f49862a06..7258bf00117e 100644 --- a/prqlc/bindings/prqlc-python/uv.lock +++ b/prqlc/bindings/prqlc-python/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 3 -requires-python = ">=3.9" +requires-python = ">=3.10" [[package]] name = "colorama" @@ -16,7 +16,7 @@ name = "exceptiongroup" version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } wheels = [ @@ -79,7 +79,7 @@ wheels = [ [[package]] name = "pytest" -version = "8.4.2" +version = "9.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -90,9 +90,9 @@ dependencies = [ { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, ] [[package]]