This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch lazy-serialized-dag-timetable
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 679ffbe7ee1 fixup! Avoid loading timetables for dags in Execution API
endpoints
add 6d7e0010cd6 Close German Translation Gaps 2026-10-26 (#75676)
add bfb620d271b Cancel the runs of merged pull requests when they merge
(#75683)
add e4efc876f48 Switch the default async MySQL driver to asyncmy (#75218)
add 9f1348c2013 Keep the spot interruption notice green on transient
GitHub errors (#75681)
add 36038d73b5a Pin the real selective-checks auto-approve test to main
(#75682)
add 33486021776 Check out constraints from apache/airflow when diffing
them in CI (#75675)
add ffd9398e4b4 Always approve workflow runs of PRs from trusted
stakeholder repositories (#75677)
add d22f4e4b470 Retry GitHub server errors in the fork CI monitor (#75692)
add 62e50c50030 List Meta among common.ai's external services and
recognise new pydantic-ai 2.59 providers (#75641)
add dac0a7adc44 Keep common.ai on anthropic 1.x until pydantic-ai supports
anthropic 2 (#75640)
add b19bc48f96f Let the EKS executor run per team and next to
KubernetesExecutor (#75449)
add 3f0cea0e8ba Add task instance state store commands to airflowctl
(#72746)
add 562977d11bf Make the Kubernetes, E2E and Helm release jobs pass on
fork CI (#75699)
add 2ae00f1606a Retry GitHub calls that fail to connect in the fork CI
monitor (#75701)
add ad6ec79c73e Deprecate airflow.utils.email in favor of the SMTP
provider (#75414)
add df03024a9a3 Fix BigQuery durable recovery for regional jobs (#75430)
add b70a439a238 Allow FastAPI 0.137+ by requiring cadwyn 8.1 (#75689)
add 04afd601aee Restart crashed Breeze components under mprocs (#75585)
add ec8737c5417 Handle empty or corrupted JSON in airflowctl credentials
loading (#75279)
add e3f5e6ff3af Skip scheduling tasks when their Dag cannot be
deserialized (#75263)
add 3a37fb1c33e Fix BigQuery cancellation and links with inferred job
locations (#75717)
add bec92bcad02 Let listeners see the end date of a skipped task instance
(#75685)
add 34a955c17dd Remove unused type: ignore comments in airflow-ctl (#75203)
add 750f849cc23 Run a language SDK runtime in its own process group
(#75707)
add 5243901c818 Add dag_id and task_id tags to resumable_job metrics
(#75721)
add c79293ea4b9 Wait for a maintainer when a fork PR changes any
CI-defining file (#75718)
add d340be05a4e Add metrics for task and asset state store access (#75729)
add 91fbcbff93b Fix airflowctl config lint filters matching partial config
names (#75690)
add 8eb5357fb13 Keep cancelled CI runs from showing a failed CI passed
check (#75720)
add 968cca0c7e4 Add a dag_run index on (dag_id, run_after) (#74481)
add fa9c935035d airflowctl: fix datetime.datetime CLI parameters rejecting
all input (#70249)
add 21a8a98ba96 Report language SDK runtime launch failures in the task
log (#75561)
add aee26d49b6b Fix airflowctl ignoring --env for non-auth commands
(#73808)
add ead86184fb5 Emit resumable_job metrics from KubernetesPodOperator
(#75734)
add 6cac8fcddc1 Handle None response from airflowctl connections
create-defaults (#68853)
add a22fcb9a67b Stop importing airflow.utils.email in the Amazon SES hook
(#75711)
add 8b5306690ac Fix 'lineage' export in airflow.sdk (#75744)
add c4ab82253de Report AwsEksExecutor as the caller in its AWS user agent
(#75698)
add 4ace0a1deb7 Run automatic backport PRs on RunsOn runners (#75749)
add 7c7157b124e Stop breeze k8s commands from silently rewriting uv.lock
(#75763)
add cb582009a0b Raise the stale bot operation budget so it reaches older
PRs (#75761)
add 7de5ac36770 UI: Remove unused filter count helper (#75760)
add 455f5125c9a UI: Remove unused clipboard wrappers (#75759)
add 36767cb0073 UI: Remove unused quick filter button (#75758)
add aaba5c37195 UI: Don't fire keyboard shortcuts while typing in a Monaco
editor (#75684)
add d92a4805a92 UI: Fix labels that render as raw translation keys (#75326)
add 91ca0ac42c8 UI: Fix slow pending Dag run checks on large databases
(#75674)
add 8f7a8e4ff58 Hide empty log groups in the task log view (#75686)
add df37268410b Fix UI crash by validating unresolvable Windows PT
timezone (#75723)
add ae50f958ea2 Surface errors from OpenLineage database info lookups
without losing lineage (#74805)
add d583ffe5984 Hide the scheduled run icon in the grid legend (#75775)
add de5798196d2 Make Breeze Kubernetes image tests independent of the
branch (#75724)
add a5ff71dffd3 Keep breeze verify working when dry-run is on (#75713)
add be28f7fe9c2 Tell agents to stop when breeze cannot run, not use a host
venv (#75599)
add efd28053bed Stop Google Cloud Logging handler from starting a thread
on close (#75596)
add 70a78162261 Page SqlToS3Operator like GenericTransfer (#75730)
add 55b3c58dea7 Return None from relative_path_from_logger for logs
outside base_log_folder (#75572)
add 4d9fb9e841f Remove unused airflowctl lowercase argument helper (#75768)
add da767b24133 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#75807)
add a462d683469 UI: Scope partitioned Dag run asset list to readable
assets (#75213)
add 891e83dce5d Tell contributors when their fork CI workflow stops
running (#75814)
add a9a04a52f5e Clarify which Snowflake connectors need the
session_parameters copy (#75457)
add 8058c889b27 Harden the fork CI reconciler and protect the fork CI gate
(#74909)
add 8442ef02563 Remove unused Dataflow job state checker (#75784)
add ba6750c2fd0 Remove unused Cloud SQL OS bitness helper (#75788)
add eb2e644bec3 Remove unused Dataproc job template helper (#75790)
add 850466814ba Remove unused SDK variable result converter (#75766)
add a6eb4900ed9 Close German Translation Gaps 2026-10-27 (#75813)
add 12489292d1c Remove unused SQLAlchemy dialect keyword wrapper (#75782)
add 0135f75e6c1 Remove unused datetime to nanoseconds converter (#75781)
add 674f39115da Remove unused log filename template renderer (#75780)
add 5f8b01416ea Remove unused CLI Dag file location loader (#75779)
add 2dffae53785 Remove unused active asset query helpers (#75778)
add 9a0ee6f0c66 Remove unused task deferral logging bridge (#75777)
add db06a68a791 Remove unused Dag processor path converter (#75776)
add 347343ca259 Remove unused ExecuteTaskActivity model (#75767)
add e539a1b051c Remove unused shared provider discovery definitions
(#75783)
add 62df1cc8bb3 Remove unused Teradata operation classifier (#75785)
add d2c865ff014 Remove unused Postgres cursor name generator (#75786)
add b785c05164e Remove unused Spark pod try number helper (#75787)
add e401fafafb2 Remove unused Cloud SQL settings version helper (#75789)
add fccfbf8ad2b Skip airflowctl state store tests on servers older than
3.3 (#75753)
add d17f1213630 Widen the Spot pool for RunsOn runners: more families,
capacity-optimized, size ranges (#75822)
add 312cf280191 Complete Arabic translations for the UI 2026-10-27 (#75575)
add b5ce03962cc Convert finished TIs into a lightweight read-only view
during scheduling decisions (#71737)
add 881f3622304 Run the flynt prek hook in parallel batches (#75274)
add 4c1c1af00dd Rewrite the Common AI sandbox configuration page around
what users set up (#75826)
add e31f52e0a05 Stop running OpenLineage e2e compat tests when full tests
are derived (#75262)
add 50065c3ac94 Fix flaky OpenShell background-child wrapper test (#75823)
add 09d0ea1c97a Ignore the runner's OTEL_* variables in the observability
shared tests (#75828)
add ee62251fc26 Show why external contributors' workflow runs wait for
approval (#75832)
add b4320026a31 Stop importing airflow.utils.email in the SendGrid emailer
(#75771)
add c24242eea52 Load the serialized Dag in ti_run only for stub tasks
(#75795)
add 819902bb943 Accept datetime in InletEventsAccessor.after() and
before() (#75773)
add 5df209d1835 Isolate otel config-priority test from ambient OTEL env
vars (#75842)
add c8daa636b23 Merge branch 'main' into lazy-serialized-dag-timetable
No new revisions were added by this update.
Summary of changes:
.../setup-isolated-setup-install.md | 5 +
.github/fork-ci-gate.toml | 10 +-
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 30 +-
.github/workflows/auto-approve-workflow-runs.yml | 11 +-
.github/workflows/basic-tests.yml | 29 +-
.github/workflows/cancel-merged-pr-runs.yml | 119 +++
.github/workflows/ci-amd.yml | 114 ++-
.github/workflows/ci-arm.yml | 109 ++-
.github/workflows/ci-image-build.yml | 2 +-
.github/workflows/ci-image-checks.yml | 19 +-
.github/workflows/finalize-tests.yml | 10 +-
.github/workflows/fork-ci-monitor.yml | 7 +-
.github/workflows/generate-constraints.yml | 2 +-
.github/workflows/helm-tests.yml | 8 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/k8s-tests.yml | 4 +-
.github/workflows/kustomize-overlays-tests.yml | 2 +-
.github/workflows/mark-workflow-runs-approved.yml | 85 +++
.github/workflows/prod-image-build.yml | 4 +-
.github/workflows/push-image-cache.yml | 4 +-
.github/workflows/special-tests.yml | 22 +-
.github/workflows/stale.yml | 1 +
.github/workflows/test-providers.yml | 4 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.pre-commit-config.yaml | 4 +
AGENTS.md | 4 +-
.../docs/authoring-and-scheduling/assets.rst | 7 +-
airflow-core/docs/howto/email-config.rst | 80 +-
airflow-core/docs/howto/set-up-database.rst | 28 +-
airflow-core/docs/migrations-ref.rst | 6 +-
airflow-core/newsfragments/75218.significant.rst | 13 +
airflow-core/newsfragments/75414.significant.rst | 20 +
airflow-core/pyproject.toml | 11 +-
airflow-core/src/airflow/api_fastapi/app.py | 2 +
.../src/airflow/api_fastapi/common/http_metrics.py | 25 +-
.../src/airflow/api_fastapi/common/telemetry.py | 21 +-
.../api_fastapi/core_api/datamodels/common.py | 16 +
.../core_api/datamodels/ui/partitioned_dag_runs.py | 12 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 16 +-
.../api_fastapi/core_api/routes/public/dags.py | 25 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 8 +-
.../core_api/routes/ui/partitioned_dag_runs.py | 28 +-
.../src/airflow/api_fastapi/execution_api/app.py | 41 +-
.../execution_api/datamodels/taskinstance.py | 8 +-
.../execution_api/routes/task_instances.py | 9 +-
.../airflow/api_fastapi/execution_api/security.py | 10 +-
airflow-core/src/airflow/dag_processing/manager.py | 6 -
.../src/airflow/jobs/scheduler_job_runner.py | 20 +-
... => 0149_3_4_0_add_is_stub_to_task_instance.py} | 28 +-
..._job.py => 0150_3_5_0_add_session_id_to_job.py} | 4 +-
...51_3_5_0_add_dag_run_dag_id_run_after_index.py} | 28 +-
airflow-core/src/airflow/models/asset.py | 22 -
airflow-core/src/airflow/models/dagrun.py | 234 +++++-
.../src/airflow/models/task_coordinates.py | 59 +-
airflow-core/src/airflow/models/taskinstance.py | 7 +
airflow-core/src/airflow/settings.py | 7 +-
airflow-core/src/airflow/ti_deps/dep_context.py | 12 +-
.../ti_deps/deps/not_previously_skipped_dep.py | 3 +-
.../src/airflow/ti_deps/deps/trigger_rule_dep.py | 5 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 32 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 7 +-
.../airflow/ui/public/i18n/locales/ar/admin.json | 33 +-
.../airflow/ui/public/i18n/locales/ar/assets.json | 24 +-
.../airflow/ui/public/i18n/locales/ar/browse.json | 45 ++
.../airflow/ui/public/i18n/locales/ar/common.json | 126 ++-
.../ui/public/i18n/locales/ar/components.json | 50 +-
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 153 +++-
.../airflow/ui/public/i18n/locales/ar/dags.json | 44 +-
.../ui/public/i18n/locales/ar/dashboard.json | 21 +-
.../airflow/ui/public/i18n/locales/ar/hitl.json | 1 +
.../airflow/ui/public/i18n/locales/de/browse.json | 1 +
.../airflow/ui/public/i18n/locales/de/common.json | 1 +
.../ui/public/i18n/locales/de/components.json | 1 +
.../src/airflow/ui/public/i18n/locales/de/dag.json | 4 +
.../airflow/ui/public/i18n/locales/de/hitl.json | 1 +
.../airflow/ui/public/i18n/locales/en/browse.json | 1 +
.../airflow/ui/public/i18n/locales/en/common.json | 1 +
.../ui/public/i18n/locales/en/components.json | 1 +
.../ui/src/components/AssetProgressCell.test.tsx | 63 +-
.../ui/src/components/AssetProgressCell.tsx | 54 +-
.../src/airflow/ui/src/components/ConfigForm.tsx | 2 +-
.../ui/src/components/QuickFilterButton.tsx | 40 -
.../src/context/timezone/TimezoneProvider.test.tsx | 59 ++
.../ui/src/context/timezone/TimezoneProvider.tsx | 17 +-
.../src/airflow/ui/src/hooks/useShortcut.test.tsx | 64 +-
.../src/airflow/ui/src/hooks/useShortcut.ts | 16 +-
.../src/airflow/ui/src/i18n/locales.test.ts | 60 +-
.../ui/src/layouts/Details/Grid/RunTypeLegend.tsx | 7 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 3 +-
.../src/airflow/ui/src/pages/DagsList/Schedule.tsx | 14 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 2 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 2 +-
.../src/airflow/ui/src/queries/useLogs.test.ts | 38 +
.../src/airflow/ui/src/queries/useLogs.tsx | 11 +-
.../airflow/ui/src/system-components/Clipboard.tsx | 42 +-
.../src/airflow/ui/src/utils/filterUtils.test.ts | 106 ---
.../src/airflow/ui/src/utils/filterUtils.ts | 27 -
.../src/airflow/ui/src/utils/query.test.ts | 50 ++
airflow-core/src/airflow/ui/src/utils/query.ts | 7 +-
airflow-core/src/airflow/utils/cli.py | 17 -
airflow-core/src/airflow/utils/dates.py | 15 -
airflow-core/src/airflow/utils/db.py | 4 +-
airflow-core/src/airflow/utils/email.py | 350 +--------
airflow-core/src/airflow/utils/helpers.py | 23 -
.../src/airflow/utils/log/file_task_handler.py | 19 -
.../src/airflow/utils/serve_logs/log_server.py | 3 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 7 -
.../unit/api_fastapi/common/test_http_metrics.py | 13 +-
.../core_api/routes/public/test_assets.py | 5 +-
.../core_api/routes/public/test_dags.py | 41 +
.../api_fastapi/core_api/routes/test_routes.py | 8 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 36 +
.../routes/ui/test_partitioned_dag_runs.py | 122 ++-
.../unit/api_fastapi/execution_api/test_app.py | 29 +-
.../execution_api/test_token_scope_boundaries.py | 27 +-
.../versions/head/test_task_instances.py | 47 +-
.../unit/api_fastapi/logging/test_decorators.py | 18 +-
airflow-core/tests/unit/api_fastapi/test_app.py | 25 +
airflow-core/tests/unit/core/test_settings.py | 26 +-
.../lang_sdk_fixtures/go_native.json | 2 +
.../lang_sdk_fixtures/java_native.json | 3 +
.../tests/unit/dag_processing/test_dagbag.py | 9 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 133 +++-
airflow-core/tests/unit/models/test_dagrun.py | 179 ++++-
.../tests/unit/models/test_dynamic_region.py | 2 +-
.../tests/unit/models/test_mappedoperator.py | 9 +-
.../tests/unit/models/test_taskinstance.py | 63 +-
.../tests/unit/partition_mappers/test_init.py | 4 +-
airflow-core/tests/unit/utils/test_email.py | 447 ++---------
.../tests/airflowctl_tests/conftest.py | 8 +
.../airflowctl_tests/test_airflowctl_commands.py | 46 +-
airflow-ctl/docs/images/command_hashes.txt | 2 +-
airflow-ctl/docs/images/output_taskinstances.svg | 82 +-
airflow-ctl/src/airflowctl/api/client.py | 18 +-
airflow-ctl/src/airflowctl/api/operations.py | 113 ++-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 107 ++-
airflow-ctl/src/airflowctl/ctl/cli_parser.py | 2 +
.../src/airflowctl/ctl/commands/config_command.py | 16 +-
.../src/airflowctl/ctl/commands/version_command.py | 3 +-
airflow-ctl/src/airflowctl/ctl/help_texts.yaml | 9 +
airflow-ctl/tests/airflow_ctl/api/test_client.py | 55 ++
.../tests/airflow_ctl/api/test_operations.py | 143 ++++
.../ctl/commands/test_config_command.py | 96 +++
.../ctl/commands/test_version_command.py | 10 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 143 +++-
.../tests/airflow_e2e_tests/conftest.py | 16 +-
contributing-docs/05_pull_requests.rst | 20 +-
contributing-docs/18_contribution_workflow.rst | 15 +-
contributing-docs/25_maintainer_pr_triage.md | 8 +-
contributing-docs/mprocs/mprocs.yaml | 14 +-
contributing-docs/testing/unit_tests.rst | 7 +
dev/README_AIRFLOW3_DEV.md | 5 +-
dev/breeze/doc/08_ci_tasks.rst | 18 +-
dev/breeze/doc/ci/04_selective_checks.md | 38 +-
dev/breeze/doc/ci/05_workflows.md | 76 +-
.../doc/ci/08_fork_ci_for_external_contributors.md | 168 ++--
dev/breeze/doc/images/output_ci.svg | 4 +-
dev/breeze/doc/images/output_ci.txt | 2 +-
.../doc/images/output_ci_approve-workflow-runs.svg | 46 +-
.../doc/images/output_ci_approve-workflow-runs.txt | 2 +-
.../doc/images/output_k8s_build-k8s-image.svg | 48 +-
.../doc/images/output_k8s_build-k8s-image.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 46 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
.../doc/images/output_k8s_deploy-cluster.svg | 30 +-
.../doc/images/output_k8s_deploy-cluster.txt | 2 +-
dev/breeze/doc/images/output_k8s_dev.svg | 22 +-
dev/breeze/doc/images/output_k8s_dev.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 84 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
.../doc/images/output_k8s_setup-lang-sdk-test.svg | 22 +-
.../doc/images/output_k8s_setup-lang-sdk-test.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 46 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
.../src/airflow_breeze/commands/ci_commands.py | 8 +-
.../airflow_breeze/commands/kubernetes_commands.py | 76 +-
.../commands/kubernetes_commands_config.py | 11 +-
.../commands/kubernetes_kustomize_commands.py | 2 +-
.../src/airflow_breeze/commands/verify_commands.py | 10 +-
dev/breeze/src/airflow_breeze/global_constants.py | 13 +-
dev/breeze/src/airflow_breeze/utils/ci_audit.py | 12 -
.../src/airflow_breeze/utils/fork_ci_gate.py | 10 +-
.../src/airflow_breeze/utils/fork_ci_github.py | 73 +-
.../src/airflow_breeze/utils/fork_ci_messages.py | 53 +-
.../src/airflow_breeze/utils/fork_ci_reconcile.py | 417 ++++++++--
.../src/airflow_breeze/utils/kubernetes_utils.py | 3 +-
.../utils/merged_pull_request_runs.py | 211 -----
.../src/airflow_breeze/utils/selective_checks.py | 35 +-
.../airflow_breeze/utils/workflow_run_approval.py | 160 +++-
dev/breeze/tests/test_ci_audit.py | 4 +-
dev/breeze/tests/test_fork_ci_gate.py | 8 -
dev/breeze/tests/test_fork_ci_github.py | 81 +-
dev/breeze/tests/test_fork_ci_messages.py | 11 +
dev/breeze/tests/test_fork_ci_reconcile.py | 556 +++++++++++++-
dev/breeze/tests/test_kubernetes_commands.py | 144 ++++
.../tests/test_kubernetes_kustomize_commands.py | 20 +
.../tests/test_kubernetes_lang_sdk_commands.py | 18 +-
dev/breeze/tests/test_kubernetes_utils.py | 7 +
dev/breeze/tests/test_merged_pull_request_runs.py | 266 -------
dev/breeze/tests/test_selective_checks.py | 102 ++-
dev/breeze/tests/test_verify_commands.py | 15 +
dev/breeze/tests/test_workflow_run_approval.py | 279 ++++++-
dev/skill-evals/last-eval-hash.txt | 2 +-
.../src/tests_common/test_utils/api_fastapi.py | 23 +
generated/known_airflow_exceptions.txt | 6 +-
go-sdk/airflow/serialize.go | 9 +-
go-sdk/airflow/serialize_test.go | 3 +-
.../org/apache/airflow/sdk/execution/Serde.kt | 11 +-
.../org/apache/airflow/sdk/TriggerDagRunTest.kt | 5 +-
providers/amazon/docs/changelog.rst | 6 +
providers/amazon/docs/executors/eks-executor.rst | 52 +-
providers/amazon/docs/transfer/sql_to_s3.rst | 19 +
providers/amazon/pyproject.toml | 2 +-
.../amazon/aws/executors/eks/_client_factory.py | 38 +-
.../amazon/aws/executors/eks/eks_executor.py | 106 +--
.../providers/amazon/aws/executors/eks/utils.py | 5 +
.../src/airflow/providers/amazon/aws/hooks/ses.py | 80 +-
.../providers/amazon/aws/transfers/sql_to_s3.py | 130 +++-
.../src/airflow/providers/amazon/version_compat.py | 2 -
.../tests/system/amazon/aws/example_sql_to_s3.py | 13 +
.../aws/executors/eks/test__client_factory.py | 61 +-
.../amazon/aws/executors/eks/test_eks_executor.py | 330 ++++----
.../amazon/tests/unit/amazon/aws/hooks/test_ses.py | 66 +-
.../unit/amazon/aws/transfers/test_sql_to_s3.py | 188 +++++
.../providers/cncf/kubernetes/operators/pod.py | 16 +-
.../cncf/kubernetes/operators/spark_kubernetes.py | 6 -
.../unit/cncf/kubernetes/operators/test_pod.py | 134 ++++
providers/common/ai/docs/index.rst | 2 +-
providers/common/ai/docs/sandbox/backends.rst | 9 +-
providers/common/ai/docs/sandbox/configuration.rst | 789 ++++++++++---------
providers/common/ai/provider.yaml | 1 +
providers/common/ai/pyproject.toml | 8 +-
.../providers/common/ai/get_provider_info.py | 1 +
.../tests/unit/common/ai/sandbox/test_openshell.py | 9 +-
.../tests/unit/common/ai/test_provider_metadata.py | 29 +-
.../common/compat/openlineage/utils/sql.py | 29 +-
.../common/compat/openlineage/utils/test_sql.py | 60 ++
.../airflow/providers/common/sql/operators/sql.py | 55 +-
.../unit/common/sql/operators/test_sql_execute.py | 89 +++
.../edge3/tests/unit/edge3/worker_api/test_app.py | 5 +-
.../fab/src/airflow/providers/fab/www/package.json | 4 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 850 +++++++++++----------
.../providers/google/cloud/hooks/cloud_sql.py | 4 -
.../providers/google/cloud/hooks/dataflow.py | 49 --
.../google/cloud/log/cloud_logging_task_handler.py | 8 +-
.../providers/google/cloud/operators/bigquery.py | 41 +-
.../providers/google/cloud/operators/cloud_sql.py | 4 -
.../providers/google/cloud/operators/dataproc.py | 6 -
.../cloud/log/test_cloud_logging_task_handler.py | 14 +
.../unit/google/cloud/operators/test_bigquery.py | 311 +++++++-
providers/mysql/README.rst | 2 +
providers/mysql/docs/changelog.rst | 11 +
providers/mysql/docs/index.rst | 4 +-
providers/mysql/pyproject.toml | 8 +-
.../src/airflow/providers/openlineage/sqlparser.py | 45 +-
.../openlineage/utils/sql_hook_lineage.py | 21 +-
.../tests/unit/openlineage/test_sqlparser.py | 53 +-
.../openlineage/utils/test_sql_hook_lineage.py | 84 ++
.../airflow/providers/postgres/hooks/postgres.py | 6 -
.../airflow/providers/sendgrid/utils/emailer.py | 23 +-
.../tests/unit/sendgrid/utils/test_emailer.py | 35 +-
.../airflow/providers/snowflake/hooks/snowflake.py | 5 +-
.../teradata/operators/teradata_compute_cluster.py | 16 -
.../ci/prek/check_airflowctl_command_coverage.py | 24 +-
scripts/ci/prek/check_ci_gate_needs.py | 15 +
scripts/ci/prek/check_ci_workflows_in_sync.py | 21 +-
scripts/ci/spot_interruptions.py | 48 +-
scripts/in_container/bin/generate_mprocs_config.py | 18 +-
scripts/in_container/in_container_utils.py | 18 +-
scripts/tests/ci/prek/test_check_ci_gate_needs.py | 23 +
scripts/tests/ci/test_spot_interruptions.py | 47 +-
.../in_container/test_generate_mprocs_config.py | 30 +
.../observability/metrics/metrics_template.yaml | 84 +-
shared/observability/tests/conftest.py | 11 +
.../observability/metrics/test_otel_logger.py | 9 +
.../providers_discovery/providers_discovery.py | 72 +-
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 227 +++---
.../src/airflow/sdk/api/datamodels/activities.py | 31 -
.../src/airflow/sdk/bases/resumablejobmixin.py | 7 +-
.../src/airflow/sdk/coordinators/_subprocess.py | 332 +++++---
task-sdk/src/airflow/sdk/execution_time/context.py | 77 +-
.../src/airflow/sdk/execution_time/coordinator.py | 14 +-
.../src/airflow/sdk/execution_time/supervisor.py | 60 +-
.../src/airflow/sdk/execution_time/task_runner.py | 12 +-
task-sdk/src/airflow/sdk/log.py | 6 +-
.../tests/task_sdk/bases/test_resumablejobmixin.py | 47 +-
.../tests/task_sdk/coordinators/test_subprocess.py | 485 +++++++++++-
task-sdk/tests/task_sdk/docs/test_public_api.py | 26 +-
.../tests/task_sdk/execution_time/test_context.py | 165 +++-
.../task_sdk/execution_time/test_task_runner.py | 16 +-
task-sdk/tests/task_sdk/test_log.py | 20 +
ts-sdk/src/coordinator/serde.ts | 8 +-
uv.lock | 90 ++-
295 files changed, 10209 insertions(+), 4405 deletions(-)
create mode 100644 .github/workflows/cancel-merged-pr-runs.yml
create mode 100644 .github/workflows/mark-workflow-runs-approved.yml
create mode 100644 airflow-core/newsfragments/75218.significant.rst
create mode 100644 airflow-core/newsfragments/75414.significant.rst
copy
providers/common/compat/tests/unit/common/compat/openlineage/utils/test_utils.py
=> airflow-core/src/airflow/api_fastapi/common/telemetry.py (58%)
copy
airflow-core/src/airflow/migrations/versions/{0009_2_9_0_add_rendered_map_index_to_taskinstance.py
=> 0149_3_4_0_add_is_stub_to_task_instance.py} (59%)
rename
airflow-core/src/airflow/migrations/versions/{0149_3_5_0_add_session_id_to_job.py
=> 0150_3_5_0_add_session_id_to_job.py} (97%)
copy
airflow-core/src/airflow/migrations/versions/{0037_3_0_0_add_backfill_to_dag_run_model.py
=> 0151_3_5_0_add_dag_run_dag_id_run_after_index.py} (62%)
delete mode 100644
airflow-core/src/airflow/ui/src/components/QuickFilterButton.tsx
create mode 100644
airflow-core/src/airflow/ui/src/context/timezone/TimezoneProvider.test.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/utils/filterUtils.test.ts
delete mode 100644 airflow-core/src/airflow/ui/src/utils/filterUtils.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/query.test.ts
delete mode 100644
dev/breeze/src/airflow_breeze/utils/merged_pull_request_runs.py
create mode 100644 dev/breeze/tests/test_kubernetes_commands.py
delete mode 100644 dev/breeze/tests/test_merged_pull_request_runs.py
delete mode 100644 task-sdk/src/airflow/sdk/api/datamodels/activities.py