Skip to content

chore(deps): widen dremio/exasol/firebird/redshift/risingwave caps for SQLAlchemy 2.0 - #42891

Merged
rusackas merged 2 commits into
experiment/sqla2-full-bumpfrom
chore/bump-sqla2-compatible-driver-caps
Aug 8, 2026
Merged

chore(deps): widen dremio/exasol/firebird/redshift/risingwave caps for SQLAlchemy 2.0#42891
rusackas merged 2 commits into
experiment/sqla2-full-bumpfrom
chore/bump-sqla2-compatible-driver-caps

Conversation

@rusackas

@rusackas rusackas commented Aug 7, 2026

Copy link
Copy Markdown
Member

SUMMARY

Stacked on #42803 (the SQLAlchemy 2.0 + flask-sqlalchemy 3.1.1 core bump) — base branch is experiment/sqla2-full-bump, not master. Rebase onto master once #42803 merges.

pyproject.toml already had five optional DB-connector extras explicitly capped below their SQLAlchemy-2.0-only releases, each commented "bump in lockstep with Superset's own SQLAlchemy 2.0 core bump (discussion #40273), not before":

Extra Before After
dremio sqlalchemy-dremio>=1.2.1,<3.0.5 >=3.0.5,<4
exasol sqlalchemy-exasol>=2.4.0,<6.0.0 >=6.0.0,<8.0
firebird sqlalchemy-firebird>=0.8.0,<2.0.0 >=2.2.0
redshift sqlalchemy-redshift>=0.8.1,<0.9 >=1.0.0
risingwave sqlalchemy-risingwave>=1.4.1,<2.0.0 >=2.0.0

That core bump has now landed in #42803, so this widens all five. Each dialect cuts hard from a 1.4-only line to a 2.0-only line with no dual-compat release, hence the hard floor bump rather than a widened range. All five target versions confirmed to exist on PyPI.

None of the five are pinned in requirements/base.txt, requirements/development.txt, or any other lockfile — they're pure optional per-connector extras — so no lockfile regeneration was needed alongside the pyproject.toml change.

Does not close out discussion #40273's driver survey entirely. Five other extras remain blocked on their own upstream SQLAlchemy 2.0 support, independent of Superset's bump (see each package's comment / known_incompatibilities metadata in the corresponding db_engine_specs/*.py):

  • aurora-data-api — both available forks have unresolved SQLAlchemy 2.0 breaks
  • d1 — only release explicitly excludes SQLAlchemy 2.0
  • kusto — upstream hard-pins sqlalchemy==1.4.*
  • solr — unmaintained, hard-pinned to ~1.4.7
  • ocient — closed-source vendor package, 2.0 support unverified

TESTING INSTRUCTIONS

pyproject.toml-only change (no code paths touched). Verified all five target versions exist via pip index versions. Confirmed via ./scripts/uv-pip-compile.sh inputs (requirements/*.in) that none of these five extras feed any lockfile, so no regeneration is required.

ADDITIONAL INFORMATION

  • Has associated issue
  • Required feature flags:
  • Changes UI
  • Includes DB Migration
  • Introduces new feature or API
  • Removes existing feature or API

@bito-code-review

bito-code-review Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Bito Automatic Review Skipped - Branch Excluded

Bito didn't auto-review because the source or target branch is excluded from automatic reviews.
No action is needed if you didn't intend for the agent to review it. Otherwise, to manually trigger a review, type /review in a comment and save.
You can change the branch exclusion settings here, or contact your Bito workspace admin at evan@preset.io.

@netlify

netlify Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 5b9fefd
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6a76c690c4d35600086b2b80
😎 Deploy Preview https://deploy-preview-42891--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

rusackas pushed a commit that referenced this pull request Aug 7, 2026
…bump

Notes the breaking dependency change for downstream consumers: custom
db_engine_specs or extensions that touch SQLAlchemy internals directly
should check the 1.4->2.0 migration guide, and the optional connector
extras still capped below their own SQLAlchemy-2.0-only releases
(either pending #42891 or blocked entirely on upstream) keep pulling
1.4-line dialect versions until their own caps move.
@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.80%. Comparing base (73c9e48) to head (5b9fefd).

Additional details and impacted files
@@                     Coverage Diff                     @@
##           experiment/sqla2-full-bump   #42891   +/-   ##
===========================================================
  Coverage                       65.80%   65.80%           
===========================================================
  Files                            2842     2842           
  Lines                          160960   160960           
  Branches                        36921    36921           
===========================================================
  Hits                           105917   105917           
  Misses                          53019    53019           
  Partials                         2024     2024           
Flag Coverage Δ
hive 38.22% <ø> (ø)
mysql 57.77% <ø> (ø)
postgres 57.82% <ø> (ø)
presto 40.18% <ø> (ø)
python 59.23% <ø> (ø)
sqlite 57.45% <ø> (ø)
unit 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…my 2.0 core bump

dremio, exasol, firebird, redshift, and risingwave each cut hard from a
SQLAlchemy-1.4-only line to a SQLAlchemy-2.0-only line with no
dual-compat release in between. pyproject.toml already documented each
cap as "bump in lockstep with Superset's own SQLAlchemy 2.0 core bump
(discussion #40273), not before" -- that bump has now landed (#42803),
so this widens all five to their 2.0-compatible ranges:

- dremio: sqlalchemy-dremio>=1.2.1,<3.0.5 -> >=3.0.5,<4
- exasol: sqlalchemy-exasol>=2.4.0,<6.0.0 -> >=6.0.0,<8.0
- firebird: sqlalchemy-firebird>=0.8.0,<2.0.0 -> >=2.2.0
- redshift: sqlalchemy-redshift>=0.8.1,<0.9 -> >=1.0.0
- risingwave: sqlalchemy-risingwave>=1.4.1,<2.0.0 -> >=2.0.0

None of these five are pinned in requirements/base.txt,
requirements/development.txt, or any other lockfile -- they're purely
optional per-connector extras -- so no lockfile regeneration is
needed alongside this pyproject.toml change.

This does not close out discussion #40273's driver survey entirely:
aurora-data-api, d1, kusto, solr, and ocient remain blocked on their
own upstream SQLAlchemy 2.0 support (or, for ocient, unverified
compatibility), independent of Superset's own bump.
@rusackas
rusackas force-pushed the chore/bump-sqla2-compatible-driver-caps branch from 97b7021 to 7cff874 Compare August 7, 2026 19:44
@rusackas
rusackas requested a review from sadpandajoe August 7, 2026 23:01
… chore/bump-sqla2-compatible-driver-caps

# Conflicts:
#	pyproject.toml
@rusackas
rusackas merged commit 3134fed into experiment/sqla2-full-bump Aug 8, 2026
58 checks passed
@rusackas
rusackas deleted the chore/bump-sqla2-compatible-driver-caps branch August 8, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants