Skip to content

chore(ci): Bump versions - #184

Merged
tomasfarias merged 10 commits into
masterfrom
chore/bump-supported-python-to-3.14
Sep 28, 2026
Merged

tomasfarias merged 10 commits into
masterfrom
chore/bump-supported-python-to-3.14

Conversation

@tomasfarias

@tomasfarias tomasfarias commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

This is the minimal changes to support Python 3.14, dbt 1.12, and Airlfow 3.3.

Cherry-picked a few commits from #182 as that branch includes a broader discussion around handling of dbt flags.

Most of the lines of code are just the uv.lock update.

There are two big changes outside of that: one of them is a new function authored by @millin to get around a lifetime issue in Airflow, I have not reviewed the issue in depth, but the problem appears to be fixed. Since 3.2 is going to be dropped soon (MWAA and Google Cloud are already on 3.3), I don't really care much about it as we can drop the dependency + the function altogether soon.

The other one is a switch to packaging for detecting dependencies. This avoids the heavy import of a bunch of dbt stuff, so I do like the change. Credit goes to @millin too, although it seems that one of my rebases erased this from the commit, so I'll re-add you as author. Credit where credit is due. Nevermind, upon reviewing the git history to restore authorship, I realized I authored this in cc90386. Keeping myself as author.

@tomasfarias
tomasfarias force-pushed the chore/bump-supported-python-to-3.14 branch from cef39df to ca7dc60 Compare September 28, 2026 21:24
@tomasfarias tomasfarias changed the title chore: Bump supported python to 3.14 chore(ci): Bump versions Sep 28, 2026
tomasfarias and others added 5 commits September 28, 2026 23:54
FreshnessTask.__init__ started requiring a catalogs argument in
dbt-core 1.12, unlike its sibling ConfiguredTask subclasses which
default it to None.
dbt-core <1.12 pins mashumaro<3.15, which doesn't support Python 3.14
(added only in mashumaro 3.17). Those combinations can't install and
would just fail on every run. Also drops a stale beta-era comment now
that dbt 1.12 has a stable release.
DagBag dropped the include_examples parameter in Airflow 3.3, breaking
every matrix combination using that version. Add AIRFLOW_V_3_3_PLUS
and only pass it on older Airflow.

Also fixes two mypy errors that surfaced once the previously-broken
mypy job condition started actually running mypy again: a possibly
None connection type passed where dict.get expects str, and a
conditional-import fallback assigning an incompatible type. While at
it, point the mypy job condition at Python 3.14, the latest version
in the matrix.
Airflow <3.3 (fixed upstream by apache/airflow#68840) schedules the
FastAPI execution API app's lifespan startup via
asyncio.run_coroutine_threadsafe without waiting for it, so a
dag.test() task run can race ahead of app.state.svcs_registry being
set and fail with AttributeError. We patch in_process_api_server() to
hand out a pre-warmed transport that waits for lifespan startup,
mirroring the upstream fix, since InProcessExecutionAPI is an
attrs-slotted class we can't otherwise safely monkeypatch.
@tomasfarias
tomasfarias force-pushed the chore/bump-supported-python-to-3.14 branch from 5a7f9ea to 12495f0 Compare September 28, 2026 21:54
We'll decide later how to handle these in the future

For now, just get CI working
@tomasfarias
tomasfarias marked this pull request as ready for review September 28, 2026 22:20
@tomasfarias
tomasfarias merged commit fb17db0 into master Sep 28, 2026
30 checks passed
@tomasfarias
tomasfarias deleted the chore/bump-supported-python-to-3.14 branch September 28, 2026 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants