This is an automated email from the ASF dual-hosted git repository.

shahar1 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 de147260bee Unexclude Cassandra on Python 3.14 (#74696)
de147260bee is described below

commit de147260bee7f86f337a74cadad81a1ccb587e83
Author: Dev-iL <[email protected]>
AuthorDate: Sat Nov 7 22:27:07 2026 +0200

    Unexclude Cassandra on Python 3.14 (#74696)
    
    #74559 marked the provider unavailable on 3.14 because no cassandra-driver
    release then carried cp314 wheels. 3.30.0 was the first that did, and the
    floor here is 3.30.1: opening a provider to a new interpreter is a fine
    moment to take the intervening bugfixes with it.
    
    The floor moves only for 3.14 and up, so 3.11-3.13 keep the drivers they
    already resolve, and the topmost line stays open-ended so 3.15 resolves a
    driver rather than installing the provider without one.
    
    The meta-package floor stays at >=3.7.0. Raising it to the release that
    will carry 3.14 support cannot work before that release is on PyPI: the
    constraints job pins every provider at its newest published version, so
    any higher floor contradicts the pin. The floor follows the wave instead.
---
 dev/breeze/tests/test_selective_checks.py     |  1 -
 providers/apache/cassandra/README.rst         |  3 ++-
 providers/apache/cassandra/docs/changelog.rst |  6 ++++++
 providers/apache/cassandra/docs/index.rst     |  1 +
 providers/apache/cassandra/provider.yaml      |  3 ---
 providers/apache/cassandra/pyproject.toml     |  4 +++-
 pyproject.toml                                |  4 ++--
 uv.lock                                       | 11 ++++++-----
 8 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/dev/breeze/tests/test_selective_checks.py 
b/dev/breeze/tests/test_selective_checks.py
index fa31f782b16..38f2955ccc1 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -2597,7 +2597,6 @@ def test_excluded_providers():
             "excluded-providers-as-string": json.dumps(
                 {
                     "3.14": [
-                        "apache.cassandra",  # Enable when the next release 
after 3.29.3 is available
                         "apache.tinkerpop",
                     ],
                 }
diff --git a/providers/apache/cassandra/README.rst 
b/providers/apache/cassandra/README.rst
index 1c4f13f5187..06644d11e2e 100644
--- a/providers/apache/cassandra/README.rst
+++ b/providers/apache/cassandra/README.rst
@@ -45,7 +45,7 @@ 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-apache-cassandra``
 
-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
 ------------
@@ -55,6 +55,7 @@ PIP package                                 Version required
 ==========================================  
==================================================================
 ``apache-airflow``                          ``>=2.11.0``
 ``apache-airflow-providers-common-compat``  ``>=1.8.0``
+``cassandra-driver``                        ``>=3.30.1; python_version >= 
"3.14"``
 ``cassandra-driver``                        ``>=3.29.3; python_version >= 
"3.13" and python_version < "3.14"``
 ``cassandra-driver``                        ``>=3.29.2; python_version >= 
"3.12" and python_version < "3.13"``
 ``cassandra-driver``                        ``>=3.29.1; python_version < 
"3.12"``
diff --git a/providers/apache/cassandra/docs/changelog.rst 
b/providers/apache/cassandra/docs/changelog.rst
index 31324bb9fc3..a5da9ed9c45 100644
--- a/providers/apache/cassandra/docs/changelog.rst
+++ b/providers/apache/cassandra/docs/changelog.rst
@@ -26,6 +26,12 @@
 Changelog
 ---------
 
+.. note::
+  The provider now supports Python 3.14. On 3.14 it requires 
``cassandra-driver>=3.30.1``: 3.30.0 was
+  the first release to ship cp314 wheels, and the absence of a driver whose C 
extension built on 3.14
+  was why the provider was excluded from it. Python 3.11-3.13 keep the driver 
minimums they already
+  resolved, so nothing is forced to upgrade there.
+
 3.10.1
 ......
 
diff --git a/providers/apache/cassandra/docs/index.rst 
b/providers/apache/cassandra/docs/index.rst
index e4415104328..d8a87935274 100644
--- a/providers/apache/cassandra/docs/index.rst
+++ b/providers/apache/cassandra/docs/index.rst
@@ -101,6 +101,7 @@ PIP package                                 Version required
 ==========================================  
==================================================================
 ``apache-airflow``                          ``>=2.11.0``
 ``apache-airflow-providers-common-compat``  ``>=1.8.0``
+``cassandra-driver``                        ``>=3.30.1; python_version >= 
"3.14"``
 ``cassandra-driver``                        ``>=3.29.3; python_version >= 
"3.13" and python_version < "3.14"``
 ``cassandra-driver``                        ``>=3.29.2; python_version >= 
"3.12" and python_version < "3.13"``
 ``cassandra-driver``                        ``>=3.29.1; python_version < 
"3.12"``
diff --git a/providers/apache/cassandra/provider.yaml 
b/providers/apache/cassandra/provider.yaml
index b5b8be41753..1b5a4e41186 100644
--- a/providers/apache/cassandra/provider.yaml
+++ b/providers/apache/cassandra/provider.yaml
@@ -65,9 +65,6 @@ versions:
   - 1.0.1
   - 1.0.0
 
-excluded-python-versions:
-  - "3.14"
-
 integrations:
   - integration-name: Apache Cassandra
     external-doc-url: https://cassandra.apache.org/
diff --git a/providers/apache/cassandra/pyproject.toml 
b/providers/apache/cassandra/pyproject.toml
index c0a42e1f2ad..d7760548998 100644
--- a/providers/apache/cassandra/pyproject.toml
+++ b/providers/apache/cassandra/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,6 +60,7 @@ requires-python = ">=3.11,!=3.14.*"
 dependencies = [
     "apache-airflow>=2.11.0",
     "apache-airflow-providers-common-compat>=1.8.0",
+    "cassandra-driver>=3.30.1; python_version >= '3.14'",
     "cassandra-driver>=3.29.3; python_version >= '3.13' and python_version < 
'3.14'",
     "cassandra-driver>=3.29.2; python_version >= '3.12' and python_version < 
'3.13'",
     "cassandra-driver>=3.29.1; python_version < '3.12'",
diff --git a/pyproject.toml b/pyproject.toml
index 70796cb43e3..58716ef1fbc 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -119,7 +119,7 @@ apache-airflow = "airflow.__main__:main"
     "apache-airflow-providers-apache-beam>=5.8.1"
 ]
 "apache.cassandra" = [
-    "apache-airflow-providers-apache-cassandra>=3.7.0; python_version 
!=\"3.14\""
+    "apache-airflow-providers-apache-cassandra>=3.7.0"
 ]
 "apache.drill" = [
     "apache-airflow-providers-apache-drill>=2.8.1"
@@ -431,7 +431,7 @@ apache-airflow = "airflow.__main__:main"
     "apache-airflow-providers-anthropic>=0.1.0",
     "apache-airflow-providers-apache-arrow>=0.1.0",
     "apache-airflow-providers-apache-beam>=5.8.1",
-    "apache-airflow-providers-apache-cassandra>=3.7.0; python_version 
!=\"3.14\"",
+    "apache-airflow-providers-apache-cassandra>=3.7.0",
     "apache-airflow-providers-apache-drill>=2.8.1",
     "apache-airflow-providers-apache-druid>=3.12.0",
     "apache-airflow-providers-apache-flink>=1.6.0",
diff --git a/uv.lock b/uv.lock
index 940523be09d..bb6963fd7f3 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1069,7 +1069,7 @@ all = [
     { name = "apache-airflow-providers-anthropic" },
     { name = "apache-airflow-providers-apache-arrow" },
     { name = "apache-airflow-providers-apache-beam" },
-    { name = "apache-airflow-providers-apache-cassandra", marker = 
"python_full_version != '3.14.*'" },
+    { name = "apache-airflow-providers-apache-cassandra" },
     { name = "apache-airflow-providers-apache-drill" },
     { name = "apache-airflow-providers-apache-druid" },
     { name = "apache-airflow-providers-apache-flink" },
@@ -1201,7 +1201,7 @@ apache-beam = [
     { name = "apache-airflow-providers-apache-beam" },
 ]
 apache-cassandra = [
-    { name = "apache-airflow-providers-apache-cassandra", marker = 
"python_full_version != '3.14.*'" },
+    { name = "apache-airflow-providers-apache-cassandra" },
 ]
 apache-drill = [
     { name = "apache-airflow-providers-apache-drill" },
@@ -1660,8 +1660,8 @@ requires-dist = [
     { name = "apache-airflow-providers-apache-arrow", marker = "extra == 
'apache-arrow'", editable = "providers/apache/arrow" },
     { name = "apache-airflow-providers-apache-beam", marker = "extra == 
'all'", editable = "providers/apache/beam" },
     { name = "apache-airflow-providers-apache-beam", marker = "extra == 
'apache-beam'", editable = "providers/apache/beam" },
-    { name = "apache-airflow-providers-apache-cassandra", marker = 
"python_full_version != '3.14.*' and extra == 'all'", editable = 
"providers/apache/cassandra" },
-    { name = "apache-airflow-providers-apache-cassandra", marker = 
"python_full_version != '3.14.*' and extra == 'apache-cassandra'", editable = 
"providers/apache/cassandra" },
+    { name = "apache-airflow-providers-apache-cassandra", marker = "extra == 
'all'", editable = "providers/apache/cassandra" },
+    { name = "apache-airflow-providers-apache-cassandra", marker = "extra == 
'apache-cassandra'", editable = "providers/apache/cassandra" },
     { name = "apache-airflow-providers-apache-drill", marker = "extra == 
'all'", editable = "providers/apache/drill" },
     { name = "apache-airflow-providers-apache-drill", marker = "extra == 
'apache-drill'", editable = "providers/apache/drill" },
     { name = "apache-airflow-providers-apache-druid", marker = "extra == 
'all'", editable = "providers/apache/druid" },
@@ -3541,7 +3541,7 @@ source = { editable = "providers/apache/cassandra" }
 dependencies = [
     { name = "apache-airflow" },
     { name = "apache-airflow-providers-common-compat" },
-    { name = "cassandra-driver", marker = "python_full_version < '3.14'" },
+    { name = "cassandra-driver" },
 ]
 
 [package.dev-dependencies]
@@ -3562,6 +3562,7 @@ requires-dist = [
     { name = "cassandra-driver", marker = "python_full_version < '3.12'", 
specifier = ">=3.29.1" },
     { name = "cassandra-driver", marker = "python_full_version == '3.12.*'", 
specifier = ">=3.29.2" },
     { name = "cassandra-driver", marker = "python_full_version == '3.13.*'", 
specifier = ">=3.29.3" },
+    { name = "cassandra-driver", marker = "python_full_version >= '3.14'", 
specifier = ">=3.30.1" },
 ]
 
 [package.metadata.requires-dev]

Reply via email to