Skip to content

Sync v3-2-stable with v3-2-test to release 3.2.1rc1#65328

Merged
vatsrahul1001 merged 124 commits into
v3-2-stablefrom
changes-3.2.1rc1
Apr 15, 2026
Merged

Sync v3-2-stable with v3-2-test to release 3.2.1rc1#65328
vatsrahul1001 merged 124 commits into
v3-2-stablefrom
changes-3.2.1rc1

Conversation

@vatsrahul1001

Copy link
Copy Markdown
Contributor

Time for 3.2.1rc1

  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

@vatsrahul1001

Copy link
Copy Markdown
Contributor Author

Looking at conflicts

…4671)

(cherry picked from commit 7047e03)

Co-authored-by: Henry Chen <henryhenry0512@gmail.com>
github-actions Bot and others added 20 commits April 15, 2026 21:56
…ommon case (#65029) (#65137)

* Add fast-path heartbeat UPDATE to avoid row lock in the common case

The ti_heartbeat endpoint now attempts a single guarded UPDATE
(matching id, state, hostname, and pid) before falling back to the
existing SELECT FOR UPDATE path. When the task is still running on
the expected host this returns immediately, eliminating the row lock
and a round trip for the vast majority of heartbeat calls.

* fixup! Add fast-path heartbeat UPDATE to avoid row lock in the common case

* Apply suggestions from code review



* Fix static checks

* fixup! Fix static checks

---------
(cherry picked from commit c97d1a5)

Co-authored-by: Ephraim Anierobi <splendidzigy24@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Rahul Vats <43964496+vatsrahul1001@users.noreply.github.com>
…s endpoint as it returns nested entities in response (#64822) (#65225)

[v3-2-test] Fix: add RUN, HITL_DETAIL, TASK_INSTANCE entities to /dags endpoint as it returns nested entities in response (#64822) (#65225)
Co-authored-by: Kevin Yang <85313829+sjyangkevin@users.noreply.github.com>
…#65049 (#65245)

Co-authored-by: Rahul Vats <43964496+vatsrahul1001@users.noreply.github.com>
…issions (#65273) (#65280)

(cherry picked from commit cf3452d)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
… multi_team=False (#65275) (#65282)

get_team_name_dep() declared AsyncSessionDep as a FastAPI dependency
parameter, which meant FastAPI checked out an async database connection
on every Execution API request -- even when multi_team=False (the
default), where the function immediately returned None without using
the session.

Remove the AsyncSessionDep parameter and create the session inside the
function only when multi_team=True. This avoids a connection checkout,
no-op commit round-trip, and connection return on every connection and
variable lookup from workers.
(cherry picked from commit 1e64f41)

Co-authored-by: Kaxil Naik <kaxilnaik@gmail.com>
…aints (#65244) (#65255)

Pass exact version specifiers when installing apache-airflow,
apache-airflow-core, and apache-airflow-task-sdk for the highest
resolution constraint build so uv resolves against the versions
currently declared in-tree rather than the latest published on PyPI.
(cherry picked from commit d31f6ac)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Rahul Vats <43964496+vatsrahul1001@users.noreply.github.com>
)

(cherry picked from commit f102ad7)

Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
…5284)

When _configure_async_session() was extracted from configure_orm() in
PR #51920, the corresponding cleanup in dispose_orm() was not updated.
This left async_engine connections abandoned on process exit, gunicorn
worker restarts, and atexit -- gradually exhausting PostgreSQL's
max_connections.

Dispose async_engine.sync_engine (the synchronous path, matching
the existing clean_in_fork pattern) and clear both async_engine and
AsyncSession references.

(cherry picked from commit 69a88bf)

Co-authored-by: Kaxil Naik <kaxilnaik@gmail.com>
…migraiton (#65288) (#65290)

[v3-2-test] fix(migration): add missing disable_sqlite_fkeys to 0108 migraiton (#65288) (#65290)
…64193) (#65292)

(cherry picked from commit 8eb89db)

Co-authored-by: Kaxil Naik <kaxilnaik@gmail.com>
…) (#65293)

* Add overridable metadata engine creation hooks in settings.py

* retrigger CI

* Add tests and docs for metadata engine creation hooks

Address review feedback: add unit tests proving configure_orm() and
_configure_async_session() delegate to the overridable hooks, verify
default implementations forward args correctly, and confirm overrides
via airflow_local_settings.py take effect. Document the new hooks in
cluster-policies.rst with function signatures and a JWT example.

* Fix ruff formatting and restore settings attrs in teardown

Ruff format required single-line function signatures. More importantly,
teardown_method now restores the original create_metadata_engine and
create_async_metadata_engine on the settings module to prevent the
override from test_override_via_local_settings from leaking into
subsequent test classes (e.g. test_sqlalchemy_config.py).

* Update PR with Lee's comments

(cherry picked from commit 85ccf1a)

Co-authored-by: Arthur <arthur.volant@datadoghq.com>
* fix(connection): check pre-normalized conn_type when warning about presence of underscores in conn_type

* feat(connection): added test_get_uri_conn_type_warning method to TestConnection

* fix(connection): use conn_type attr as default value when checking conn_type for presence of underscores in get_uri

* fix(connection): generalized test cases used by test_get_uri_conn_type_warning test to include connections instantiated using a URI and connections instantiated not using a URI

* fix(connection): coalesce conn_type value to an empty string before checking for presence of underscores in conn_type in get_uri

* refactor(connection): updated assertion messages in test_get_uri_conn_type_warning method

* style(connection): formatting changes according to prek static checks

(cherry picked from commit 06c75db)

Co-authored-by: Michael Trossbach <mptrossbach@gmail.com>
(cherry picked from commit 19ed508)

Co-authored-by: Pierre Jeambrun <pierrejbrun@gmail.com>
#65296)

Fix zip DAG import errors being cleared during bundle refresh (#63617) (#65296)

(cherry picked from commit 4b510de)

Co-authored-by: GPK <gopidesupavan@gmail.com>
(cherry picked from commit e7ea925)

Co-authored-by: Pierre Jeambrun <pierrejbrun@gmail.com>
* fix: use Dag form when materializing asset

* fixup! fix: use Dag form when materializing asset

* fixup! fixup! fix: use Dag form when materializing asset

* fixup! fixup! fixup! fix: use Dag form when materializing asset

* fixup! fixup! fixup! fixup! fix: use Dag form when materializing asset

* test: add test case test_should_respond_200_with_trigger_fields_without_dag_run_id

* fix: restore useTrigger in TriggerDAGModal after TriggerDAGForm refactor

TriggerDAGForm no longer owns the trigger mutation after the refactor
(onSubmitTrigger was made a prop). TriggerDAGModal must now supply
useTrigger and pass error/isPending/onSubmitTrigger down to the form,
otherwise clicking Trigger does nothing and dagRunId stays null.

(cherry picked from commit b312314)

Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…#65312)

The zip import error fix (#63617) changed the public signature of
`DagFileProcessorManager.deactivate_deleted_dags` from
`(bundle_name, present: set[DagFileInfo])` to
`(bundle_name, observed_filelocs: set[str])`, breaking subclass
overrides. Restore the original signature and compute observed
filelocs internally.

Also widen `DagModel.deactivate_deleted_dags` `rel_filelocs` type
from `set[str]` to `Collection[str]` to accept both list and set
callers.

(cherry picked from commit 9ad468c)

Co-authored-by: Ephraim Anierobi <splendidzigy24@gmail.com>
#65133) (#65311)

(cherry picked from commit b73a4f3)

Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@kaxil kaxil closed this Apr 15, 2026
@kaxil kaxil reopened this Apr 15, 2026
@jscheffl

Copy link
Copy Markdown
Contributor

Args, a bit too late with #65332 :-(

@jscheffl jscheffl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skimmed over and all looks good! Looking forward to 3.2.1!

@vatsrahul1001 vatsrahul1001 merged commit b457a30 into v3-2-stable Apr 15, 2026
283 of 285 checks passed
@vatsrahul1001 vatsrahul1001 deleted the changes-3.2.1rc1 branch April 15, 2026 20:40
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.

10 participants