This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a change to branch py-client-sync
in repository https://gitbox.apache.org/repos/asf/airflow.git


 discard eccf5f44a22 Update python client version/changelog for 3.1.6 release
     add 5089a376b8b Add choo121600 for API and UI components (#60251)
     add e36e6caa344 Fix breeze k8s dev doesn't include configure-cluster test 
resource (#60259)
     add 9cab6fb7ef4 Add support for async callables in PythonOperator (#59087)
     add 0b341e6b920 Move listeners module to shared library for client server 
separation (#59883)
     add 84d924709aa Refactor airflow-core/tests cli commands to use SQLA2 
(#60263)
     add 1204920d2b0 Revert "Add support for async callables in PythonOperator 
(#59087)" (#60266)
     add 336b8161608 Automatically add pydantic extra when installing airflow 2 
in breeze (#60264)
     add 2c5487c924e Fix OAuth token refresh for long-running SnowflakeHook 
tasks and add tests. (#60027)
     add 2a5be135e97 Bump @hey-api/openapi-ts (#60281)
     add 7a64304948a Add virtualization to grid view (#60241)
     add b2962a3ca12 Fix sidebar visibility issue when main content exceeds 
viewport height (#59660)
     add 1adb1c6c99c Add workers.celery.persistence section (#60238)
     add 4601fa27f60 Fix table filters reseting when deleting a dag (#60279)
     add 9b81c4330a5 Fix Doc Link to Providers Page (#60277)
     add 3e57f1e5ce6 Inherit core theme in React plugins (#60256)
     add a037560f85f Fix flaky release command (#60284)
     add e7fa55dcb39 Update version of Test Release command (#60289)
     add 516cef12ea2 CI: Upgrade important CI environment (#60292)
     add 9a251be8d04 Set default config value in unit test for AWS auth manager 
(#60290)
     add 042d1c427df Bump react-router and react-router-dom (#60293)
     add bc133ead0fb dependencies for sqlalchemy - teradata (#59927)
     add 7d6f0c2cc67 Make  SQLAlchemy optional dependency for vertica Provider 
(#60177)
     add 3deb615f5ba Make SQLAlchemy optional for Postgres provider (#60257)
     add c0cbd097eaf Kubernetes Pod Operator callbacks repeating log line 
(#59372)
     add 0951ed1889b Cleanup tmp_file.py in DagBag test. (#60272)
     add 52688229e09 revert: remove k8s namespace and worker image deprecations 
(#60273)
     add 1bf026b3f9e Fixed timestamp comparision bug in s3hook 
_sync_to_local_dir_if_changed method (#60299)
     add c549b5ce273 Remove the compatibility shim for log_task_event 
AwsEcsExecutor and AwsBatchExecutor (#60301)
     add 8dd76f1624b Remove the compatibility shim for StartTriggerArgs in 
standard provider (#60300)
     add f5a3f4ffd07 add option max_num_workers to dataflow python system 
tests. (#60260)
     add e0c5458c333 Fix constraint mode when installing from dist or version 
airflow (#60304)
     add e57340baec4 update version for release test command + allowing svn 
checkout even for dry run (#60309)
     add 5476b4fd5c1 Update CODEOWNERS for Korean locale (#60308)
     add bfa729a7b33 Add Airflow Task SDK and airflowctl to code contribution 
options (#60311)
     add c0382dcff4b Adding retry mechanism for release calendar CI job (#60310)
     add 8a94a43a80c Remove core references in secrets backend logic in sdk 
(#59597)
     add e44020f5310 Feature: enhance task-sdk definitions context stub file 
typing (#54421)
     add d7c9a0a331d Add bundle_path temporarily to sys.path during DagBag 
parsing. (#55894)
     add 4c8b2b78179 Add api-server hot-reload to breeze k8s dev (#60320)
     add e64d3b694dc rename names of data models related to roles for 
consistency across requests and responses (#60312)
     add 870af3d949c Fab Auth Manager add xcom missing perms (#60315)
     add 6181c3f3f52 Remove unused logic in helm_template_generator (#60188)
     add 7d7908d1fb2 Add description about Gen-AI contributions to our guide 
(#60158)
     add e1dacc637b8 Move ``AirflowOptionalProviderFeatureException`` to task 
sdk (#60323)
     add f4d681cbb40 Making kubernetes executor ResourceVersion a self 
contained singleton (#60324)
     add 19501149482 feat: Add JobDependenciesRunFacet to asset-triggered OL 
DAG events (#59521)
     add f23b96babac fix: reset pagination on DagList search (#60326)
     add cd3b6b45787 Move dags list filters to buttongroups (#60298)
     add 3f0885e7924 increase-mysql-healthcheck-timeout (#60338)
     add 5fb6b07877c New year means updated Copyright notices (#60344)
     add 56d70e7f383 Make Edge Worker using async loop (#56457)
     add f6087276171 Fix AWS auth manager system test (#60329)
     add a190f11596f Add team selector in connection form (#60237)
     add d0266850f19 Add react compiler (#59533)
     add 4b8d9f35611 Enhance SFTPSensor documentation and functionality (#60313)
     add d950fd8f0e4 Increment airflowctl version for release (#60349)
     add ffd66c00d07 Add workers.celery.updateStrategy field (#60351)
     add a0321f2eddf Upgrade react-router in Edge3 to 7.12.0 (#60353)
     add 8d28fe848da Add ``SSHRemoteJobOperator`` for resilient remote job 
execution (#60297)
     add 9479de9802b CI: Upgrade important CI environment (#60365)
     add c2bb38f5fbc Fix duplicate pod creation in KubernetesJobOperator 
(#53368)
     add 94fa8ced6fb Add workers.celery.strategy field (#60354)
     add a68d80da94f Remove deprecated Query usage in Google provider (#60322)
     add 7f855d7d892 Add privacy section to PR guidelines and template (#60367)
     add 0f4c1dd5761 fix(chart): allow revisionHistoryLimit to be set to 0 
(#60340)
     add 70ca05718b9 Fix importlib import in plugins_manager (#60373)
     add 2b43901b878 Limit deltalake again to 1.3.1 due to missing ARM .whl 
files (#60376)
     add 78ba955531a Fix typo in release management validation command (#60374)
     add 5cadabe9d5f Improve Dags Filter UI (#60346)
     add 67c95c3f80a Add Linux favour of installing dependencies for release 
(#60368)
     add b299cf42010 Add workers.celery.podManagementPolicy field (#60359)
     add fd90666e91b Improve insert content when generate docker file (#60393)
     add d96e4a19fa8 fix mypy error in provider (#60395)
     add cf0e012cee6 Add API Support for Filtering DAGs by Timetable Type 
(#58852)
     add bccf1807dc8 Change starlette import to fastapi (#60382)
     add 26a9d3b81b1 Chart: Enhance Celery Worker Sets support for multi-queue 
configurations (#58547)
     add f1b0fdf989a Literal to str Enum for ResourceMethod & 
ExtendedResourceMethod (#60244)
     add 2f0769df131 Replace deprecated import for utcnow() to the new one 
(#60317)
     add fb21525f83c Making ProvidersManager a self contained singleton (#60327)
     add cdecb7efbb3 Run the api-server in background instead of daemon mode 
(#60341)
     add dfcd0490755 Fix dag-processor crashing due to MySql deadlock errors 
(#60166)
     add f9e1e5037ee Add on_task_instance_skipped support to OpenLineage 
listener (#60409)
     add 32d0ae27afa Add support for creating jobs with parallelism=0 to 
KubernetesJobOperator (#60372)
     add 50f4377eec1 Update `example_bedrock` to use a non expired model 
(#60413)
     add b62ca705ec7 Prevent transient error in case when Pod start_time 
parameter is None (#59097)
     add bd133c0ebb1 Make DataprocDeleteClusterOperator idempotent (#60083)
     add c2e003fb2ec Fix bulletpoint in doc (#60422)
     add 5a3f06ad57a Add workers.celery.securityContexts & 
workers.kubernetes.securityContexts (#60396)
     add 5496e150c13 Improve error handling in edge worker on 405 (#60425)
     add 417698fce9c PysparkOperator and not only a decorator (#60041)
     add b39a319980b KubernetesPodOperator check xcom sidecar running before 
trying to read xcom (#60319)
     add 4d3c5ead3b5 Consume ``AirflowOptionalProviderFeatureException`` from 
compat sdk in providers (#60335)
     add 173f80c26ab Add 'ignore_if_missing' to DataprocDeleteClusterOperator 
(#60433)
     add 017edaf2de9 [Helm Chart] Remove tests for unsupported Airflow and K8S 
versions (#60303)
     add fe734000108 Docs: Clarify ingress settings for Airflow 2 vs 3 in 
values.yaml (#60434)
     add 3f3d0f5c1eb KubernetesPodOperator: Fix hanging API calls  (#60254)
     add 27d53c2fc4b Add E2E tests for DAG Runs page (#59919)
     add 79feb8c6738 i18n(Ko): add missing translations (Jan 10) (#60362)
     add 4ecd6c43b11 feat: add depth level parameter to grid and structure 
endpoint (#60314)
     add a9c4275dbfb Clean react plugin tools (#60419)
     add 34bfa821f30 Upgrade react-dom-router in Airflow UI (#60316)
     add ee15065e577 Airflow 3.1.6 has been released (#60451)
     add fcd767971ec Fix gantt chart styling (#60347)
     add 5f2947b9834 Update python client version/changelog for 3.1.6 release

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   (eccf5f44a22)
            \
             N -- N -- N   refs/heads/py-client-sync (5f2947b9834)

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:
 .gitattributes                                     |    1 +
 .github/CODEOWNERS                                 |    8 +-
 .github/ISSUE_TEMPLATE/1-airflow_bug_report.yml    |    2 +-
 .github/PULL_REQUEST_TEMPLATE.md                   |   57 +-
 .github/actions/breeze/action.yml                  |    4 +-
 .github/actions/install-prek/action.yml            |    4 +-
 .github/actions/post_tests_failure/action.yml      |    6 +-
 .github/actions/post_tests_success/action.yml      |    2 +-
 .github/workflows/basic-tests.yml                  |    4 +-
 .github/workflows/release_dockerhub_image.yml      |    2 +-
 .pre-commit-config.yaml                            |   28 +-
 COMMITTERS.rst                                     |    2 +
 Dockerfile                                         |    4 +-
 Dockerfile.ci                                      |   10 +-
 NOTICE                                             |    2 +-
 README.md                                          |   12 +-
 RELEASE_NOTES.rst                                  |   83 +
 airflow-core/NOTICE                                |    2 +-
 airflow-core/docs/best-practices.rst               |    2 +-
 airflow-core/docs/howto/custom-view-plugin.rst     |    2 +-
 airflow-core/docs/img/airflow_erd.sha256           |    2 +-
 airflow-core/docs/img/airflow_erd.svg              | 4446 ++++++++++----------
 .../docs/installation/supported-versions.rst       |    2 +-
 airflow-core/docs/migrations-ref.rst               |    4 +-
 airflow-core/docs/project.rst                      |    1 +
 airflow-core/newsfragments/54505.significant.rst   |    1 +
 airflow-core/newsfragments/59399.feature.rst       |    1 -
 airflow-core/newsfragments/59688.improvement.rst   |    1 -
 .../newsfragments/template.significant.rst         |   33 -
 airflow-core/pyproject.toml                        |    5 +
 airflow-core/src/airflow/_shared/listeners         |    1 +
 airflow-core/src/airflow/api_fastapi/app.py        |    2 +-
 .../api_fastapi/auth/managers/base_auth_manager.py |   39 +-
 .../auth/managers/simple/routes/login.py           |    2 +-
 .../auth/managers/simple/simple_auth_manager.py    |   11 +-
 .../auth/managers/simple/ui/package-lock.json      |   26 +-
 .../auth/managers/simple/ui/package.json           |    4 +-
 .../auth/managers/simple/ui/pnpm-lock.yaml         |   34 +-
 airflow-core/src/airflow/api_fastapi/compat.py     |   20 +-
 .../src/airflow/api_fastapi/core_api/app.py        |    9 +-
 .../api_fastapi/core_api/datamodels/ui/config.py   |    1 +
 .../api_fastapi/core_api/openapi/_private_ui.yaml  |   20 +
 .../core_api/openapi/v2-rest-api-generated.yaml    |    8 +
 .../api_fastapi/core_api/routes/public/dags.py     |    5 +
 .../api_fastapi/core_api/routes/ui/config.py       |    1 +
 .../airflow/api_fastapi/core_api/routes/ui/grid.py |   11 +-
 .../api_fastapi/core_api/routes/ui/structure.py    |    6 +-
 .../src/airflow/cli/commands/dag_command.py        |   24 +-
 .../src/airflow/dag_processing/collection.py       |    1 +
 airflow-core/src/airflow/dag_processing/dagbag.py  |   34 +
 .../src/airflow/dag_processing/processor.py        |   11 +-
 airflow-core/src/airflow/exceptions.py             |    8 +-
 airflow-core/src/airflow/listeners/__init__.py     |    4 +-
 airflow-core/src/airflow/listeners/listener.py     |   82 +-
 airflow-core/src/airflow/listeners/spec/asset.py   |    1 +
 .../src/airflow/listeners/spec/importerrors.py     |    1 +
 ..._3_2_0_add_timetable_type_to_dag_table_for_.py} |   27 +-
 airflow-core/src/airflow/models/asset.py           |   17 +-
 airflow-core/src/airflow/models/dag.py             |    2 +
 airflow-core/src/airflow/providers_manager.py      |   13 +-
 airflow-core/src/airflow/secrets/__init__.py       |   11 +-
 airflow-core/src/airflow/secrets/base_secrets.py   |    6 +
 .../src/airflow/serialization/definitions/dag.py   |    5 +-
 airflow-core/src/airflow/timetables/base.py        |   28 +
 .../src/airflow/ui/openapi-gen/queries/common.ts   |   15 +-
 .../ui/openapi-gen/queries/ensureQueryData.ts      |   18 +-
 .../src/airflow/ui/openapi-gen/queries/prefetch.ts |   18 +-
 .../src/airflow/ui/openapi-gen/queries/queries.ts  |   18 +-
 .../src/airflow/ui/openapi-gen/queries/suspense.ts |   18 +-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts |    6 +-
 .../ui/openapi-gen/requests/services.gen.ts        |    8 +-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |    4 +
 airflow-core/src/airflow/ui/package.json           |    6 +-
 airflow-core/src/airflow/ui/pnpm-lock.yaml         |  417 +-
 .../ui/public/i18n/locales/en/components.json      |    7 +
 .../ui/public/i18n/locales/ko/components.json      |    7 +
 airflow-core/src/airflow/ui/rules/react.js         |   12 +-
 .../components/ActionAccordion/ActionAccordion.tsx |    3 +-
 .../src/airflow/ui/src/components/BasicTooltip.tsx |   10 +-
 .../ClearTaskInstanceConfirmationDialog.tsx        |   14 +-
 .../src/components/DagActions/DeleteDagButton.tsx  |   10 +-
 .../airflow/ui/src/components/DagVersionSelect.tsx |   28 +-
 .../ui/src/components/DataTable/CardList.tsx       |    8 +-
 .../ui/src/components/DataTable/DataTable.tsx      |   27 +-
 .../src/components/DataTable/FilterMenuButton.tsx  |    2 +
 .../ui/src/components/DataTable/TableList.tsx      |    1 +
 .../components/DataTable/ToggleTableDisplay.tsx    |   56 +-
 .../ui/src/components/DataTable/useRowSelection.ts |   40 +-
 .../src/components/DataTable/useTableUrlState.ts   |   28 +-
 .../airflow/ui/src/components/DurationChart.tsx    |    4 +-
 .../ui/src/components/FilterBar/FilterBar.tsx      |   23 +-
 .../FilterBar/filters/DateRangeCalendar.tsx        |   78 +-
 .../FilterBar/filters/DateRangeFilter.test.tsx     |   14 +-
 .../components/FlexibleForm/FieldAdvancedArray.tsx |   12 +-
 .../src/components/FlexibleForm/FlexibleForm.tsx   |   57 +-
 .../airflow/ui/src/components/Graph/TaskNode.tsx   |   12 +-
 .../ui/src/components/SearchDags/SearchDags.tsx    |    2 +-
 .../src/airflow/ui/src/components/TeamSelector.tsx |   76 +
 .../src/airflow/ui/src/components/TogglePause.tsx  |   12 +-
 .../airflow/ui/src/components/TrendCountChart.tsx  |    7 +-
 .../src/components/ui/ButtonGroupToggle.test.tsx   |   88 +
 .../ui/src/components/ui/ButtonGroupToggle.tsx     |   59 +
 .../ui/src/components/ui/Pagination/PageText.tsx   |   18 +-
 .../src/airflow/ui/src/components/ui/index.ts      |    1 +
 .../ui/src/context/ChakraCustomProvider.tsx        |   15 +-
 .../src/airflow/ui/src/context/hover/Context.ts    |    2 +
 .../airflow/ui/src/context/hover/HoverProvider.tsx |   11 +-
 .../src/context/openGroups/OpenGroupsProvider.tsx  |   47 +-
 .../ui/src/context/timezone/TimezoneProvider.tsx   |    7 +-
 .../src/airflow/ui/src/hooks/navigation/index.ts   |    2 +
 .../src/airflow/ui/src/hooks/navigation/types.ts   |    8 +-
 .../src/hooks/navigation/useKeyboardNavigation.ts  |   18 +-
 .../ui/src/hooks/navigation/useNavigation.ts       |  170 +-
 .../src/airflow/ui/src/hooks/useCalendarSelect.ts  |   28 +-
 .../src/airflow/ui/src/hooks/useDateRangeFilter.ts |   26 +-
 .../airflow/ui/src/hooks/useRequiredActionTabs.ts  |   42 +-
 .../src/airflow/ui/src/layouts/BaseLayout.tsx      |   10 +-
 .../ui/src/layouts/Details/DagRunSelect.tsx        |   27 +-
 .../ui/src/layouts/Details/DetailsLayout.tsx       |    4 +-
 .../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx |  187 +-
 .../airflow/ui/src/layouts/Details/Gantt/utils.ts  |   23 +-
 .../airflow/ui/src/layouts/Details/Grid/Bar.tsx    |   30 +-
 .../airflow/ui/src/layouts/Details/Grid/Grid.tsx   |  129 +-
 .../airflow/ui/src/layouts/Details/Grid/GridTI.tsx |   67 +-
 .../layouts/Details/Grid/TaskInstancesColumn.tsx   |  112 +-
 .../ui/src/layouts/Details/Grid/TaskNames.tsx      |  242 +-
 .../src/layouts/Details/Grid/constants.ts}         |   31 +-
 .../ui/src/layouts/Details/PanelButtons.tsx        |    6 +-
 .../ui/src/layouts/Nav/LanguageSelector.tsx        |   15 +-
 .../src/airflow/ui/src/layouts/Nav/NavButton.tsx   |   85 +-
 .../ui/src/layouts/Nav/TimezoneSelector.tsx        |   25 +-
 .../src/airflow/ui/src/mocks/handlers/config.ts    |    1 +
 .../src/airflow/ui/src/pages/Asset/AssetLayout.tsx |   26 +-
 .../airflow/ui/src/pages/AssetsList/AssetsList.tsx |    3 +-
 .../src/airflow/ui/src/pages/Configs/Configs.tsx   |    3 +-
 .../src/pages/Connections/AddConnectionButton.tsx  |    1 +
 .../ui/src/pages/Connections/ConnectionForm.tsx    |   57 +-
 .../ui/src/pages/Connections/Connections.tsx       |   21 +-
 .../src/pages/Connections/EditConnectionButton.tsx |    1 +
 .../ui/src/pages/Dag/Backfills/Backfills.tsx       |    3 +-
 .../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx |   41 +-
 .../ui/src/pages/Dag/Code/VersionCompareSelect.tsx |   24 +-
 airflow-core/src/airflow/ui/src/pages/DagRuns.tsx  |    3 +-
 .../src/airflow/ui/src/pages/DagRunsFilters.tsx    |   35 +-
 .../src/pages/DagsList/DagsFilters/DagsFilters.tsx |  253 +-
 .../pages/DagsList/DagsFilters/FavoriteFilter.tsx  |   67 +-
 .../pages/DagsList/DagsFilters/PausedFilter.tsx    |   43 +-
 .../DagsList/DagsFilters/RequiredActionFilter.tsx} |   30 +-
 .../pages/DagsList/DagsFilters/StateFilters.tsx    |  122 +-
 .../src/pages/DagsList/DagsFilters/TagFilter.tsx   |    7 +-
 .../ui/src/pages/DagsList/DagsList.test.tsx        |    8 +-
 .../src/airflow/ui/src/pages/DagsList/DagsList.tsx |   25 +-
 .../src/airflow/ui/src/pages/DeleteRunButton.tsx   |    2 +-
 airflow-core/src/airflow/ui/src/pages/Error.tsx    |   17 +-
 .../src/airflow/ui/src/pages/Events/Events.tsx     |    6 +-
 .../airflow/ui/src/pages/Events/EventsFilters.tsx  |   50 +-
 .../ui/src/pages/HITLTaskInstances/HITLFilters.tsx |   35 +-
 .../pages/HITLTaskInstances/HITLResponseForm.tsx   |    4 +-
 .../pages/HITLTaskInstances/HITLTaskInstances.tsx  |   21 +-
 airflow-core/src/airflow/ui/src/pages/Plugins.tsx  |   30 +-
 .../src/airflow/ui/src/pages/Providers.tsx         |    3 +-
 .../src/airflow/ui/src/pages/ReactPlugin.tsx       |   62 +-
 .../src/airflow/ui/src/pages/Run/Header.tsx        |    6 +-
 airflow-core/src/airflow/ui/src/pages/Security.tsx |    2 +-
 .../ui/src/pages/TaskInstance/AssetEvents.tsx      |   48 +-
 .../airflow/ui/src/pages/TaskInstance/Header.tsx   |    6 +-
 .../src/pages/TaskInstance/Logs/TaskLogContent.tsx |   11 +-
 .../src/pages/TaskInstance/Logs/TaskLogHeader.tsx  |   55 +-
 .../ui/src/pages/TaskInstance/TaskInstance.tsx     |   11 +-
 .../ui/src/pages/TaskInstances/TaskInstances.tsx   |   17 +-
 .../pages/TaskInstances/TaskInstancesFilter.tsx    |   71 +-
 .../ui/src/pages/Variables/ImportVariablesForm.tsx |    7 +-
 .../airflow/ui/src/pages/Variables/Variables.tsx   |   20 +-
 .../src/airflow/ui/src/pages/XCom/XCom.tsx         |   17 +-
 .../src/airflow/ui/src/pages/XCom/XComFilters.tsx  |   39 +-
 .../src/airflow/ui/src/queries/useAddConnection.ts |    2 +
 .../src/airflow/ui/src/queries/useLogs.tsx         |   37 +-
 .../airflow/ui/src/queries/useToggleFavoriteDag.ts |   16 +-
 .../src/airflow/ui/src/queries/useTrigger.ts       |    2 +-
 .../airflow/ui/src/queries/useUpdateHITLDetail.ts  |   14 +-
 .../src/airflow/ui/src/utils/useFiltersHandler.ts  |  123 +-
 .../ui/src/utils/usePersistentResizableState.ts    |   17 +-
 .../src/airflow/ui/tests/e2e/pages/DagRunsPage.ts  |  188 +
 .../src/airflow/ui/tests/e2e/pages/DagsPage.ts     |    9 +
 .../airflow/ui/tests/e2e/specs/dag-runs.spec.ts    |  146 +
 airflow-core/src/airflow/ui/vite.config.ts         |    8 +-
 airflow-core/src/airflow/utils/cli.py              |   12 +-
 airflow-core/src/airflow/utils/db.py               |    2 +-
 airflow-core/src/airflow/utils/singleton.py        |   33 -
 .../tests/unit/always/test_providers_manager.py    |   15 +
 .../core_api/routes/public/test_dag_run.py         |   11 +-
 .../core_api/routes/public/test_dags.py            |   15 +
 .../core_api/routes/public/test_task_instances.py  |   13 +-
 .../api_fastapi/core_api/routes/ui/test_config.py  |    1 +
 .../api_fastapi/core_api/routes/ui/test_grid.py    |  195 +-
 .../core_api/routes/ui/test_structure.py           |  110 +
 airflow-core/tests/unit/assets/test_manager.py     |    9 +-
 .../unit/cli/commands/test_connection_command.py   |   13 +-
 .../tests/unit/cli/commands/test_dag_command.py    |   25 +-
 .../tests/unit/cli/commands/test_pool_command.py   |   15 +-
 .../cli/commands/test_rotate_fernet_key_command.py |    5 +-
 .../tests/unit/cli/commands/test_team_command.py   |   29 +-
 .../tests/unit/dag_processing/test_collection.py   |    6 +-
 .../tests/unit/dag_processing/test_dagbag.py       |  110 +-
 .../tests/unit/dag_processing/test_processor.py    |    8 +-
 airflow-core/tests/unit/jobs/test_base_job.py      |    5 +-
 airflow-core/tests/unit/jobs/test_scheduler_job.py |   11 +-
 .../tests/unit/listeners/test_asset_listener.py    |   14 +-
 .../tests/unit/listeners/test_listeners.py         |   60 +-
 airflow-core/tests/unit/models/test_dag.py         |    4 +-
 airflow-core/tests/unit/utils/test_singleton.py    |   65 -
 airflow-ctl/NOTICE                                 |    2 +-
 airflow-ctl/RELEASE_NOTES.rst                      |   31 +
 airflow-ctl/src/airflowctl/__init__.py             |    2 +-
 chart/NOTICE                                       |    2 +-
 chart/files/pod-template-file.kubernetes-helm-yaml |    6 +-
 chart/newsfragments/58547.significant.rst          |   24 +
 chart/newsfragments/60238.significant.rst          |    3 +
 chart/newsfragments/60354.significant.rst          |    3 +
 chart/templates/NOTES.txt                          |   80 +
 chart/templates/_helpers.yaml                      |   84 +-
 .../api-server/api-server-deployment.yaml          |   10 +-
 chart/templates/cleanup/cleanup-cronjob.yaml       |    4 +-
 .../dag-processor/dag-processor-deployment.yaml    |   12 +-
 .../database-cleanup/database-cleanup-cronjob.yaml |    4 +-
 chart/templates/flower/flower-deployment.yaml      |    8 +-
 chart/templates/jobs/create-user-job.yaml          |    4 +-
 chart/templates/jobs/migrate-database-job.yaml     |    4 +-
 .../templates/pgbouncer/pgbouncer-deployment.yaml  |    4 +-
 .../templates/scheduler/scheduler-deployment.yaml  |   28 +-
 chart/templates/statsd/statsd-deployment.yaml      |    4 +-
 .../templates/triggerer/triggerer-deployment.yaml  |   12 +-
 .../templates/webserver/webserver-deployment.yaml  |   10 +-
 chart/templates/workers/worker-deployment.yaml     |   85 +-
 chart/templates/workers/worker-hpa.yaml            |   20 +-
 chart/templates/workers/worker-kedaautoscaler.yaml |   20 +-
 chart/templates/workers/worker-networkpolicy.yaml  |   17 +-
 chart/templates/workers/worker-service.yaml        |   17 +-
 chart/values.schema.json                           |  220 +-
 chart/values.yaml                                  |  113 +-
 contributing-docs/05_pull_requests.rst             |   72 +-
 contributing-docs/testing/unit_tests.rst           |    2 +-
 dev/README_RELEASE_AIRFLOWCTL.md                   |    8 +
 dev/README_RELEASE_PROVIDERS.md                    |    8 +
 dev/breeze/doc/ci/02_images.md                     |    4 +-
 dev/breeze/doc/images/output_k8s.svg               |    2 +-
 dev/breeze/doc/images/output_k8s.txt               |    2 +-
 dev/breeze/doc/images/output_k8s_dev.svg           |    4 +-
 dev/breeze/doc/images/output_k8s_dev.txt           |    2 +-
 dev/breeze/pyproject.toml                          |    2 +-
 .../airflow_breeze/commands/kubernetes_commands.py |   39 +-
 .../src/airflow_breeze/commands/release_command.py |   34 +-
 .../commands/release_management_commands.py        |    4 +-
 .../commands/release_management_validation.py      |    2 +-
 dev/breeze/src/airflow_breeze/global_constants.py  |    5 +-
 dev/breeze/uv.lock                                 |  154 +-
 .../react_plugin_template/README.md                |    2 +
 .../react_plugin_template/src/global.d.ts          |    6 +-
 .../react_plugin_template/src/main.tsx             |    8 +-
 .../react_plugin_template/src/theme.ts             |  409 +-
 dev/verify_release_calendar.py                     |   56 +-
 devel-common/pyproject.toml                        |    2 +-
 devel-common/src/tests_common/pytest_plugin.py     |   40 +
 docs/spelling_wordlist.txt                         |    1 +
 generated/PYPI_README.md                           |   10 +-
 go-sdk/NOTICE                                      |    2 +-
 .../tests/chart_utils/helm_template_generator.py   |    5 +-
 .../chart_utils/ingress-networking-v1beta1.json    |   46 -
 .../helm_tests/airflow_aux/test_cleanup_pods.py    |    7 -
 .../airflow_aux/test_database_cleanup.py           |    7 -
 .../airflow_aux/test_pod_template_file.py          |  152 +-
 .../helm_tests/airflow_core/test_api_server.py     |   19 +
 .../helm_tests/airflow_core/test_dag_processor.py  |   19 +
 .../helm_tests/airflow_core/test_pdb_scheduler.py  |   11 +-
 .../helm_tests/airflow_core/test_pdb_triggerer.py  |    4 +-
 .../helm_tests/airflow_core/test_pdb_worker.py     |    4 +-
 .../helm_tests/airflow_core/test_scheduler.py      |  222 +-
 .../helm_tests/airflow_core/test_triggerer.py      |   19 +
 .../tests/helm_tests/airflow_core/test_worker.py   |  495 ++-
 .../helm_tests/apiserver/test_ingress_apiserver.py |   11 +-
 helm-tests/tests/helm_tests/other/test_flower.py   |   20 +-
 .../helm_tests/other/test_git_sync_webserver.py    |    1 -
 helm-tests/tests/helm_tests/other/test_hpa.py      |   33 +-
 helm-tests/tests/helm_tests/other/test_keda.py     |  101 +-
 .../tests/helm_tests/other/test_pdb_pgbouncer.py   |   11 +-
 .../tests/helm_tests/other/test_pgbouncer.py       |   19 +
 helm-tests/tests/helm_tests/other/test_statsd.py   |   19 +
 .../tests/helm_tests/security/test_kerberos.py     |    4 +-
 .../helm_tests/security/test_security_context.py   |  594 ++-
 .../helm_tests/webserver/test_ingress_flower.py    |   11 +-
 .../tests/helm_tests/webserver/test_ingress_web.py |   11 +-
 .../helm_tests/webserver/test_pdb_webserver.py     |   11 +-
 .../tests/helm_tests/webserver/test_webserver.py   |   20 +-
 providers-summary-docs/index.rst                   |   10 +-
 providers/airbyte/NOTICE                           |    2 +-
 providers/alibaba/NOTICE                           |    2 +-
 providers/amazon/NOTICE                            |    2 +-
 .../amazon/aws/auth_manager/aws_auth_manager.py    |    3 +-
 .../amazon/aws/auth_manager/cli/avp_commands.py    |    3 +-
 .../amazon/aws/auth_manager/routes/login.py        |    5 +-
 .../providers/amazon/aws/auth_manager/user.py      |    2 +-
 .../amazon/aws/executors/batch/batch_executor.py   |   10 -
 .../amazon/aws/executors/ecs/ecs_executor.py       |   10 -
 .../providers/amazon/aws/hooks/athena_sql.py       |    2 +-
 .../providers/amazon/aws/hooks/redshift_sql.py     |    3 +-
 .../src/airflow/providers/amazon/aws/hooks/s3.py   |    2 +-
 .../src/airflow/providers/amazon/aws/queues/sqs.py |    2 +-
 .../amazon/aws/transfers/azure_blob_to_s3.py       |    2 +-
 .../providers/amazon/aws/transfers/sql_to_s3.py    |    2 +-
 .../tests/system/amazon/aws/example_bedrock.py     |    4 +-
 .../amazon/aws/tests/test_aws_auth_manager.py      |    1 +
 .../unit/amazon/aws/hooks/test_hooks_signature.py  |    2 +-
 .../amazon/tests/unit/amazon/aws/hooks/test_s3.py  |   17 +
 providers/apache/beam/NOTICE                       |    2 +-
 .../airflow/providers/apache/beam/hooks/beam.py    |    2 +-
 .../providers/apache/beam/operators/beam.py        |    8 +-
 .../airflow/providers/apache/beam/triggers/beam.py |    2 +-
 providers/apache/cassandra/NOTICE                  |    2 +-
 providers/apache/drill/NOTICE                      |    2 +-
 providers/apache/druid/NOTICE                      |    2 +-
 providers/apache/flink/NOTICE                      |    2 +-
 providers/apache/hdfs/NOTICE                       |    2 +-
 providers/apache/hive/NOTICE                       |    2 +-
 .../airflow/providers/apache/hive/hooks/hive.py    |    4 +-
 providers/apache/iceberg/NOTICE                    |    2 +-
 providers/apache/impala/NOTICE                     |    2 +-
 providers/apache/impala/docs/index.rst             |   28 +-
 providers/apache/impala/pyproject.toml             |    2 +
 .../providers/apache/impala/hooks/impala.py        |    2 +-
 providers/apache/kafka/NOTICE                      |    2 +-
 providers/apache/kafka/pyproject.toml              |    2 +-
 .../airflow/providers/apache/kafka/hooks/base.py   |    2 +-
 providers/apache/kylin/NOTICE                      |    2 +-
 providers/apache/livy/NOTICE                       |    2 +-
 providers/apache/pig/NOTICE                        |    2 +-
 providers/apache/pinot/NOTICE                      |    2 +-
 providers/apache/spark/NOTICE                      |    2 +-
 providers/apache/spark/docs/decorators/pyspark.rst |    2 +-
 providers/apache/spark/docs/operators.rst          |   25 +
 providers/apache/spark/provider.yaml               |    1 +
 .../providers/apache/spark/decorators/pyspark.py   |   80 +-
 .../providers/apache/spark/get_provider_info.py    |    1 +
 .../pyspark.py => operators/spark_pyspark.py}      |   59 +-
 .../tests/system/apache/spark/example_spark_dag.py |   11 +
 .../unit/apache/spark/decorators/test_pyspark.py   |   11 +-
 .../apache/spark/operators/test_spark_pyspark.py}  |   27 +-
 providers/apache/tinkerpop/NOTICE                  |    2 +-
 providers/apprise/NOTICE                           |    2 +-
 providers/arangodb/NOTICE                          |    2 +-
 providers/asana/NOTICE                             |    2 +-
 providers/atlassian/jira/NOTICE                    |    2 +-
 providers/celery/NOTICE                            |    2 +-
 providers/celery/pyproject.toml                    |    2 +-
 .../airflow/providers/celery/cli/celery_command.py |    4 +-
 .../airflow/providers/celery/executors/__init__.py |    2 +-
 providers/cloudant/NOTICE                          |    2 +-
 providers/cncf/kubernetes/NOTICE                   |    2 +-
 providers/cncf/kubernetes/docs/changelog.rst       |    4 +
 providers/cncf/kubernetes/provider.yaml            |    9 -
 .../airflow/providers/cncf/kubernetes/callbacks.py |   16 +-
 .../executors/kubernetes_executor_utils.py         |    9 +-
 .../providers/cncf/kubernetes/get_provider_info.py |    6 -
 .../providers/cncf/kubernetes/hooks/kubernetes.py  |   58 +-
 .../providers/cncf/kubernetes/kube_config.py       |   26 +-
 .../cncf/kubernetes/kubernetes_helper_functions.py |    2 +
 .../providers/cncf/kubernetes/operators/job.py     |   38 +-
 .../providers/cncf/kubernetes/operators/pod.py     |   13 +-
 .../providers/cncf/kubernetes/utils/pod_manager.py |   62 +-
 .../executors/test_kubernetes_executor.py          |   12 +
 .../unit/cncf/kubernetes/hooks/test_kubernetes.py  |   80 +-
 .../unit/cncf/kubernetes/operators/test_job.py     |  181 +-
 .../unit/cncf/kubernetes/operators/test_pod.py     |   39 +
 .../unit/cncf/kubernetes/utils/test_pod_manager.py |  127 +-
 providers/cohere/NOTICE                            |    2 +-
 providers/common/compat/NOTICE                     |    2 +-
 .../src/airflow/providers/common/compat/check.py   |    2 +-
 .../providers/common/compat/openlineage/check.py   |    2 +-
 .../src/airflow/providers/common/compat/sdk.py     |    8 +
 .../unit/common/compat/openlineage/test_check.py   |    2 +-
 .../compat/tests/unit/common/compat/test_check.py  |    2 +-
 providers/common/io/NOTICE                         |    2 +-
 providers/common/io/docs/index.rst                 |   11 +-
 providers/common/io/pyproject.toml                 |    1 +
 .../airflow/providers/common/io/xcom/__init__.py   |    2 +-
 providers/common/messaging/NOTICE                  |    2 +-
 providers/common/sql/NOTICE                        |    2 +-
 .../src/airflow/providers/common/sql/hooks/sql.py  |    9 +-
 providers/databricks/NOTICE                        |    2 +-
 providers/databricks/pyproject.toml                |    2 +-
 .../providers/databricks/hooks/databricks_base.py  |    3 +-
 .../providers/databricks/hooks/databricks_sql.py   |    3 +-
 .../databricks/plugins/databricks_workflow.py      |    3 +-
 .../unit/databricks/hooks/test_databricks_sql.py   |    3 +-
 .../unit/databricks/utils/test_openlineage.py      |    2 +-
 providers/datadog/NOTICE                           |    2 +-
 providers/dbt/cloud/NOTICE                         |    2 +-
 .../tests/unit/dbt/cloud/utils/test_openlineage.py |    2 +-
 providers/dingding/NOTICE                          |    2 +-
 providers/discord/NOTICE                           |    2 +-
 providers/docker/NOTICE                            |    2 +-
 providers/edge3/NOTICE                             |    2 +-
 providers/edge3/docs/index.rst                     |    4 +-
 providers/edge3/pyproject.toml                     |    4 +-
 .../src/airflow/providers/edge3/cli/api_client.py  |   56 +-
 .../src/airflow/providers/edge3/cli/dataclasses.py |   13 +-
 .../airflow/providers/edge3/cli/edge_command.py    |   10 +-
 .../src/airflow/providers/edge3/cli/worker.py      |  424 +-
 .../providers/edge3/plugins/www/dist/main.umd.cjs  |   14 +-
 .../providers/edge3/plugins/www/package.json       |   26 +-
 .../providers/edge3/plugins/www/pnpm-lock.yaml     | 2228 +++++-----
 .../providers/edge3/worker_api/datamodels.py       |   11 +
 .../providers/edge3/worker_api/routes/jobs.py      |    2 +-
 .../edge3/tests/unit/edge3/cli/test_api_client.py  |  106 +-
 .../edge3/tests/unit/edge3/cli/test_worker.py      |  312 +-
 .../unit/edge3/worker_api/routes/test_logs.py      |    2 +-
 providers/edge3/www-hash.txt                       |    2 +-
 providers/elasticsearch/NOTICE                     |    2 +-
 providers/exasol/NOTICE                            |    2 +-
 providers/exasol/docs/index.rst                    |   32 +-
 providers/exasol/pyproject.toml                    |    2 +
 .../src/airflow/providers/exasol/hooks/exasol.py   |    3 +-
 providers/fab/3rd-party-licenses/LICENSES-ui.txt   |    2 +-
 providers/fab/NOTICE                               |    2 +-
 .../auth_manager/api_fastapi/datamodels/roles.py   |   14 +-
 .../openapi/v2-fab-auth-manager-generated.yaml     |   36 +-
 .../fab/auth_manager/api_fastapi/routes/login.py   |    6 +-
 .../fab/auth_manager/api_fastapi/services/login.py |    3 +-
 .../providers/fab/auth_manager/fab_auth_manager.py |    2 +-
 .../fab/auth_manager/security_manager/override.py  |    2 +
 .../api_fastapi/datamodels/test_roles.py           |   18 +-
 .../api_fastapi/services/test_login.py             |    2 +-
 providers/facebook/NOTICE                          |    2 +-
 providers/ftp/NOTICE                               |    2 +-
 providers/git/NOTICE                               |    2 +-
 providers/github/NOTICE                            |    2 +-
 providers/google/NOTICE                            |    2 +-
 .../providers/google/3rd-party-licenses/NOTICE     |    2 +-
 .../providers/google/cloud/hooks/bigquery.py       |    4 +-
 .../google/cloud/hooks/kubernetes_engine.py        |    4 +-
 .../providers/google/cloud/operators/dataflow.py   |    3 +
 .../providers/google/cloud/operators/dataproc.py   |   36 +-
 .../google/cloud/operators/kubernetes_engine.py    |    7 +-
 .../google/cloud/transfers/adls_to_gcs.py          |    2 +-
 .../google/cloud/transfers/azure_blob_to_gcs.py    |    2 +-
 .../cloud/transfers/azure_fileshare_to_gcs.py      |    2 +-
 .../providers/google/cloud/triggers/bigquery.py    |   15 +-
 .../providers/google/cloud/triggers/dataproc.py    |   28 +-
 .../providers/google/leveldb/hooks/leveldb.py      |    7 +-
 .../dataflow/example_dataflow_native_python.py     |    4 +-
 .../example_dataflow_native_python_async.py        |    1 +
 .../dataflow/example_dataflow_streaming_python.py  |    6 +-
 .../cloud/vertex_ai/example_vertex_ai_ray.py       |    2 +-
 .../tests/system/google/gcp_api_client_helpers.py  |   10 +-
 .../tests/system/google/leveldb/example_leveldb.py |    2 +-
 .../unit/google/cloud/operators/test_dataproc.py   |  192 +-
 .../cloud/operators/test_kubernetes_engine.py      |    2 +-
 .../unit/google/cloud/utils/gcp_authenticator.py   |    6 +-
 .../unit/google/leveldb/hooks/test_leveldb.py      |    2 +-
 .../unit/google/leveldb/operators/test_leveldb.py  |    2 +-
 .../operators/test_campaign_manager.py             |    5 +-
 providers/grpc/NOTICE                              |    2 +-
 providers/hashicorp/NOTICE                         |    2 +-
 providers/http/NOTICE                              |    2 +-
 providers/imap/NOTICE                              |    2 +-
 providers/influxdb/NOTICE                          |    2 +-
 providers/jdbc/NOTICE                              |    2 +-
 providers/jenkins/NOTICE                           |    2 +-
 providers/keycloak/NOTICE                          |    2 +-
 .../keycloak/auth_manager/cli/commands.py          |   42 +-
 .../keycloak/auth_manager/routes/login.py          |    2 +-
 .../keycloak/auth_manager/routes/token.py          |    2 +-
 .../keycloak/auth_manager/services/token.py        |    3 +-
 .../keycloak/auth_manager/cli/test_commands.py     |    5 +-
 providers/microsoft/azure/NOTICE                   |    2 +-
 providers/microsoft/mssql/NOTICE                   |    2 +-
 providers/microsoft/psrp/NOTICE                    |    2 +-
 providers/microsoft/winrm/NOTICE                   |    2 +-
 providers/mongo/NOTICE                             |    2 +-
 providers/mysql/NOTICE                             |    2 +-
 providers/mysql/pyproject.toml                     |    2 +-
 .../src/airflow/providers/mysql/hooks/mysql.py     |    2 +-
 providers/neo4j/NOTICE                             |    2 +-
 providers/odbc/NOTICE                              |    2 +-
 providers/openai/NOTICE                            |    2 +-
 providers/openfaas/NOTICE                          |    2 +-
 providers/openlineage/NOTICE                       |    2 +-
 .../providers/openlineage/plugins/adapter.py       |   39 +-
 .../providers/openlineage/plugins/listener.py      |  133 +-
 .../src/airflow/providers/openlineage/utils/sql.py |    2 +-
 .../airflow/providers/openlineage/utils/utils.py   |  376 +-
 .../tests/system/openlineage/conftest.py           |    9 +-
 .../tests/unit/openlineage/plugins/test_adapter.py |   22 +-
 .../unit/openlineage/plugins/test_execution.py     |   42 +-
 .../unit/openlineage/plugins/test_listener.py      |   88 +
 .../tests/unit/openlineage/utils/test_utils.py     |  724 +++-
 providers/opensearch/NOTICE                        |    2 +-
 providers/opsgenie/NOTICE                          |    2 +-
 providers/oracle/NOTICE                            |    2 +-
 providers/pagerduty/NOTICE                         |    2 +-
 providers/papermill/NOTICE                         |    2 +-
 providers/pgvector/NOTICE                          |    2 +-
 providers/pinecone/NOTICE                          |    2 +-
 providers/postgres/NOTICE                          |    2 +-
 providers/postgres/pyproject.toml                  |    3 +
 .../airflow/providers/postgres/hooks/postgres.py   |   21 +-
 .../tests/unit/postgres/hooks/test_postgres.py     |    3 +-
 providers/presto/NOTICE                            |    2 +-
 .../src/airflow/providers/presto/hooks/presto.py   |    8 +-
 providers/qdrant/NOTICE                            |    2 +-
 providers/redis/NOTICE                             |    2 +-
 providers/salesforce/NOTICE                        |    2 +-
 providers/samba/NOTICE                             |    2 +-
 providers/segment/NOTICE                           |    2 +-
 providers/sendgrid/NOTICE                          |    2 +-
 providers/sftp/NOTICE                              |    2 +-
 providers/sftp/docs/sensors/sftp_sensor.rst        |   24 +-
 .../src/airflow/providers/sftp/sensors/sftp.py     |    9 +
 providers/singularity/NOTICE                       |    2 +-
 providers/slack/NOTICE                             |    2 +-
 providers/smtp/NOTICE                              |    2 +-
 providers/snowflake/NOTICE                         |    2 +-
 .../airflow/providers/snowflake/hooks/snowflake.py |  201 +-
 .../providers/snowflake/hooks/snowflake_sql_api.py |    4 +-
 .../tests/unit/snowflake/hooks/test_snowflake.py   |  122 +-
 .../unit/snowflake/hooks/test_snowflake_sql_api.py |   21 +-
 .../tests/unit/snowflake/utils/test_openlineage.py |    2 +-
 providers/sqlite/NOTICE                            |    2 +-
 providers/ssh/NOTICE                               |    2 +-
 providers/ssh/docs/index.rst                       |    2 +
 providers/ssh/docs/operators/ssh_remote_job.rst    |  264 ++
 providers/ssh/provider.yaml                        |    8 +
 providers/ssh/pyproject.toml                       |    1 +
 .../src/airflow/providers/ssh/get_provider_info.py |   12 +-
 .../ssh/src/airflow/providers/ssh/hooks/ssh.py     |  142 +
 .../providers/ssh/operators/ssh_remote_job.py      |  455 ++
 .../airflow/providers/ssh/triggers}/__init__.py    |    0
 .../providers/ssh/triggers/ssh_remote_job.py       |  271 ++
 .../src/airflow/providers/ssh/utils}/__init__.py   |    0
 .../src/airflow/providers/ssh/utils/remote_job.py  |  448 ++
 .../ssh/tests/unit/ssh/hooks/test_ssh_async.py     |  172 +
 .../unit/ssh/operators/test_ssh_remote_job.py      |  331 ++
 .../ssh/tests/unit/ssh/triggers}/__init__.py       |    0
 .../tests/unit/ssh/triggers/test_ssh_remote_job.py |  197 +
 .../ssh/tests/unit/ssh/utils}/__init__.py          |    0
 .../ssh/tests/unit/ssh/utils/test_remote_job.py    |  254 ++
 providers/standard/NOTICE                          |    2 +-
 .../airflow/providers/standard/operators/hitl.py   |    2 +-
 .../providers/standard/sensors/date_time.py        |   17 +-
 .../providers/standard/sensors/filesystem.py       |   17 +-
 .../src/airflow/providers/standard/sensors/time.py |   17 +-
 .../airflow/providers/standard/triggers/hitl.py    |    2 +-
 .../providers/standard/utils/openlineage.py        |    2 +-
 .../tests/unit/standard/utils/test_openlineage.py  |    2 +-
 providers/tableau/NOTICE                           |    2 +-
 providers/telegram/NOTICE                          |    2 +-
 providers/teradata/NOTICE                          |    2 +-
 providers/teradata/pyproject.toml                  |    5 +-
 .../airflow/providers/teradata/hooks/teradata.py   |   17 +-
 .../teradata/transfers/azure_blob_to_teradata.py   |    2 +-
 .../providers/teradata/transfers/s3_to_teradata.py |    2 +-
 providers/trino/NOTICE                             |    2 +-
 .../src/airflow/providers/trino/hooks/trino.py     |    8 +-
 providers/vertica/NOTICE                           |    2 +-
 providers/vertica/docs/index.rst                   |   28 +-
 providers/vertica/pyproject.toml                   |   10 +
 .../src/airflow/providers/vertica/hooks/vertica.py |   14 +-
 providers/weaviate/NOTICE                          |    2 +-
 providers/yandex/NOTICE                            |    2 +-
 providers/ydb/NOTICE                               |    2 +-
 providers/zendesk/NOTICE                           |    2 +-
 pyproject.toml                                     |    5 +-
 reproducible_build.yaml                            |    4 +-
 scripts/ci/docker-compose/backend-mysql.yml        |    4 +-
 scripts/ci/prek/check_imports_in_providers.py      |    2 +-
 scripts/ci/prek/check_secrets_search_path_sync.py  |   89 +
 scripts/ci/prek/inline_scripts_in_docker.py        |    2 +-
 scripts/ci/prek/ruff_format.py                     |    2 +-
 scripts/ci/prek/supported_versions.py              |    2 +-
 scripts/docker/entrypoint_ci.sh                    |    6 +-
 .../in_container/install_airflow_and_providers.py  |   22 +
 scripts/tools/setup_breeze                         |    2 +-
 .../{secrets_backend => listeners}/pyproject.toml  |    9 +-
 .../src/airflow_shared}/listeners/__init__.py      |    0
 .../src/airflow_shared}/listeners/listener.py      |   44 +-
 .../src/airflow_shared/listeners/spec}/__init__.py |    0
 .../airflow_shared}/listeners/spec/lifecycle.py    |    0
 .../airflow_shared}/listeners/spec/taskinstance.py |   10 +-
 .../{configuration => listeners}/tests/conftest.py |    0
 .../listeners/tests/listeners}/__init__.py         |    0
 .../tests/listeners/test_listener_manager.py       |  164 +
 .../plugins_manager/plugins_manager.py             |    4 +-
 task-sdk/NOTICE                                    |    2 +-
 task-sdk/pyproject.toml                            |    7 +-
 task-sdk/src/airflow/sdk/_shared/listeners         |    1 +
 task-sdk/src/airflow/sdk/configuration.py          |   15 +-
 task-sdk/src/airflow/sdk/definitions/context.py    |   26 +-
 task-sdk/src/airflow/sdk/definitions/dag.py        |    8 +-
 task-sdk/src/airflow/sdk/exceptions.py             |    4 +
 .../airflow/sdk/execution_time/secrets/__init__.py |    7 +
 .../src/airflow/sdk/execution_time/task_runner.py  |   15 +-
 .../src/airflow/sdk/listener.py                    |   39 +-
 task-sdk/tests/conftest.py                         |    8 +-
 task-sdk/tests/task_sdk/docs/test_public_api.py    |    1 +
 .../tests/task_sdk/execution_time/test_context.py  |    6 +-
 .../task_sdk/execution_time/test_task_runner.py    |   51 +-
 605 files changed, 16037 insertions(+), 8181 deletions(-)
 delete mode 100644 airflow-core/newsfragments/59399.feature.rst
 delete mode 100644 airflow-core/newsfragments/59688.improvement.rst
 delete mode 100644 airflow-core/newsfragments/template.significant.rst
 create mode 120000 airflow-core/src/airflow/_shared/listeners
 copy 
airflow-core/src/airflow/migrations/versions/{0012_2_9_0_adding_adding_max_failure_runs_column_.py
 => 0098_3_2_0_add_timetable_type_to_dag_table_for_.py} (60%)
 create mode 100644 airflow-core/src/airflow/ui/src/components/TeamSelector.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/components/ui/ButtonGroupToggle.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/components/ui/ButtonGroupToggle.tsx
 copy 
airflow-core/src/airflow/{api_fastapi/auth/managers/simple/ui/src/router.tsx => 
ui/src/layouts/Details/Grid/constants.ts} (54%)
 copy airflow-core/src/airflow/ui/src/{components/ui/ResetButton.tsx => 
pages/DagsList/DagsFilters/RequiredActionFilter.tsx} (60%)
 create mode 100644 airflow-core/src/airflow/ui/tests/e2e/pages/DagRunsPage.ts
 create mode 100644 airflow-core/src/airflow/ui/tests/e2e/specs/dag-runs.spec.ts
 delete mode 100644 airflow-core/src/airflow/utils/singleton.py
 delete mode 100644 airflow-core/tests/unit/utils/test_singleton.py
 create mode 100644 chart/newsfragments/58547.significant.rst
 create mode 100644 chart/newsfragments/60238.significant.rst
 create mode 100644 chart/newsfragments/60354.significant.rst
 copy airflow-core/src/airflow/ui/src/components/Banner/index.tsx => 
dev/react-plugin-tools/react_plugin_template/src/global.d.ts (89%)
 delete mode 100644 helm-tests/tests/chart_utils/ingress-networking-v1beta1.json
 copy 
providers/apache/spark/src/airflow/providers/apache/spark/{decorators/pyspark.py
 => operators/spark_pyspark.py} (65%)
 copy providers/{redis/tests/unit/redis/sensors/test_redis_key.py => 
apache/spark/tests/unit/apache/spark/operators/test_spark_pyspark.py} (62%)
 create mode 100644 providers/ssh/docs/operators/ssh_remote_job.rst
 create mode 100644 
providers/ssh/src/airflow/providers/ssh/operators/ssh_remote_job.py
 copy {airflow-core/src/airflow/api/common => 
providers/ssh/src/airflow/providers/ssh/triggers}/__init__.py (100%)
 create mode 100644 
providers/ssh/src/airflow/providers/ssh/triggers/ssh_remote_job.py
 copy {airflow-core/src/airflow/api/common => 
providers/ssh/src/airflow/providers/ssh/utils}/__init__.py (100%)
 create mode 100644 providers/ssh/src/airflow/providers/ssh/utils/remote_job.py
 create mode 100644 providers/ssh/tests/unit/ssh/hooks/test_ssh_async.py
 create mode 100644 
providers/ssh/tests/unit/ssh/operators/test_ssh_remote_job.py
 copy {airflow-core/src/airflow/api/common => 
providers/ssh/tests/unit/ssh/triggers}/__init__.py (100%)
 create mode 100644 providers/ssh/tests/unit/ssh/triggers/test_ssh_remote_job.py
 copy {airflow-core/src/airflow/api/common => 
providers/ssh/tests/unit/ssh/utils}/__init__.py (100%)
 create mode 100644 providers/ssh/tests/unit/ssh/utils/test_remote_job.py
 create mode 100755 scripts/ci/prek/check_secrets_search_path_sync.py
 copy shared/{secrets_backend => listeners}/pyproject.toml (88%)
 copy {airflow-core/src/airflow => 
shared/listeners/src/airflow_shared}/listeners/__init__.py (100%)
 copy {airflow-core/src/airflow => 
shared/listeners/src/airflow_shared}/listeners/listener.py (70%)
 copy {airflow-core/src/airflow/_shared => 
shared/listeners/src/airflow_shared/listeners/spec}/__init__.py (100%)
 rename {airflow-core/src/airflow => 
shared/listeners/src/airflow_shared}/listeners/spec/lifecycle.py (100%)
 rename {airflow-core/src/airflow => 
shared/listeners/src/airflow_shared}/listeners/spec/taskinstance.py (90%)
 copy shared/{configuration => listeners}/tests/conftest.py (100%)
 copy {providers/fab/src/airflow/providers/fab/cli => 
shared/listeners/tests/listeners}/__init__.py (100%)
 create mode 100644 shared/listeners/tests/listeners/test_listener_manager.py
 create mode 120000 task-sdk/src/airflow/sdk/_shared/listeners
 copy shared/logging/src/airflow_shared/logging/_noncaching.py => 
task-sdk/src/airflow/sdk/listener.py (54%)

Reply via email to