This is an automated email from the ASF dual-hosted git repository.
ashb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 3e69e05f0d3 Unexclude Vespa on Python 3.14 (#75062)
3e69e05f0d3 is described below
commit 3e69e05f0d3a0b0f86a2c40863aec594628c0f42
Author: Dev-iL <[email protected]>
AuthorDate: Tue Oct 20 09:43:15 2026 +0300
Unexclude Vespa on Python 3.14 (#75062)
---
dev/breeze/tests/test_selective_checks.py | 1 -
providers/vespa/README.rst | 11 +++---
providers/vespa/docs/changelog.rst | 5 +++
providers/vespa/docs/index.rst | 9 ++---
providers/vespa/provider.yaml | 3 --
providers/vespa/pyproject.toml | 6 ++--
pyproject.toml | 4 +--
uv.lock | 60 +++++++++++++++++++++++++++----
8 files changed, 76 insertions(+), 23 deletions(-)
diff --git a/dev/breeze/tests/test_selective_checks.py
b/dev/breeze/tests/test_selective_checks.py
index 81a233db9d2..e420bef52f4 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -2260,7 +2260,6 @@ def test_excluded_providers():
"3.14": [
"apache.cassandra", # Enable when the next release
after 3.29.3 is available
"apache.tinkerpop",
- "vespa",
],
}
),
diff --git a/providers/vespa/README.rst b/providers/vespa/README.rst
index bf2aa1e1fe7..1dc7c50535d 100644
--- a/providers/vespa/README.rst
+++ b/providers/vespa/README.rst
@@ -45,18 +45,19 @@ You can install this package on top of an existing Airflow
installation (see ``R
for the minimum Airflow version supported) via
``pip install apache-airflow-providers-vespa``
-The package supports the following python versions: 3.11,3.12,3.13
+The package supports the following python versions: 3.11,3.12,3.13,3.14
Requirements
------------
-========================================== ==================
+==========================================
=====================================
PIP package Version required
-========================================== ==================
+==========================================
=====================================
``apache-airflow`` ``>=2.11.0``
``apache-airflow-providers-common-compat`` ``>=1.12.0``
-``pyvespa`` ``>=1.1.2``
-========================================== ==================
+``pyvespa`` ``>=1.2.9; python_version >=
"3.14"``
+``pyvespa`` ``>=1.1.2; python_version <
"3.14"``
+==========================================
=====================================
The changelog for the provider package can be found in the
`changelog
<https://airflow.apache.org/docs/apache-airflow-providers-vespa/0.1.2/changelog.html>`_.
diff --git a/providers/vespa/docs/changelog.rst
b/providers/vespa/docs/changelog.rst
index 3f21aae53f3..22d32b826a3 100644
--- a/providers/vespa/docs/changelog.rst
+++ b/providers/vespa/docs/changelog.rst
@@ -25,6 +25,11 @@
Changelog
---------
+.. note::
+ The provider now supports Python 3.14. On 3.14 it requires
``pyvespa>=1.2.9``, the first release to
+ allow Python 3.14: every earlier release caps itself at ``<3.14``, which was
why the provider was
+ excluded from it. Python 3.11-3.13 keep ``pyvespa>=1.1.2``, so nothing is
forced to upgrade there.
+
0.1.2
.....
diff --git a/providers/vespa/docs/index.rst b/providers/vespa/docs/index.rst
index ba0350ce3f2..2dacfe619a0 100644
--- a/providers/vespa/docs/index.rst
+++ b/providers/vespa/docs/index.rst
@@ -90,13 +90,14 @@ Requirements
The minimum Apache Airflow version supported by this provider distribution is
``2.11.0``.
-========================================== ==================
+==========================================
=====================================
PIP package Version required
-========================================== ==================
+==========================================
=====================================
``apache-airflow`` ``>=2.11.0``
``apache-airflow-providers-common-compat`` ``>=1.12.0``
-``pyvespa`` ``>=1.1.2``
-========================================== ==================
+``pyvespa`` ``>=1.2.9; python_version >=
"3.14"``
+``pyvespa`` ``>=1.1.2; python_version <
"3.14"``
+==========================================
=====================================
Downloading official packages
-----------------------------
diff --git a/providers/vespa/provider.yaml b/providers/vespa/provider.yaml
index c9aa0934280..69c0315885b 100644
--- a/providers/vespa/provider.yaml
+++ b/providers/vespa/provider.yaml
@@ -36,9 +36,6 @@ versions:
- 0.1.1
- 0.1.0
-excluded-python-versions:
- - "3.14"
-
integrations:
- integration-name: Vespa
external-doc-url: https://docs.vespa.ai
diff --git a/providers/vespa/pyproject.toml b/providers/vespa/pyproject.toml
index 4f70796a174..838c2d29fd5 100644
--- a/providers/vespa/pyproject.toml
+++ b/providers/vespa/pyproject.toml
@@ -48,9 +48,10 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Topic :: System :: Monitoring",
]
-requires-python = ">=3.11,!=3.14.*"
+requires-python = ">=3.11"
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
@@ -59,7 +60,8 @@ requires-python = ">=3.11,!=3.14.*"
dependencies = [
"apache-airflow>=2.11.0",
"apache-airflow-providers-common-compat>=1.12.0",
- "pyvespa>=1.1.2",
+ "pyvespa>=1.2.9; python_version >= '3.14'",
+ "pyvespa>=1.1.2; python_version < '3.14'",
]
[dependency-groups]
diff --git a/pyproject.toml b/pyproject.toml
index 61a4f7815b4..5fff05c7ed9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -407,7 +407,7 @@ apache-airflow = "airflow.__main__:main"
"apache-airflow-providers-vertica>=3.9.1"
]
"vespa" = [
- "apache-airflow-providers-vespa>=0.1.0; python_version !=\"3.14\""
+ "apache-airflow-providers-vespa>=0.1.0"
]
"weaviate" = [
"apache-airflow-providers-weaviate>=3.0.0"
@@ -527,7 +527,7 @@ apache-airflow = "airflow.__main__:main"
"apache-airflow-providers-teradata>=2.6.1",
"apache-airflow-providers-trino>=5.8.1",
"apache-airflow-providers-vertica>=3.9.1",
- "apache-airflow-providers-vespa>=0.1.0; python_version !=\"3.14\"",
+ "apache-airflow-providers-vespa>=0.1.0",
"apache-airflow-providers-weaviate>=3.0.0",
"apache-airflow-providers-yandex>=4.0.0",
"apache-airflow-providers-ydb>=1.4.0",
diff --git a/uv.lock b/uv.lock
index d8cd255e072..25139bdb5f1 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1092,7 +1092,7 @@ all = [
{ name = "apache-airflow-providers-teradata" },
{ name = "apache-airflow-providers-trino" },
{ name = "apache-airflow-providers-vertica" },
- { name = "apache-airflow-providers-vespa", marker = "python_full_version
!= '3.14.*'" },
+ { name = "apache-airflow-providers-vespa" },
{ name = "apache-airflow-providers-weaviate" },
{ name = "apache-airflow-providers-yandex" },
{ name = "apache-airflow-providers-ydb" },
@@ -1473,7 +1473,7 @@ vertica = [
{ name = "apache-airflow-providers-vertica" },
]
vespa = [
- { name = "apache-airflow-providers-vespa", marker = "python_full_version
!= '3.14.*'" },
+ { name = "apache-airflow-providers-vespa" },
]
weaviate = [
{ name = "apache-airflow-providers-weaviate" },
@@ -1785,8 +1785,8 @@ requires-dist = [
{ name = "apache-airflow-providers-trino", marker = "extra == 'trino'",
editable = "providers/trino" },
{ name = "apache-airflow-providers-vertica", marker = "extra == 'all'",
editable = "providers/vertica" },
{ name = "apache-airflow-providers-vertica", marker = "extra ==
'vertica'", editable = "providers/vertica" },
- { name = "apache-airflow-providers-vespa", marker = "python_full_version
!= '3.14.*' and extra == 'all'", editable = "providers/vespa" },
- { name = "apache-airflow-providers-vespa", marker = "python_full_version
!= '3.14.*' and extra == 'vespa'", editable = "providers/vespa" },
+ { name = "apache-airflow-providers-vespa", marker = "extra == 'all'",
editable = "providers/vespa" },
+ { name = "apache-airflow-providers-vespa", marker = "extra == 'vespa'",
editable = "providers/vespa" },
{ name = "apache-airflow-providers-weaviate", marker = "extra == 'all'",
editable = "providers/weaviate" },
{ name = "apache-airflow-providers-weaviate", marker = "extra ==
'weaviate'", editable = "providers/weaviate" },
{ name = "apache-airflow-providers-yandex", marker = "extra == 'all'",
editable = "providers/yandex" },
@@ -8644,7 +8644,8 @@ source = { editable = "providers/vespa" }
dependencies = [
{ name = "apache-airflow" },
{ name = "apache-airflow-providers-common-compat" },
- { name = "pyvespa" },
+ { name = "pyvespa", version = "1.2.7", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version < '3.14'" },
+ { name = "pyvespa", version = "1.2.9", source = { registry =
"https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" },
]
[package.dev-dependencies]
@@ -8662,7 +8663,8 @@ docs = [
requires-dist = [
{ name = "apache-airflow", editable = "." },
{ name = "apache-airflow-providers-common-compat", editable =
"providers/common/compat" },
- { name = "pyvespa", specifier = ">=1.1.2" },
+ { name = "pyvespa", marker = "python_full_version < '3.14'", specifier =
">=1.1.2" },
+ { name = "pyvespa", marker = "python_full_version >= '3.14'", specifier =
">=1.2.9" },
]
[package.metadata.requires-dev]
@@ -21387,6 +21389,20 @@ wheels = [
name = "pyvespa"
version = "1.2.7"
source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version == '3.13.*' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version == '3.13.*' and sys_platform == 'win32'",
+ "python_full_version == '3.13.*' and sys_platform == 'emscripten'",
+ "(python_full_version == '3.13.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.13.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
+ "python_full_version == '3.12.*' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version == '3.12.*' and sys_platform == 'win32'",
+ "python_full_version == '3.12.*' and sys_platform == 'emscripten'",
+ "(python_full_version == '3.12.*' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version == '3.12.*' and sys_platform
!= 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
+ "python_full_version < '3.12' and platform_machine == 'arm64' and
sys_platform == 'darwin'",
+ "python_full_version < '3.12' and sys_platform == 'win32'",
+ "python_full_version < '3.12' and sys_platform == 'emscripten'",
+ "(python_full_version < '3.12' and platform_machine != 'arm64' and
sys_platform == 'darwin') or (python_full_version < '3.12' and sys_platform !=
'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')",
+]
dependencies = [
{ name = "certifi" },
{ name = "cryptography" },
@@ -21407,6 +21423,38 @@ wheels = [
{ url =
"https://files.pythonhosted.org/packages/cc/f3/319e6c128b3690ba7a369c5fec01ca802c6436a29049e7349e806cae8b4a/pyvespa-1.2.7-py3-none-any.whl",
hash =
"sha256:4b77fc09662d68785dc3f86a43b046c474234451b9b7a6802aef39dbc9f8c660", size
= 183890, upload-time = "2026-09-23T09:35:43.103Z" },
]
+[[package]]
+name = "pyvespa"
+version = "1.2.9"
+source = { registry = "https://pypi.org/simple" }
+resolution-markers = [
+ "python_full_version >= '3.15' and sys_platform == 'win32'",
+ "python_full_version >= '3.15' and sys_platform == 'emscripten'",
+ "python_full_version >= '3.15' and sys_platform != 'emscripten' and
sys_platform != 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
+ "python_full_version == '3.14.*' and sys_platform != 'emscripten' and
sys_platform != 'win32'",
+]
+dependencies = [
+ { name = "certifi" },
+ { name = "cryptography" },
+ { name = "docker" },
+ { name = "fastcore" },
+ { name = "httpr" },
+ { name = "httpx", extra = ["http2"] },
+ { name = "jinja2" },
+ { name = "lxml" },
+ { name = "python-dateutil" },
+ { name = "requests" },
+ { name = "requests-toolbelt" },
+ { name = "tenacity" },
+ { name = "typing-extensions" },
+]
+sdist = { url =
"https://files.pythonhosted.org/packages/c6/73/32a3ea95a4ae8ee3d0d6ec28c43fc88012a1ff96a15c22b2fe529bbf7747/pyvespa-1.2.9.tar.gz",
hash =
"sha256:3be6a5de5c318ec38e3bba7160bb93d880264ff91e4062f78a37a5f63468d4d5", size
= 178133, upload-time = "2026-10-13T11:20:54.677Z" }
+wheels = [
+ { url =
"https://files.pythonhosted.org/packages/48/37/cc75201fc8b312ed25310bdd1e8fd08fd1d601b89ffbb5f0d8193c1d08ec/pyvespa-1.2.9-py3-none-any.whl",
hash =
"sha256:0fdfde89e0bd8770b4edddadd223b4656f8492d5f3635419fd230bdea4662a57", size
= 189437, upload-time = "2026-10-13T11:20:52.863Z" },
+]
+
[[package]]
name = "pywin32"
version = "312"