rusackas commented on code in PR #42542:
URL: https://github.com/apache/superset/pull/42542#discussion_r3669634039
##########
pyproject.toml:
##########
@@ -145,14 +160,27 @@ databricks = [
datafusion = ["flightsql-dbapi>=0.2.2, <0.3"]
db2 = ["ibm-db-sa<=0.4.4, >=0.4.4"]
denodo = ["denodo-sqlalchemy>=2.0.5,<2.1.0"]
-dremio = ["sqlalchemy-dremio>=1.2.1, <4"]
-drill = ["sqlalchemy-drill>=1.1.10, <2"]
+# sqlalchemy-dremio 3.0.5+ hard-pins sqlalchemy~=2.0.41, dropping 1.4; 3.0.4
+# is the last dual-compat release. Capped below 3.0.5 for now; widen back to
+# <4 in lockstep with Superset's own SQLAlchemy 2.0 core bump (discussion
+# #40273), not before.
+dremio = ["sqlalchemy-dremio>=1.2.1, <3.0.5"]
+# <2 was an artificial ceiling; upstream has no SQLAlchemy version cap and
+# 1.1.10 already supports SQLAlchemy 2.0 (added `import_dbapi` in 1.1.7).
+drill = ["sqlalchemy-drill>=1.1.10, <3"]
druid = ["pydruid>=0.6.5,<0.7"]
duckdb = ["duckdb>=1.5.4,<2", "duckdb-engine>=0.17.0"]
dynamodb = ["pydynamodb>=0.8.2"]
+# Effectively unmaintained (only dependabot bumps since 2024); hard-pinned to
+# SQLAlchemy ~1.4.7 upstream, no SQLAlchemy 2.0 work. See
+# superset/db_engine_specs/solr.py's known_incompatibilities metadata.
solr = ["sqlalchemy-solr >= 0.2.4.3"]
Review Comment:
Fixed, dropped the space before `>=` in the solr extra for consistency with
the rest of `pyproject.toml`.
##########
superset/db_engine_specs/mysql.py:
##########
@@ -183,6 +183,22 @@ class MySQLEngineSpec(BasicParametersMixin,
BaseEngineSpec):
DatabaseCategory.CLOUD_AWS,
DatabaseCategory.HOSTED_OPEN_SOURCE,
],
+ "known_incompatibilities": [
+ {
+ "dependency": "SQLAlchemy 2.0",
+ "reason": (
+ "Neither our fork
(preset-io/sqlalchemy-aurora-data-api, "
+ "dormant since 2021) nor the more active community
fork "
+ "(cloud-utils/sqlalchemy-aurora-data-api) has
resolved "
+ "SQLAlchemy 2.0 compatibility."
+ ),
+ "tracking_url": (
+ "https://github.com/cloud-utils/"
+ "sqlalchemy-aurora-data-api/issues/43"
+ ),
+ "since": "2026-07-28",
+ }
+ ],
Review Comment:
Pulled it into a shared `AURORA_DATA_API_KNOWN_INCOMPATIBILITIES` constant
in base.py, mysql.py and postgres.py both reference it now.
##########
superset/db_engine_specs/base.py:
##########
@@ -275,6 +275,16 @@ class CompatibleDatabase(TypedDict, total=False):
notes: str
docs_url: str
categories: list[str] # Override parent categories (e.g., for
HOSTED_OPEN_SOURCE)
+ known_incompatibilities: list[KnownIncompatibility]
+
+
+class KnownIncompatibility(TypedDict, total=False):
Review Comment:
Base.py has at the top, so annotations are lazy strings and never get
evaluated at class-body time. No NameError, ordering doesn't matter here.
--
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]