Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude Cassandra for Python 3.12 #38050

Merged
merged 1 commit into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions airflow/providers/apache/cassandra/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,26 @@ dependencies:
- apache-airflow>=2.6.0
- cassandra-driver>=3.13.0

# Cassandra provider is not yet compatible with Python 3.12
# The main issue is that python cassandra driver by default uses asyncore which has been deprecated since
# Python 3.6 and removed in Python 3.12 (https://docs.python.org/3.11/library/asyncore.html)
#
# Currently the "wheel" package 3.29.0 distributed for manylinux platform is build without libev support (
# which could be a viable asyncore replacement), and cassandra driver works in Python 3.12 if it is built
# with libev support (using sdist, having gcc, libev4 and libev-dev installed). But it would be too much to
# expect our users to build the driver from sources to use it with Python 3.12, so we are waiting for the
# next release of cassandra-driver which will have libev support in the wheel package.
# The issue is tracked here https://datastax-oss.atlassian.net/browse/PYTHON-1378
#
# Another option to get cassandra drive back is to have asyncio support in the driver instead of asyncore:
# The issue is tracked here: https://datastax-oss.atlassian.net/browse/PYTHON-1375 and is scheduled
# to be fixed in cassandra-driver 3.30.0.
#
# All Cassandra tests are automatically skipped if cassandra package is not present, so once you remove the
# exclusion, they will start running for Python 3.12.
#
excluded-python-versions: ['3.12']

integrations:
- integration-name: Apache Cassandra
external-doc-url: https://cassandra.apache.org/
Expand Down
4 changes: 3 additions & 1 deletion generated/provider_dependencies.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,9 @@
],
"devel-deps": [],
"cross-providers-deps": [],
"excluded-python-versions": [],
"excluded-python-versions": [
"3.12"
],
"state": "ready"
},
"apache.drill": {
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ apache-beam = [ # source: airflow/providers/apache/beam/provider.yaml
"pyarrow>=14.0.1;python_version != \"3.12\"",
]
apache-cassandra = [ # source: airflow/providers/apache/cassandra/provider.yaml
"cassandra-driver>=3.13.0",
"cassandra-driver>=3.13.0;python_version != \"3.12\"",
]
apache-drill = [ # source: airflow/providers/apache/drill/provider.yaml
"apache-airflow[common_sql]",
Expand Down
Loading