This is an automated email from the ASF dual-hosted git repository.
vincbeck pushed a change to branch vincbeck/fab_remove_sqla_limit
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 532fe057c7e Set `SQLALCHEMY_ENGINE_DEBUG`
omit 70c04792b8d Remove SQLA 1 limit in Fab provider
add 7934a6953a0 `issue-59385`: Removing unneeded call the
`SnowflakeSqlApiHook` (#59470)
add 0bbc9f12171 fix(i18n): plugins should be translated as 外掛 instead of
插件 in Taiwanese Mandarian (#59513)
add fbbce53abd8 Add pre-commit hook to verify version consistency (#59509)
add 2cc1fa91fdb Fix clear task instance dialog tasks states (#59363)
add ab5ba5ca053 Adaptions for custom auth manager example in documentation
(#59355)
add 4bfd1215941 Fix svn push step to add both versions in one commit
(#59505)
add 7ba8dbfd088 Add ability to add, edit, and delete XComs directly from
UI (#58921)
add 55c42fa7fd6 Manually bump packages (#59073)
add c81c570ecfb add ui e2e condtion for prod image build (#59523)
add 55a4ecd6be6 Consolidate more components (#59338)
add c998c941697 Update release version to 3.1.1 and improve error handling
in SVN access (#59531)
add 31f953b0c8d bug fix (#59292)
add dd3c93e239c Remove redundant InvokeModel calls (#59527)
add 4713f72525d Bump Sphinx Airflow theme to 0.3.0 (#59538)
add d6095c5f2f0 Split SDK and serialized asset classes (#58993)
add f6343b164ab Feat e2e test for Dags pagination (#59400)
add 9fc231e237c Minor cleanups removing SDK references from Core (#59491)
add 908058951c5 Use exclude_defaults to prevent explicitly empty fields to
be in request (#57718)
add 6059bec62d4 Add Rahul Vats as UI code owner (#59548)
add 7b30cc0fb66 Refactor Dag trigger e2e tests into dags-list.spec (#59542)
add 3af4d289cd2 Move Serialization/Deserialization (serde) to task SDK
(#58992)
add c3f0fd477cc Refactor/sqla2 providers(celery, kubernetes, databricks,
mysql) to remove SQLA query usage (#59537)
add 5c25ccc0010 Update multiple test files to remove SQLAlchemy query
usage (#59501)
add e7a1e57fd16 [BUGFIX] Flush session() before processing Event Buffer
(#59314)
add 357b7fbdd22 Use textwrap.dedent in all cases in conf tests (#59536)
add 875a427ab3f Update README.md "DAG" to "Dag" for consistency (#59554)
add aed9e04b83d Update guide duration from 5 to 15 minutes (#59552)
add ebefb4f145c Add Rahul to codeowners (#59565)
add d0bb4ad34d5 Update Dockerfile (#59569)
add c541c637c9f UI: Add data interval override option for manual DAG runs
(#57342)
add fe5d81a9224 Revert "Use exclude_defaults to prevent explicitly empty
fields to be in request (#57718)" (#59578)
add e659539c002 Align prevent rerun messages in line 38 and 68 in i18n
dags.json (#59562)
add 1c0b4936d40 Fix Dag Processor logging crash (#59317)
add e2cd7c609b1 Add log record when listening dag is partitioned but run
has no key (#59375)
add f8d1e8831d5 Add missing fields to SQLValueCheckOperator docstring
(#59409)
add 1c703068a51 [Chart] Fix rendering condition of
"git_sync_ssh_key_volume" (#59418)
add 50e10d667bb Make Edge provider SQLA2 compatible (#59414)
add dcaad6008e2 Add sqs hook tests (#59586)
add cb3d5b7d243 Remove unecessary eslint ignores in TriggerDAGForm (#59579)
add 667b112bca7 Speed up dag parsing for google gen_ai_generative_model
dag (#59587)
add 940c7bb970e Use sdk shared library references in serde source code
(#59591)
add c36e5ec71dc fix(asset-parition): add a mutex lock to AssetModel when
updating APDR (#59183)
add 20c0d5ffaed Update multiple test files to remove SQLAlchemy query
usage (#59508)
add fb12e5c6df4 refactor: move task stream filtering logic to endpoint for
Grid (#58576)
add 3b6e6bf18e0 Add typescript eslint plugin to other core packages
(#59605)
add c1a2b47a620 Remove duplicated call to task instance refresh_from_task
(#59590)
add e19c6f5edfa Add typescript eslint plugin to edge3 (#59606)
add 5ba75af4095 Add more common methods to ExecutorConfig shim (#59532)
add 9815da821f4 CI: Upgrade important CI environment (#59617)
add 2838f04b896 Fix DAG Processor health check threshold matching the
pattern used by SchedulerJob and TriggererJob. (#58704)
add f08a6c19d59 Remove pnpm lock for react template (#59613)
add 63e8727e23e Port over custom serializer tests from airflow core to
task sdk (#59638)
add 415491c648c sqla2 upgrade (test_dag_sources, test_hitl, test_assets,
test_structure, test_deadline) (#59623)
add caa81a74c38 fix(cli): Set server context for connections (#59624)
add 5cad13a03af Docs: clarify runtime vs parse-time behavior in dynamic
task mapping (#59641)
add 71352014686 Allow swc and esbuild install script for SAM (#59608)
add 75b2b7d1ece Refactor/sqla2 multiple files (#59540)
add f84fd659a33 Add newsfragment describing the relocation of the serde
library (#59632)
add 3c65b12acc4 Add compat deprecation handling for [webserver/base_url]
(#59659)
add 3b80378752a CI: Upgrade important CI environment (#59662)
add d0bd2df6d19 Add fast client-side search to Airflow documentation
(#59658)
add 08a0027b848 Make example DAG import timeout configurable (#59664)
add 7a2d29e6260 Refactor: Use i18n keys for UI hardcoded placeholders
(#59655)
add e4817fd1f46 Remove custom serializers from airflow-core as its in task
sdk now (#59631)
add 33e6d3eb8f0 Convert remaining `pip check` commands to `uv pip check`
(#59670)
add 9ea76929320 Add missing translations PL: 2025-12-20 (#59668)
add a4f2b33e0b7 Fix Google Cloud Data Fusion hook to handle pipeline start
errors properly (#58698)
add a59396c670c Fix Expand+Collapse Translation Key (#59672)
add bd5e036a04e Limit fast-api to not include 0.126.0 version (#59681)
add 5e237a0e5a4 feat: verify dag details e2e test (#59616)
add 135cdea746c Remove global from listener (#59683)
add 288b09a5c44 Add Content-Type to Request Header in Task SDK calls, fix
logic (#59676)
add 057c73f50a9 i18n(Ko): add missing translations in common.json (#59682)
add d57d97728a5 Increase timeout when collecting example dags in
serialization tests (#59694)
add bd40df72d44 Remove global from shared airflow code (#59689)
add 60a5eb4f513 Remove global from conftest (#59696)
add d9908b1bf20 Close German translation gaps for full UI translation
2025-12-20 (#59671)
add 7eeec694f3e SQLA2: fix types + upgrade `query()` to `execute()`
(#59690)
add 816594e6cdb Remove global from Task SDK log (#59695)
add 3d33d6d6386 Fix test_date_timezone_omitted by patching correct
timezone attribute (#59698)
add c125fffe372 Update prek documentation to show uninstall is optional
(#59701)
add 8defa759f9f Redact secrets in rendered templates properly when
truncating it (#59566)
add 5c161a49ac8 UI e2e Auth sharing (#59692)
add 6bce6707908 Better highlight the airflow docs search navigator (#59703)
add 3111f43a160 Exclude fastapi 0.127.0 as it is still causing CI problems
(#59710)
add b2f16085206 Remove duplicated configuration tests between core and
shared library (#59709)
add 20fd40a7e70 Don't issue warning if memray_trace_components was not set
(#59666)
add 907b4ef5340 Feat: Support URL params for pre-filling Trigger and
Backfill forms (#59231)
add 8f15520779b More update to using SQLA2 (#59700)
add eb6844f58cb SQLA2: avoid unnecessary locking when working with TIs
(#59686)
add 3bf0ed824f3 Upper-bind FastAPI until Cadwyn is adapted to FastAPI
0.126.0+ (#59726)
add 1d0c7849ad4 `issue-59576`: Properly Link Public/Private Provider Docs
(#59584)
add 66a0ebe0304 Remove SQLA 1 limit in Fab provider
add 09bb7aee19c Set `SQLALCHEMY_ENGINE_DEBUG`
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (532fe057c7e)
\
N -- N -- N refs/heads/vincbeck/fab_remove_sqla_limit
(09bb7aee19c)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 5 +-
.github/actions/breeze/action.yml | 2 +-
.github/actions/install-prek/action.yml | 4 +-
.github/workflows/basic-tests.yml | 4 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.pre-commit-config.yaml | 50 +-
Dockerfile | 26 +-
Dockerfile.ci | 42 +-
README.md | 18 +-
airflow-core/.pre-commit-config.yaml | 1 +
.../production-deployment.rst | 2 +-
.../dynamic-task-mapping.rst | 4 +-
.../docs/authoring-and-scheduling/serializers.rst | 4 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/conf.py | 8 +
airflow-core/docs/core-concepts/params.rst | 52 +
airflow-core/docs/img/airflow_erd.svg | 4965 +++++++--------
airflow-core/newsfragments/58992.significant.rst | 43 +
airflow-core/pyproject.toml | 10 +-
airflow-core/src/airflow/__init__.py | 3 +-
.../auth/managers/simple/ui/package.json | 11 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 174 +-
.../api_fastapi/core_api/datamodels/providers.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 22 +
.../core_api/openapi/v2-rest-api-generated.yaml | 81 +
.../api_fastapi/core_api/routes/public/xcom.py | 74 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 49 +-
.../core_api/services/public/providers.py | 1 +
.../api_fastapi/core_api/services/ui/task_group.py | 5 +-
.../execution_api/routes/task_instances.py | 63 +-
airflow-core/src/airflow/assets/evaluation.py | 41 +-
airflow-core/src/airflow/assets/manager.py | 142 +-
.../src/airflow/cli/commands/connection_command.py | 4 +
.../src/airflow/cli/commands/task_command.py | 1 -
.../src/airflow/config_templates/config.yml | 15 +-
.../src/airflow/dag_processing/collection.py | 38 +-
.../src/airflow/example_dags/example_xcom.py | 3 +-
.../src/airflow/executors/base_executor.py | 15 +
airflow-core/src/airflow/jobs/job.py | 2 +
.../src/airflow/jobs/scheduler_job_runner.py | 18 +-
airflow-core/src/airflow/listeners/spec/asset.py | 8 +-
airflow-core/src/airflow/models/asset.py | 53 +-
airflow-core/src/airflow/models/dag.py | 25 +-
airflow-core/src/airflow/models/serialized_dag.py | 14 +-
airflow-core/src/airflow/models/taskinstance.py | 91 +-
airflow-core/src/airflow/models/trigger.py | 2 +-
airflow-core/src/airflow/models/xcom.py | 24 +-
airflow-core/src/airflow/models/xcom_arg.py | 18 +-
airflow-core/src/airflow/providers_manager.py | 15 +
airflow-core/src/airflow/serialization/__init__.py | 12 +
airflow-core/src/airflow/serialization/decoders.py | 43 +-
.../airflow/serialization/definitions/assets.py | 288 +-
airflow-core/src/airflow/serialization/encoders.py | 56 +-
.../airflow/serialization/serialized_objects.py | 49 +-
.../airflow/serialization/serializers/__init__.py | 23 +
.../src/airflow/serialization/stringify.py | 141 +
.../src/airflow/ti_deps/deps/prev_dagrun_dep.py | 3 +-
airflow-core/src/airflow/timetables/assets.py | 21 +-
airflow-core/src/airflow/timetables/base.py | 50 +-
airflow-core/src/airflow/timetables/simple.py | 44 +-
airflow-core/src/airflow/ui/.gitignore | 3 +
.../src/airflow/ui/openapi-gen/queries/common.ts | 8 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 10 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 10 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 35 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 10 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 13 +-
.../ui/openapi-gen/requests/services.gen.ts | 43 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 43 +
airflow-core/src/airflow/ui/package.json | 79 +-
airflow-core/src/airflow/ui/playwright.config.ts | 14 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 2577 ++++----
.../airflow/ui/public/i18n/locales/ar/browse.json | 4 -
.../airflow/ui/public/i18n/locales/ar/common.json | 2 +
.../airflow/ui/public/i18n/locales/ca/browse.json | 4 -
.../airflow/ui/public/i18n/locales/ca/common.json | 2 +
.../airflow/ui/public/i18n/locales/de/admin.json | 6 +
.../airflow/ui/public/i18n/locales/de/assets.json | 1 +
.../airflow/ui/public/i18n/locales/de/browse.json | 30 +-
.../airflow/ui/public/i18n/locales/de/common.json | 15 +-
.../ui/public/i18n/locales/de/components.json | 7 +
.../ui/public/i18n/locales/de/dashboard.json | 3 +-
.../airflow/ui/public/i18n/locales/el/browse.json | 4 -
.../airflow/ui/public/i18n/locales/el/common.json | 2 +
.../airflow/ui/public/i18n/locales/en/browse.json | 26 +-
.../airflow/ui/public/i18n/locales/en/common.json | 6 +-
.../ui/public/i18n/locales/en/components.json | 7 +
.../airflow/ui/public/i18n/locales/en/dags.json | 2 +-
.../ui/public/i18n/locales/en/dashboard.json | 3 +-
.../airflow/ui/public/i18n/locales/es/browse.json | 4 -
.../airflow/ui/public/i18n/locales/es/common.json | 2 +
.../airflow/ui/public/i18n/locales/fr/browse.json | 4 -
.../airflow/ui/public/i18n/locales/fr/common.json | 2 +
.../airflow/ui/public/i18n/locales/hi/browse.json | 4 -
.../airflow/ui/public/i18n/locales/hi/common.json | 2 +
.../airflow/ui/public/i18n/locales/hu/browse.json | 4 -
.../airflow/ui/public/i18n/locales/hu/common.json | 2 +
.../airflow/ui/public/i18n/locales/it/browse.json | 4 -
.../airflow/ui/public/i18n/locales/it/common.json | 2 +
.../airflow/ui/public/i18n/locales/ko/common.json | 7 +-
.../airflow/ui/public/i18n/locales/nl/browse.json | 4 -
.../airflow/ui/public/i18n/locales/nl/common.json | 2 +
.../airflow/ui/public/i18n/locales/pl/admin.json | 6 +
.../airflow/ui/public/i18n/locales/pl/browse.json | 26 +-
.../airflow/ui/public/i18n/locales/pl/common.json | 10 +-
.../ui/public/i18n/locales/pl/components.json | 7 +
.../ui/public/i18n/locales/pl/dashboard.json | 3 +-
.../airflow/ui/public/i18n/locales/pt/browse.json | 4 -
.../airflow/ui/public/i18n/locales/pt/common.json | 2 +
.../airflow/ui/public/i18n/locales/th/browse.json | 4 -
.../airflow/ui/public/i18n/locales/th/common.json | 2 +
.../airflow/ui/public/i18n/locales/tr/browse.json | 4 -
.../airflow/ui/public/i18n/locales/tr/common.json | 2 +
.../ui/public/i18n/locales/zh-CN/browse.json | 4 -
.../ui/public/i18n/locales/zh-CN/common.json | 2 +
.../ui/public/i18n/locales/zh-TW/browse.json | 4 -
.../ui/public/i18n/locales/zh-TW/common.json | 4 +-
.../ui/src/components/Assets/AssetEvents.tsx | 2 +-
.../ui/src/components/Assets/TriggeredRuns.tsx | 4 +-
.../ui/src/components/Banner/BackfillBanner.tsx | 4 +-
.../src/airflow/ui/src/components/BasicTooltip.tsx | 28 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 15 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 15 +-
.../ClearTaskInstanceConfirmationDialog.tsx | 6 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 13 +-
.../src/airflow/ui/src/components/ConfigForm.tsx | 9 +-
.../DagWarningsModal.tsx => DAGWarningsModal.tsx} | 4 +-
.../ui/src/components/DagActions/ParseDag.tsx | 3 +-
.../src/components/DagActions/RunBackfillForm.tsx | 54 +-
.../airflow/ui/src/components/DagVersionSelect.tsx | 2 +-
.../src/airflow/ui/src/components/DeleteDialog.tsx | 4 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 4 +-
.../ui/src/components/EditableMarkdownButton.tsx | 4 +-
.../ui/src/components/FilterBar/FilterPill.tsx | 45 +-
.../components/FilterBar/filters/DateFilter.tsx | 23 +-
.../FilterBar/filters/DateRangeCalendar.tsx | 6 +-
.../FilterBar/filters/DateRangeFilter.tsx | 186 +-
.../components/FilterBar/filters/NumberFilter.tsx | 65 +-
.../components/FilterBar/filters/SelectFilter.tsx | 88 +-
.../FilterBar/filters/TextSearchFilter.tsx | 23 +-
.../airflow/ui/src/components/FilterBar/index.ts | 2 +-
.../src/components/FlexibleForm/FieldDropdown.tsx | 2 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 4 +-
.../src/components/MarkAs/Run/MarkRunAsDialog.tsx | 4 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 4 +-
.../airflow/ui/src/components/TaskTrySelect.tsx | 2 +-
.../airflow/ui/src/components/TrendCountChart.tsx | 2 +-
.../TriggerDag/TriggerDAGAdvancedOptions.tsx | 85 +
.../src/components/TriggerDag/TriggerDAGForm.tsx | 293 +-
.../src/components/TriggerDag/TriggerDAGModal.tsx | 27 +-
.../src/components/ui/ActionBar/CloseTrigger.tsx | 4 +-
.../airflow/ui/src/components/ui/ActionButton.tsx | 4 +-
.../src/airflow/ui/src/components/ui/Alert.tsx | 4 +-
.../src/airflow/ui/src/components/ui/Button.tsx | 52 -
.../airflow/ui/src/components/ui/CloseButton.tsx | 35 -
.../ui/src/components/ui/Dialog/CloseTrigger.tsx | 4 +-
.../ui/src/components/ui/Popover/CloseTrigger.tsx | 4 +-
.../src/airflow/ui/src/components/ui/RadioCard.tsx | 55 +-
.../ui/src/components/ui/ResizableWrapper.tsx | 7 +-
.../ui/src/components/ui/Select/Content.tsx | 2 +-
.../ui/src/components/ui/Select/Trigger.tsx | 4 +-
.../src/airflow/ui/src/components/ui/index.ts | 2 -
.../ui/src/layouts/Details/DetailsLayout.tsx | 11 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 61 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 32 +-
.../ui/src/layouts/Details/TaskStreamFilter.tsx | 3 +-
.../ui/src/pages/AssetsList/DependencyPopover.tsx | 4 +-
.../pages/Connections/DeleteConnectionButton.tsx | 4 +-
.../pages/Connections/DeleteConnectionsButton.tsx | 4 +-
.../src/airflow/ui/src/pages/Dag/Details.tsx | 38 +-
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 19 +-
.../ui/src/pages/DagsList/AssetSchedule.tsx | 4 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 4 +-
.../airflow/ui/src/pages/Pools/AddPoolButton.tsx | 4 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 3 +-
.../src/airflow/ui/src/pages/Providers.tsx | 5 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 2 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 2 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 5 +-
.../src/pages/Variables/DeleteVariablesButton.tsx | 4 +-
.../src/pages/Variables/ImportVariablesButton.tsx | 4 +-
.../ui/src/pages/Variables/ImportVariablesForm.tsx | 3 +-
.../Variables/ManageVariable/AddVariableButton.tsx | 4 +-
.../ManageVariable/DeleteVariableButton.tsx | 4 +-
.../Variables/ManageVariable/VariableForm.tsx | 3 +-
.../ParseDag.tsx => pages/XCom/AddXComButton.tsx} | 48 +-
.../airflow/ui/src/pages/XCom/DeleteXComButton.tsx | 96 +
.../XCom/EditXComButton.tsx} | 44 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 56 +-
.../src/airflow/ui/src/pages/XCom/XComModal.tsx | 213 +
.../ui/src/queries/useConnectionTypeMeta.ts | 103 +-
.../src/airflow/ui/src/queries/useDagParams.ts | 12 +-
.../airflow/ui/src/queries/useDagTagsInfinite.ts | 18 +-
.../src/airflow/ui/src/queries/useGridStructure.ts | 9 +
.../ui/src/queries/useRefreshOnNewDagRuns.ts | 4 +-
.../src/airflow/ui/src/queries/useTrigger.ts | 19 +-
airflow-core/src/airflow/ui/src/router.tsx | 1 +
airflow-core/src/airflow/ui/src/utils/trigger.ts | 114 +
.../src/airflow/ui/tests/e2e/global-setup.ts | 58 +
.../src/airflow/ui/tests/e2e/pages/DagsPage.ts | 73 +-
.../{dag-trigger.spec.ts => dags-list.spec.ts} | 60 +-
airflow-core/src/airflow/utils/context.py | 15 +-
airflow-core/src/airflow/utils/helpers.py | 56 +-
airflow-core/src/airflow/utils/json.py | 37 +-
airflow-core/tests/integration/otel/test_otel.py | 27 +-
.../tests/unit/always/test_example_dags.py | 36 +-
.../tests/unit/always/test_providers_manager.py | 2 +
.../core_api/routes/public/test_assets.py | 2 +-
.../core_api/routes/public/test_dag_run.py | 36 +-
.../core_api/routes/public/test_dag_sources.py | 9 +-
.../core_api/routes/public/test_hitl.py | 4 +-
.../core_api/routes/public/test_providers.py | 2 +
.../core_api/routes/public/test_variables.py | 7 +-
.../core_api/routes/public/test_xcom.py | 97 +-
.../api_fastapi/core_api/routes/ui/test_assets.py | 7 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 157 +
.../core_api/routes/ui/test_structure.py | 2 +-
.../execution_api/versions/head/test_dag_runs.py | 9 +-
.../versions/head/test_task_instances.py | 20 +-
.../execution_api/versions/head/test_variables.py | 13 +-
.../execution_api/versions/head/test_xcoms.py | 72 +-
airflow-core/tests/unit/assets/test_evaluation.py | 117 +-
airflow-core/tests/unit/assets/test_manager.py | 74 +-
.../tests/unit/cli/commands/test_asset_command.py | 5 +-
.../tests/unit/cli/commands/test_db_command.py | 4 +-
.../tests/unit/cli/commands/test_task_command.py | 11 +-
airflow-core/tests/unit/core/test_configuration.py | 544 +-
.../bundles/test_dag_bundle_manager.py | 23 +-
.../tests/unit/dag_processing/test_collection.py | 25 +-
.../tests/unit/executors/test_base_executor.py | 173 +
airflow-core/tests/unit/jobs/test_base_job.py | 19 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 17 +-
.../tests/unit/listeners/asset_listener.py | 9 +-
.../tests/unit/listeners/class_listener.py | 3 +-
airflow-core/tests/unit/models/test_asset.py | 8 +-
airflow-core/tests/unit/models/test_callback.py | 5 +-
airflow-core/tests/unit/models/test_cleartasks.py | 37 +-
airflow-core/tests/unit/models/test_dagrun.py | 126 +-
airflow-core/tests/unit/models/test_dagwarning.py | 3 +-
airflow-core/tests/unit/models/test_deadline.py | 7 +-
airflow-core/tests/unit/models/test_pool.py | 7 +-
.../tests/unit/models/test_renderedtifields.py | 32 +-
.../tests/unit/models/test_serialized_dag.py | 45 +-
.../tests/unit/models/test_taskinstance.py | 37 +-
airflow-core/tests/unit/models/test_timestamp.py | 5 +-
airflow-core/tests/unit/models/test_trigger.py | 69 +-
airflow-core/tests/unit/models/test_xcom.py | 17 +-
.../unit/serialization/definitions}/__init__.py | 0
.../unit/serialization/definitions/test_assets.py | 97 +
.../unit/serialization/test_dag_serialization.py | 50 +-
.../unit/serialization/test_serialized_objects.py | 39 +-
.../tests/unit/serialization/test_stringify.py | 237 +
.../ti_deps/deps/test_runnable_exec_date_dep.py | 5 +-
.../tests/unit/timetables/test_assets_timetable.py | 155 +-
airflow-core/tests/unit/utils/test_cli_util.py | 5 +-
airflow-core/tests/unit/utils/test_edgemodifier.py | 3 +-
airflow-core/tests/unit/utils/test_log_handlers.py | 21 +-
airflow-core/tests/unit/utils/test_state.py | 11 +-
.../tests/airflowctl_tests/conftest.py | 20 +-
.../src/airflowctl/api/datamodels/generated.py | 1 +
.../tests/airflow_e2e_tests/conftest.py | 59 +-
chart/files/pod-template-file.kubernetes-helm-yaml | 2 +-
contributing-docs/03_contributors_quick_start.rst | 2 +-
.../03a_contributors_quick_start_beginners.rst | 4 +-
contributing-docs/mprocs/MPROCS_QUICK_REFERENCE.md | 13 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/pyproject.toml | 2 +-
.../commands/release_candidate_command.py | 22 +-
.../src/airflow_breeze/commands/release_command.py | 4 +-
.../commands/release_management_commands.py | 4 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../src/airflow_breeze/utils/selective_checks.py | 7 +-
dev/breeze/tests/test_release_candidate_command.py | 187 +
dev/breeze/tests/test_selective_checks.py | 3 +-
dev/breeze/uv.lock | 132 +-
.../react_plugin_template/package.json | 5 +-
.../react_plugin_template/pnpm-lock.yaml | 6314 --------------------
devel-common/pyproject.toml | 5 +-
devel-common/src/docs/utils/conf_constants.py | 1 +
.../src/sphinx_exts/pagefind_search/README.md | 165 +
.../src/sphinx_exts/pagefind_search/__init__.py | 103 +
.../src/sphinx_exts/pagefind_search/builder.py | 215 +
.../pagefind_search/static/css/pagefind.css | 529 ++
.../pagefind_search/static/js/search.js | 228 +
.../pagefind_search/templates/search-modal.html | 48 +
.../pagefind_search/templates/searchbox.html | 33 +
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 2 +-
.../tests/helm_tests/airflow_aux/test_configmap.py | 46 +
providers/amazon/docs/operators/bedrock.rst | 12 +-
.../tests/system/amazon/aws/example_bedrock.py | 48 +-
.../amazon/aws/example_bedrock_batch_inference.py | 19 +-
.../aws/example_bedrock_retrieve_and_generate.py | 20 +-
.../amazon/tests/unit/amazon/aws/hooks/test_sqs.py | 132 +-
.../unit/celery/log_handlers/test_log_handlers.py | 5 +-
.../cncf/kubernetes/decorators/kubernetes_cmd.py | 5 +-
.../cncf/kubernetes/kubernetes_helper_functions.py | 8 +-
.../kubernetes/decorators/test_kubernetes_cmd.py | 23 +
providers/common/sql/docs/operators.rst | 23 +
.../airflow/providers/common/sql/operators/sql.py | 3 +
...reshold_check.py => example_sql_value_check.py} | 26 +-
.../databricks/plugins/databricks_workflow.py | 14 +-
.../databricks/plugins/test_databricks_workflow.py | 4 +-
.../providers/edge3/executors/edge_executor.py | 47 +-
.../providers/edge3/plugins/www/dist/main.umd.cjs | 16 +-
.../providers/edge3/plugins/www/package.json | 5 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 163 +-
.../unit/edge3/executors/test_edge_executor.py | 17 +-
.../unit/edge3/worker_api/routes/test_jobs.py | 7 +-
.../unit/edge3/worker_api/routes/test_logs.py | 6 +-
.../tests/unit/edge3/worker_api/routes/test_ui.py | 3 +-
.../unit/edge3/worker_api/routes/test_worker.py | 14 +-
providers/edge3/www-hash.txt | 2 +-
providers/fab/docs/auth-manager/token.rst | 6 +-
.../fab/auth_manager/security_manager/override.py | 5 +-
.../providers/google/cloud/hooks/datafusion.py | 36 +-
.../gen_ai/example_gen_ai_generative_model.py | 38 +-
.../unit/google/cloud/hooks/test_datafusion.py | 88 +-
.../tests/unit/mysql/transfers/test_s3_to_mysql.py | 8 +-
.../openlineage/utils/selective_enable.py | 4 +-
...ample_openlineage_schedule_asset_or_time_dag.py | 2 +-
.../snowflake/triggers/snowflake_trigger.py | 21 +-
.../tests/unit/standard/decorators/test_python.py | 19 +-
pyproject.toml | 4 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_version_consistency.py | 299 +
scripts/ci/prek/ruff_format.py | 2 +-
scripts/docker/entrypoint_ci.sh | 18 +-
scripts/docker/install_additional_dependencies.sh | 12 +-
.../docker/install_airflow_when_building_images.sh | 6 +-
.../docker/install_from_docker_context_files.sh | 6 +-
scripts/tools/setup_breeze | 2 +-
.../src/airflow_shared/configuration/parser.py | 47 +-
.../tests/configuration/test_parser.py | 26 +-
.../secrets_masker/secrets_masker.py | 9 +-
.../src/airflow_shared/timezones/timezone.py | 24 +-
task-sdk/src/airflow/sdk/api/client.py | 4 +-
task-sdk/src/airflow/sdk/bases/timetable.py | 50 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 4 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 252 +-
.../airflow/sdk/definitions/asset/decorators.py | 35 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 2 +
task-sdk/src/airflow/sdk/definitions/deadline.py | 2 +-
.../src/airflow/sdk/execution_time/supervisor.py | 8 +-
.../src/airflow/sdk/execution_time/task_runner.py | 80 +-
task-sdk/src/airflow/sdk/log.py | 43 +-
.../src/airflow/sdk/serde/__init__.py | 15 +-
.../src/airflow/sdk/serde/serializers}/__init__.py | 0
.../src/airflow/sdk/serde}/serializers/bignum.py | 4 +-
.../src/airflow/sdk/serde}/serializers/builtin.py | 4 +-
.../src/airflow/sdk/serde}/serializers/datetime.py | 8 +-
.../airflow/sdk/serde}/serializers/deltalake.py | 4 +-
.../src/airflow/sdk/serde}/serializers/iceberg.py | 4 +-
.../airflow/sdk/serde}/serializers/kubernetes.py | 4 +-
.../src/airflow/sdk/serde}/serializers/numpy.py | 4 +-
.../src/airflow/sdk/serde}/serializers/pandas.py | 4 +-
.../src/airflow/sdk/serde}/serializers/pydantic.py | 6 +-
.../src/airflow/sdk/serde}/serializers/timezone.py | 6 +-
.../src/airflow/sdk/serde}/typing.py | 1 -
task-sdk/tests/conftest.py | 13 +
task-sdk/tests/task_sdk/definitions/test_asset.py | 54 +-
task-sdk/tests/task_sdk/docs/test_public_api.py | 1 +
.../task_sdk/execution_time/test_task_runner.py | 44 +
.../tests/task_sdk/serde}/__init__.py | 0
.../tests/task_sdk/serde}/test_serde.py | 38 +-
.../tests/task_sdk/serde}/test_serializers.py | 60 +-
367 files changed, 11522 insertions(+), 13805 deletions(-)
create mode 100644 airflow-core/newsfragments/58992.significant.rst
create mode 100644 airflow-core/src/airflow/serialization/stringify.py
rename airflow-core/src/airflow/ui/src/components/{ui/DagWarningsModal.tsx =>
DAGWarningsModal.tsx} (96%)
create mode 100644
airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGAdvancedOptions.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/components/ui/Button.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/CloseButton.tsx
copy airflow-core/src/airflow/ui/src/{components/DagActions/ParseDag.tsx =>
pages/XCom/AddXComButton.tsx} (53%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/XCom/DeleteXComButton.tsx
copy airflow-core/src/airflow/ui/src/{layouts/Nav/TimezoneModal.tsx =>
pages/XCom/EditXComButton.tsx} (50%)
create mode 100644 airflow-core/src/airflow/ui/src/pages/XCom/XComModal.tsx
create mode 100644 airflow-core/src/airflow/ui/src/utils/trigger.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/global-setup.ts
rename airflow-core/src/airflow/ui/tests/e2e/specs/{dag-trigger.spec.ts =>
dags-list.spec.ts} (52%)
copy airflow-core/{src/airflow/api/common =>
tests/unit/serialization/definitions}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/serialization/definitions/test_assets.py
create mode 100644 airflow-core/tests/unit/serialization/test_stringify.py
delete mode 100644 dev/react-plugin-tools/react_plugin_template/pnpm-lock.yaml
create mode 100644 devel-common/src/sphinx_exts/pagefind_search/README.md
create mode 100644 devel-common/src/sphinx_exts/pagefind_search/__init__.py
create mode 100644 devel-common/src/sphinx_exts/pagefind_search/builder.py
create mode 100644
devel-common/src/sphinx_exts/pagefind_search/static/css/pagefind.css
create mode 100644
devel-common/src/sphinx_exts/pagefind_search/static/js/search.js
create mode 100644
devel-common/src/sphinx_exts/pagefind_search/templates/search-modal.html
create mode 100644
devel-common/src/sphinx_exts/pagefind_search/templates/searchbox.html
copy
providers/common/sql/tests/system/common/sql/{example_sql_threshold_check.py =>
example_sql_value_check.py} (68%)
create mode 100755 scripts/ci/prek/check_version_consistency.py
rename airflow-core/src/airflow/serialization/serde.py =>
task-sdk/src/airflow/sdk/serde/__init__.py (96%)
copy {airflow-core/src/airflow/api/common =>
task-sdk/src/airflow/sdk/serde/serializers}/__init__.py (100%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/bignum.py (94%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/builtin.py (94%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/datetime.py (93%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/deltalake.py (96%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/iceberg.py (96%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/kubernetes.py (95%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/numpy.py (95%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/pandas.py (95%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/pydantic.py (94%)
rename {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/serializers/timezone.py (94%)
copy {airflow-core/src/airflow/serialization =>
task-sdk/src/airflow/sdk/serde}/typing.py (99%)
copy {airflow-core/src/airflow/_shared =>
task-sdk/tests/task_sdk/serde}/__init__.py (100%)
rename {airflow-core/tests/unit/serialization =>
task-sdk/tests/task_sdk/serde}/test_serde.py (92%)
rename {airflow-core/tests/unit/serialization/serializers =>
task-sdk/tests/task_sdk/serde}/test_serializers.py (91%)