This is an automated email from the ASF dual-hosted git repository.
ashb pushed a change to branch task-loops-stack-1
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 09d10413297 fixup! Add user-facing docs for the new Task Loops feature.
omit 29a26cca544 fixup! Add user-facing docs for the new Task Loops feature.
omit 1f373977ebb fixup! Add user-facing docs for the new Task Loops feature.
omit 02ee51876d5 fixup! Add user-facing docs for the new Task Loops feature.
omit c9475be20fe Apply suggestions from code review
omit 06e3670b0b1 Add user-facing docs for the new Task Loops feature.
add 5aa12d3765f Parse native Java Dags and show their source (#74036)
add 74698a57c68 Parse native TypeScript Dags with the Node coordinator
(#74037)
add 64ac6e12011 Go SDK: serialize a native Dag to Dag JSON (#74319)
add 8bb642be2d5 Add task state store support to the Go SDK task client
(#73420)
add 620838dd876 add missing logical date column. (#74340)
add c5ad609d35d Upgrade UI npm dependencies and resolve pnpm audit
advisories (#74303)
add cd947e3680a Remove provider tests that restate `template_fields` and
other class constants (#74359)
add de420be1d68 Fix mapped-task retry policy example in tasks docs (#74343)
add 0ca87cb8312 Fix short-circuit in a mapped task group not skipping
later tasks (#74283)
add 092444019b5 Remove Google hook tests duplicated across default-project
test classes (#74362)
add 75d9ebf60cb Add task state store API to the Java SDK (#73464)
add 95b5d83eaaa Document that DuckDB extension installs need a HOME
directory (#74301)
add 520d5dd3997 UI: Apply default visibility to newly added table columns
(#74320)
add 421a6da25bc UI: Add a Dag Run ID column to the Task Instances list
(#74316)
add dc2ee911151 UI: Add duration filter to DAG Backfills tab (#74202)
add 4699c48b6d8 Show recent task states on the Dags list page (#69619)
add a25667d2fbd Remember the Dag runs limit across tab switches and visits
(#74289)
add f92281e1d03 Drop Python 3.10 from CI, Breeze and the container images
(#74151)
add e853537c04b Bump inline script metadata to Python 3.11 (#74152)
add 199b0a85527 Remove Python 3.10 compatibility shims (#74153)
add 30826e6de20 Apply ruff Python 3.11 fixes to core, Task SDK, shared and
airflowctl (#74154)
add 0b7c7f2e198 Apply ruff Python 3.11 fixes to providers (#74155)
add dafc96e67c7 Apply ruff Python 3.11 fixes to dev tooling, scripts and
test suites (#74156)
add 3e0ed979c1c Require Python 3.11 in all distributions (#74157)
add f3a4f59520c Update provider READMEs for the Python 3.11 baseline
(#74158)
add 9cc55f2ad3e Update docs for the Python 3.11 baseline (#74159)
add b1e4ad03219 UI: Fix XCom list crash when a value request fails (#74131)
add 3e302fd257a Add UBM to the list of companies (#74375)
add 62917eab648 TS SDK: Add conditional branching with dag.if (#74069)
add 874bc6c215b TS SDK: Add multi-way branching with dag.switch (#74070)
add cdcbf12a3f1 Support PAT and key-pair auth in the Snowflake Cortex
Agent hook (#73932)
add 72d612c357d Add restricted-agent examples to common.ai toolset guides
(#74379)
add 07bed4fde80 Link registry modules to the guide section that documents
them (#71477)
add 202fe706955 TS SDK: Add triggerDagRun to native Dags (#74071)
add 2288ea4537a Fix XCom query in not_previously_skipped_dep to use
xcom_entity (#74377)
add 508267cda9b Fix Snowflake UTC usage in TestSnowflakeRestTokenProvider
(#74393)
add 2a62e03fc03 Add missing Taiwanese Mandarin UI translations (#74223)
add a2cf3289367 Go SDK: answer the Dag-parsing request from Serve (#74391)
add 7f653e67153 Fix UI lint erros failing static checks (#74402)
add 4cab3cf055c [AIP-94] Mark dags clear as migrated to airflowctl (#74384)
add 634d6bd7242 Enforce execution_timeout from the task supervisor side
(#73806)
add 9af3db03639 Keep get_dag_details and get_pools database queries off
the API server event loop (#74247)
add 104a8691b93 Add a test that a mapped task group skip decision stays
within its Dag run (#74390)
add ef495f35a30 Add `max_retries` to `AgentSkillsToolset` (#74381)
add 9f241d42332 Add toolset overview and MCP tool filtering example to
`common.ai` docs (#74378)
add 4ef67b4e0c6 Tell the model a pinned hook argument is fixed for every
allowed method (#74380)
add 73a4ffa3a53 Avoid a full asset table scan per request in simple auth
manager (#72934)
add f0959660532 Add user-facing docs for the new Task Loops feature.
add a3ba2e1be0a Apply suggestions from code review
add 4cdcff3603e fixup! Add user-facing docs for the new Task Loops feature.
add 491acc2a79d fixup! Add user-facing docs for the new Task Loops feature.
add 2ab28a68c66 fixup! Add user-facing docs for the new Task Loops feature.
add 5ca5192cce1 fixup! Add user-facing docs for the new Task Loops feature.
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 (09d10413297)
\
N -- N -- N refs/heads/task-loops-stack-1 (5ca5192cce1)
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:
.../pr-management-triage-comment-templates.md | 4 +-
.apache-magpie-overrides/release-verify-rc.md | 2 +-
.apache-magpie-overrides/runtime-invocation.md | 2 +-
.github/actions/breeze/action.yml | 2 +-
.github/actions/prepare_all_ci_images/action.yml | 4 +-
.github/workflows/additional-ci-image-checks.yml | 8 +-
.github/workflows/airflow-e2e-tests.yml | 2 +-
.github/workflows/basic-tests.yml | 6 +
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 2 +-
.github/workflows/ui-e2e-tests.yml | 4 +-
.pre-commit-config.yaml | 24 +-
.readthedocs.yml | 2 +-
Dockerfile | 79 +-
Dockerfile.ci | 81 +-
INSTALL | 6 +-
INTHEWILD.md | 1 +
README.md | 2 +-
.../adr/lang-sdk/0008-control-flow-constructs.md | 10 +-
.../authoring-and-scheduling/language-sdks/go.rst | 99 +-
.../language-sdks/java.rst | 162 +-
.../language-sdks/typescript.rst | 200 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/debug.rst | 2 +-
airflow-core/docs/core-concepts/tasks.rst | 32 +-
airflow-core/docs/extra-packages-ref.rst | 2 +-
airflow-core/docs/howto/set-up-database.rst | 4 +-
...iagram_auth_manager_airflow_architecture.md5sum | 2 +-
.../diagram_auth_manager_airflow_architecture.py | 2 +-
.../img/diagram_basic_airflow_architecture.md5sum | 2 +-
.../docs/img/diagram_basic_airflow_architecture.py | 2 +-
...agram_dag_processor_airflow_architecture.md5sum | 2 +-
.../diagram_dag_processor_airflow_architecture.py | 2 +-
...diagram_distributed_airflow_architecture.md5sum | 2 +-
.../diagram_distributed_airflow_architecture.py | 2 +-
.../diagram_multi_team_airflow_architecture.md5sum | 2 +-
.../diagram_multi_team_airflow_architecture.png | Bin 574248 -> 555098
bytes
.../img/diagram_multi_team_airflow_architecture.py | 2 +-
.../img/diagram_task_execution_architecture.md5sum | 2 +-
.../img/diagram_task_execution_architecture.py | 2 +-
.../docs/img/diagram_task_lifecycle.md5sum | 2 +-
airflow-core/docs/img/diagram_task_lifecycle.py | 2 +-
.../docs/installation/installing-from-pypi.rst | 24 +-
airflow-core/docs/installation/prerequisites.rst | 2 +-
.../vulnerabilities-in-3rd-party-dependencies.rst | 2 +-
airflow-core/docs/start.rst | 6 +-
airflow-core/newsfragments/73806.improvement.rst | 1 +
airflow-core/newsfragments/74151.significant.rst | 17 +
airflow-core/pyproject.toml | 4 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 3 +-
.../auth/managers/simple/simple_auth_manager.py | 30 +
.../api_fastapi/core_api/datamodels/dags.py | 14 +-
.../api_fastapi/core_api/datamodels/pools.py | 6 +-
.../api_fastapi/core_api/datamodels/ui/dags.py | 20 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 127 ++
.../core_api/openapi/v2-rest-api-generated.yaml | 12 +-
.../api_fastapi/core_api/routes/public/assets.py | 3 +-
.../core_api/routes/public/dag_stats.py | 3 +-
.../api_fastapi/core_api/routes/public/dags.py | 8 +-
.../api_fastapi/core_api/routes/public/pools.py | 2 +-
.../core_api/routes/public/task_state_store.py | 4 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 3 +
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 108 +-
.../src/airflow/cli/commands/dag_command.py | 1 +
.../src/airflow/config_templates/config.yml | 4 +-
airflow-core/src/airflow/configuration.py | 4 +-
.../src/airflow/dag_processing/collection.py | 8 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 10 +-
.../airflow/dag_processing/lang_sdk_processor.py | 22 +-
.../src/airflow/dag_processing/processor.py | 2 +-
.../example_dags/example_asset_state_store.py | 4 +-
.../example_dags/example_inlet_event_extra.py | 4 +-
.../example_dags/example_outlet_event_extra.py | 6 +-
.../example_dags/example_task_state_store.py | 4 +-
.../example_task_state_store_mapped.py | 4 +-
.../versions/0000_2_6_2_squashed_migrations.py | 6 +-
...0_replace_deadline_inline_callback_with_fkey.py | 6 +-
.../0128_3_4_0_add_asset_event_id_to_adrq.py | 6 +-
airflow-core/src/airflow/models/backfill.py | 43 +-
airflow-core/src/airflow/models/revoked_token.py | 4 +-
.../airflow/serialization/definitions/assets.py | 3 +-
airflow-core/src/airflow/serialization/enums.py | 9 +-
.../src/airflow/serialization/stub_arg_bindings.py | 3 -
airflow-core/src/airflow/ti_deps/dep_context.py | 10 +
.../ti_deps/deps/not_previously_skipped_dep.py | 157 +-
airflow-core/src/airflow/timetables/base.py | 4 +-
airflow-core/src/airflow/typing_compat.py | 10 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 14 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 31 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 31 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 31 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 31 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 71 +-
.../ui/openapi-gen/requests/services.gen.ts | 39 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 52 +-
airflow-core/src/airflow/ui/package.json | 13 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 281 +--
.../airflow/ui/public/i18n/locales/en/common.json | 7 +
.../airflow/ui/public/i18n/locales/en/dags.json | 6 +
.../ui/public/i18n/locales/zh-TW/admin.json | 1 +
.../ui/public/i18n/locales/zh-TW/assets.json | 1 +
.../ui/public/i18n/locales/zh-TW/browse.json | 30 +
.../ui/public/i18n/locales/zh-TW/common.json | 38 +-
.../ui/public/i18n/locales/zh-TW/components.json | 17 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 68 +
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 13 +-
.../ui/public/i18n/locales/zh-TW/dashboard.json | 17 +-
.../ui/src/components/DagImportErrorModal.test.tsx | 50 +
.../ui/src/components/DagImportErrorModal.tsx | 25 +-
.../DataTable/DataTable.columnVisibility.test.tsx | 56 +
.../ui/src/components/DataTable/DataTable.tsx | 5 +-
.../airflow/ui/src/components/ErrorModal.test.tsx | 55 +
.../ui/src/components/{Stat.tsx => ErrorModal.tsx} | 41 +-
.../src/airflow/ui/src/constants/localStorage.ts | 1 +
.../src/airflow/ui/src/hooks/useAdvancedSearch.ts | 35 +-
.../airflow/ui/src/hooks/useDagRunsLimit.test.tsx | 76 +
.../TeamName.tsx => hooks/useDagRunsLimit.ts} | 36 +-
.../airflow/ui/src/hooks/useUrlOrStoredState.ts | 62 +
.../src/airflow/ui/src/hooks/useUserSettings.ts | 5 +
.../ui/src/layouts/Details/DetailsLayout.tsx | 20 +-
.../ui/src/layouts/Details/PanelButtons.test.tsx | 70 +
.../ui/src/layouts/Details/PanelButtons.tsx | 52 +-
.../Details/runLimitConfig.test.ts} | 18 +-
.../ui/src/layouts/Details/runLimitConfig.ts | 43 +
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 6 +
.../src/pages/Dag/Backfills/BackfillsFilters.tsx | 2 +
.../airflow/ui/src/pages/DagRuns/DagRuns.test.tsx | 31 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 6 +
.../airflow/ui/src/pages/DagsList/DagCard.test.tsx | 26 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 24 +-
.../ui/src/pages/DagsList/DagsList.test.tsx | 38 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 221 +-
.../ui/src/pages/DagsList/DagsListColumns.tsx | 226 +++
.../pages/DagsList/RecentTaskStateCounts.test.tsx | 110 +
.../src/pages/DagsList/RecentTaskStateCounts.tsx | 128 ++
.../pages/DagsList/RecentTaskStateCountsColumn.tsx | 48 +
...st.tsx => RecentTaskStateCountsHeader.test.tsx} | 22 +-
.../DagsList/RecentTaskStateCountsHeader.tsx} | 25 +-
.../ui/src/pages/Settings/Settings.test.tsx | 18 +
.../src/airflow/ui/src/pages/Settings/Settings.tsx | 16 +
.../src/pages/TaskInstances/TaskInstances.test.tsx | 23 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 11 +
.../airflow/ui/src/pages/XCom/XComEntry.test.tsx | 216 ++
.../src/airflow/ui/src/pages/XCom/XComEntry.tsx | 50 +-
.../src/queries/useRecentTaskStateCounts.test.tsx | 64 +
.../ui/src/queries/useRecentTaskStateCounts.tsx | 62 +
.../src/airflow/utils/log/file_task_handler.py | 3 +-
airflow-core/src/airflow/utils/log/log_reader.py | 4 +-
.../tests/unit/api/common/test_trigger_dag.py | 4 +-
.../managers/simple/test_simple_auth_manager.py | 74 +
.../tests/unit/api_fastapi/common/db/test_dags.py | 10 +-
.../tests/unit/api_fastapi/common/test_cursors.py | 6 +-
.../unit/api_fastapi/common/test_parameters.py | 8 +-
airflow-core/tests/unit/api_fastapi/conftest.py | 30 +-
.../core_api/datamodels/test_dag_run.py | 6 +-
.../api_fastapi/core_api/datamodels/test_dags.py | 4 +-
.../core_api/routes/public/test_assets.py | 8 +-
.../core_api/routes/public/test_dag_bundles.py | 8 +-
.../core_api/routes/public/test_dag_tags.py | 16 +-
.../core_api/routes/public/test_dags.py | 45 +-
.../core_api/routes/public/test_event_logs.py | 4 +-
.../core_api/routes/public/test_import_error.py | 8 +-
.../api_fastapi/core_api/routes/public/test_job.py | 6 +-
.../core_api/routes/public/test_pools.py | 8 +
.../api_fastapi/core_api/routes/ui/test_assets.py | 12 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 196 +-
.../execution_api/versions/head/test_dags.py | 4 +-
.../unit/cli/commands/test_command_deprecations.py | 1 +
.../tests/unit/dag_processing/fake_lang_sdk.py | 2 +-
.../lang_sdk_fixtures/go_native.json | 1680 ++++++++++++++++
.../tests/unit/dag_processing/test_collection.py | 2 +-
.../tests/unit/dag_processing/test_dagbag.py | 28 +-
.../unit/dag_processing/test_lang_sdk_processor.py | 21 +-
.../tests/unit/dag_processing/test_manager.py | 2 +-
.../tests/unit/dag_processing/test_processor.py | 5 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 12 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 1 +
airflow-core/tests/unit/models/test_dag_version.py | 4 +-
.../tests/unit/models/test_mappedoperator.py | 45 +
.../tests/unit/models/test_revoked_token.py | 4 +-
airflow-core/tests/unit/models/test_trigger.py | 2 +-
.../tests/unit/partition_mappers/test_base.py | 4 +-
.../tests/unit/partition_mappers/test_chain.py | 4 +-
.../tests/unit/partition_mappers/test_identity.py | 4 +-
.../tests/unit/partition_mappers/test_product.py | 6 +-
.../tests/unit/partition_mappers/test_temporal.py | 12 +-
.../unit/serialization/test_dag_serialization.py | 4 +-
.../unit/serialization/test_dag_version_diff.py | 18 +-
.../tests/unit/serialization/test_encoders.py | 2 +-
.../deps/test_not_previously_skipped_dep.py | 358 +++-
airflow-core/tests/unit/utils/test_db_cleanup.py | 5 +-
airflow-ctl-tests/pyproject.toml | 3 +-
.../tests/airflowctl_tests/constants.py | 2 +-
airflow-ctl/README.md | 2 +-
airflow-ctl/docs/installation/prerequisites.rst | 4 +-
airflow-ctl/pyproject.toml | 6 +-
.../src/airflowctl/api/datamodels/generated.py | 4 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 2 +-
.../tests/airflow_ctl/api/test_operations.py | 10 +-
.../airflow_ctl/ctl/commands/test_dag_command.py | 2 +-
.../airflow_ctl/ctl/commands/test_task_command.py | 10 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 15 +-
airflow-e2e-tests/pyproject.toml | 3 +-
.../basic_tests/test_basic_dag_operations.py | 4 +-
.../tests/airflow_e2e_tests/conftest.py | 7 +
.../tests/airflow_e2e_tests/constants.py | 5 +-
.../e2e_test_utils/base_remote_log_search_test.py | 6 +-
.../airflow_e2e_tests/e2e_test_utils/clients.py | 11 +-
.../go_sdk_tests/test_go_sdk_concurrent_xcom.py | 4 +-
.../go_sdk_tests/test_go_sdk_dag.py | 4 +-
.../go_sdk_tests/test_go_sdk_task_state.py | 114 ++
.../go_sdk_tests/test_go_sdk_taskflow_binding.py | 4 +-
.../go_sdk_tests/test_go_sdk_variable_write.py | 4 +-
.../java_sdk_tests/test_java_sdk_dag.py | 4 +-
.../airflow_e2e_tests/openlineage_tests/harness.py | 4 +-
.../remote_log_tests/test_remote_logging.py | 4 +-
.../ts_sdk_tests/test_ts_sdk_dag.py | 4 +-
.../test_xcom_object_storage_backend.py | 4 +-
chart/pyproject.toml | 4 +-
clients/python/pyproject.toml | 6 +-
clients/python/test_python_client.py | 2 +-
constraints/README.md | 6 +-
contributing-docs/03_contributors_quick_start.rst | 40 +-
contributing-docs/05_pull_requests.rst | 2 +-
contributing-docs/07_local_virtualenv.rst | 8 +-
contributing-docs/08_static_code_checks.rst | 2 +-
.../13_airflow_dependencies_and_extras.rst | 8 +-
...agram_coordinator_execution_architecture.md5sum | 2 +-
.../diagram_coordinator_execution_architecture.py | 2 +-
.../diagram_coordinator_execution_sequence.md5sum | 2 +-
.../diagram_coordinator_execution_sequence.png | Bin 219883 -> 200865
bytes
.../diagram_coordinator_execution_sequence.py | 2 +-
.../diagram_task_sdk_execution_architecture.md5sum | 2 +-
.../diagram_task_sdk_execution_architecture.py | 2 +-
.../diagram_task_sdk_execution_sequence.md5sum | 2 +-
.../images/diagram_task_sdk_execution_sequence.py | 2 +-
contributing-docs/testing/docker_compose_tests.rst | 8 +-
contributing-docs/testing/k8s_tests.rst | 86 +-
.../testing/task_sdk_integration_tests.rst | 4 +-
contributing-docs/testing/unit_tests.rst | 14 +-
dev/README_RELEASE_AIRFLOW.md | 8 +-
dev/README_RELEASE_PROVIDERS.md | 2 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 8 +-
dev/airflow-github | 2 +-
dev/breeze/doc/01_installation.rst | 8 +-
dev/breeze/doc/03_developer_tasks.rst | 16 +-
dev/breeze/doc/04_troubleshooting.rst | 8 +-
dev/breeze/doc/05_test_commands.rst | 12 +-
dev/breeze/doc/06_managing_docker_images.rst | 8 +-
dev/breeze/doc/09_release_management_tasks.rst | 2 +-
dev/breeze/doc/14_advanced_breeze_topics.rst | 2 +-
dev/breeze/doc/ci/02_images.md | 58 +-
dev/breeze/doc/ci/03_github_variables.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 12 +-
dev/breeze/doc/ci/07_running_ci_locally.md | 4 +-
dev/breeze/doc/images/output-commands.svg | 192 +-
dev/breeze/doc/images/output_ci-image_build.svg | 4 +-
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
dev/breeze/doc/images/output_ci-image_load.svg | 4 +-
dev/breeze/doc/images/output_ci-image_load.txt | 2 +-
dev/breeze/doc/images/output_ci-image_pull.svg | 6 +-
dev/breeze/doc/images/output_ci-image_pull.txt | 2 +-
dev/breeze/doc/images/output_ci-image_save.svg | 4 +-
dev/breeze/doc/images/output_ci-image_save.txt | 2 +-
dev/breeze/doc/images/output_ci-image_verify.svg | 6 +-
dev/breeze/doc/images/output_ci-image_verify.txt | 2 +-
.../doc/images/output_k8s_build-k8s-image.svg | 4 +-
.../doc/images/output_k8s_build-k8s-image.txt | 2 +-
.../doc/images/output_k8s_configure-cluster.svg | 6 +-
.../doc/images/output_k8s_configure-cluster.txt | 2 +-
.../doc/images/output_k8s_create-cluster.svg | 6 +-
.../doc/images/output_k8s_create-cluster.txt | 2 +-
.../doc/images/output_k8s_delete-cluster.svg | 4 +-
.../doc/images/output_k8s_delete-cluster.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 6 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
.../doc/images/output_k8s_deploy-cluster.svg | 4 +-
.../doc/images/output_k8s_deploy-cluster.txt | 2 +-
dev/breeze/doc/images/output_k8s_dev.svg | 4 +-
dev/breeze/doc/images/output_k8s_dev.txt | 2 +-
dev/breeze/doc/images/output_k8s_k9s.svg | 4 +-
dev/breeze/doc/images/output_k8s_k9s.txt | 2 +-
dev/breeze/doc/images/output_k8s_logs.svg | 4 +-
dev/breeze/doc/images/output_k8s_logs.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 6 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
.../doc/images/output_k8s_setup-lang-sdk-test.svg | 4 +-
.../doc/images/output_k8s_setup-lang-sdk-test.txt | 2 +-
dev/breeze/doc/images/output_k8s_shell.svg | 4 +-
dev/breeze/doc/images/output_k8s_shell.txt | 2 +-
.../doc/images/output_k8s_smoke-test-overlay.svg | 4 +-
.../doc/images/output_k8s_smoke-test-overlay.txt | 2 +-
dev/breeze/doc/images/output_k8s_status.svg | 4 +-
dev/breeze/doc/images/output_k8s_status.txt | 2 +-
dev/breeze/doc/images/output_k8s_tests.svg | 6 +-
dev/breeze/doc/images/output_k8s_tests.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 6 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 6 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
dev/breeze/doc/images/output_prod-image_load.svg | 4 +-
dev/breeze/doc/images/output_prod-image_load.txt | 2 +-
dev/breeze/doc/images/output_prod-image_pull.svg | 6 +-
dev/breeze/doc/images/output_prod-image_pull.txt | 2 +-
dev/breeze/doc/images/output_prod-image_save.svg | 4 +-
dev/breeze/doc/images/output_prod-image_save.txt | 2 +-
dev/breeze/doc/images/output_prod-image_verify.svg | 6 +-
dev/breeze/doc/images/output_prod-image_verify.txt | 2 +-
dev/breeze/doc/images/output_registry_backfill.svg | 4 +-
dev/breeze/doc/images/output_registry_backfill.txt | 2 +-
.../doc/images/output_registry_extract-data.svg | 4 +-
.../doc/images/output_registry_extract-data.txt | 2 +-
...elease-management_constraints-version-check.svg | 4 +-
...elease-management_constraints-version-check.txt | 2 +-
...put_release-management_generate-constraints.svg | 8 +-
...put_release-management_generate-constraints.txt | 2 +-
...e-management_install-provider-distributions.svg | 4 +-
...e-management_install-provider-distributions.txt | 2 +-
...output_release-management_merge-prod-images.svg | 2 +-
...output_release-management_merge-prod-images.txt | 2 +-
...tput_release-management_release-prod-images.svg | 2 +-
...tput_release-management_release-prod-images.txt | 2 +-
...se-management_verify-provider-distributions.svg | 4 +-
...se-management_verify-provider-distributions.txt | 2 +-
dev/breeze/doc/images/output_run.svg | 4 +-
dev/breeze/doc/images/output_run.txt | 2 +-
.../output_sbom_export-dependency-information.svg | 4 +-
.../output_sbom_export-dependency-information.txt | 2 +-
dev/breeze/doc/images/output_setup_config.svg | 4 +-
dev/breeze/doc/images/output_setup_config.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 322 ++-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 278 ++-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
...utput_testing_airflow-ctl-integration-tests.svg | 4 +-
...utput_testing_airflow-ctl-integration-tests.txt | 2 +-
.../images/output_testing_airflow-ctl-tests.svg | 4 +-
.../images/output_testing_airflow-ctl-tests.txt | 2 +-
.../images/output_testing_airflow-e2e-tests.svg | 4 +-
.../images/output_testing_airflow-e2e-tests.txt | 2 +-
.../output_testing_core-integration-tests.svg | 2 +-
.../output_testing_core-integration-tests.txt | 2 +-
.../doc/images/output_testing_core-tests.svg | 2 +-
.../doc/images/output_testing_core-tests.txt | 2 +-
.../images/output_testing_docker-compose-tests.svg | 4 +-
.../images/output_testing_docker-compose-tests.txt | 2 +-
.../output_testing_providers-integration-tests.svg | 2 +-
.../output_testing_providers-integration-tests.txt | 2 +-
.../doc/images/output_testing_providers-tests.svg | 2 +-
.../doc/images/output_testing_providers-tests.txt | 2 +-
.../output_testing_python-api-client-tests.svg | 2 +-
.../output_testing_python-api-client-tests.txt | 2 +-
.../doc/images/output_testing_system-tests.svg | 2 +-
.../doc/images/output_testing_system-tests.txt | 2 +-
.../output_testing_task-sdk-integration-tests.svg | 4 +-
.../output_testing_task-sdk-integration-tests.txt | 2 +-
.../doc/images/output_testing_task-sdk-tests.svg | 2 +-
.../doc/images/output_testing_task-sdk-tests.txt | 2 +-
.../doc/images/output_testing_ui-e2e-tests.svg | 4 +-
.../doc/images/output_testing_ui-e2e-tests.txt | 2 +-
dev/breeze/pyproject.toml | 6 +-
.../airflow_breeze/commands/ci_image_commands.py | 2 +-
.../commands/minor_release_command.py | 2 +-
.../airflow_breeze/commands/registry_commands.py | 6 +-
dev/breeze/src/airflow_breeze/global_constants.py | 31 +-
.../airflow_breeze/params/common_build_params.py | 2 +-
.../airflow_breeze/utils/check_release_files.py | 14 +-
dev/breeze/src/airflow_breeze/utils/github.py | 6 +-
.../src/airflow_breeze/utils/kubernetes_utils.py | 6 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 7 +-
dev/breeze/src/airflow_breeze/utils/parallel.py | 4 +-
.../airflow_breeze/utils/provider_dependencies.py | 10 -
.../src/airflow_breeze/utils/selective_checks.py | 11 +-
.../src/airflow_breeze/utils/workflow_status.py | 2 +-
dev/breeze/tests/test_cache.py | 2 +-
dev/breeze/tests/test_ci_image_commands.py | 4 +-
dev/breeze/tests/test_docker_command_utils.py | 2 +-
.../tests/test_kubernetes_lang_sdk_commands.py | 4 +-
dev/breeze/tests/test_packages.py | 23 +-
.../tests/test_release_management_commands.py | 2 +-
dev/breeze/tests/test_reproduce_ci.py | 4 +-
dev/breeze/tests/test_sbom_commands.py | 6 +-
dev/breeze/tests/test_set_milestone.py | 40 +-
dev/breeze/tests/test_shell_params.py | 16 +-
dev/breeze/uv.lock | 302 +--
dev/close_prs_over_open_pr_limit.py | 2 +-
dev/ide_setup/setup_idea.py | 2 +-
dev/ide_setup/setup_vscode.py | 2 +-
dev/mypy/pyproject.toml | 4 +-
dev/provider_db_inventory.py | 2 +-
dev/prune_old_dirs.py | 2 +-
dev/pyproject.toml | 3 +-
dev/refresh_images.sh | 4 +-
dev/registry/extract_connections.py | 4 +-
dev/registry/extract_metadata.py | 13 +-
dev/registry/extract_parameters.py | 50 +-
dev/registry/extract_versions.py | 94 +-
dev/registry/pyproject.toml | 6 +-
dev/registry/registry_contract_models.py | 3 +
dev/registry/registry_tools/docs_guides.py | 186 ++
dev/registry/tests/test_docs_guides.py | 369 ++++
dev/registry/tests/test_extract_metadata.py | 6 +-
dev/registry/tests/test_extract_parameters.py | 107 +-
dev/registry/tests/test_extract_versions.py | 195 +-
dev/registry/tests/test_merge_registry_data.py | 2 +-
.../tests/test_registry_contract_models.py | 11 +-
dev/retag_docker_images.py | 2 +-
.../src/sphinx_exts/docs_build/package_filter.py | 5 +-
devel-common/src/tests_common/pytest_plugin.py | 4 +-
.../tests_common/test_utils/attempt_ownership.py | 4 +-
docker-stack-docs/build.rst | 14 +-
docker-stack-docs/changelog.rst | 3 +
.../restricted/restricted_environments.sh | 12 +-
docker-stack-docs/entrypoint.rst | 14 +-
docker-stack-docs/pyproject.toml | 4 +-
docker-tests/pyproject.toml | 3 +-
docker-tests/tests/docker_tests/constants.py | 2 +-
docker-tests/tests/docker_tests/docker_utils.py | 4 +-
docker-tests/tests/docker_tests/test_prod_image.py | 6 +-
generated/PYPI_README.md | 2 +-
go-sdk/README.md | 58 +-
go-sdk/adr/0008-native-dag-interface.md | 9 +-
go-sdk/airflow/bundle.go | 55 +-
go-sdk/airflow/bundle_test.go | 41 +
go-sdk/airflow/conformance_test.go | 349 ++++
go-sdk/airflow/dag.go | 85 +-
go-sdk/airflow/enums.go | 11 +-
.../logging/attrs.go => airflow/export_test.go} | 29 +-
go-sdk/airflow/if_test.go | 6 +-
go-sdk/airflow/inputs.go | 265 ++-
go-sdk/airflow/inputs_test.go | 280 ++-
go-sdk/airflow/serialize.go | 744 +++++++
go-sdk/airflow/serialize_test.go | 1135 +++++++++++
go-sdk/airflow/serve.go | 7 +-
go-sdk/airflow/serve_test.go | 102 +-
go-sdk/airflow/spec.gen.go | 23 +-
go-sdk/airflow/spec.go | 4 +-
go-sdk/airflow/spec_fields.gen.go | 82 +
go-sdk/airflow/switch_test.go | 2 +-
go-sdk/airflow/task_group.go | 41 +-
go-sdk/airflow/task_group_test.go | 73 +-
go-sdk/airflow/task_option.go | 2 +-
go-sdk/airflow/trigger_dag_run.go | 81 +-
go-sdk/airflow/trigger_dag_run_test.go | 86 +-
go-sdk/capabilities.yaml | 4 +-
.../cmd/airflow-go-pack/pack_integration_test.go | 3 +
go-sdk/dags/go_examples.py | 19 +-
.../bundle/concurrentxcom/concurrentxcom_test.go | 4 +
go-sdk/example/bundle/main.go | 3 +
go-sdk/example/bundle/taskstate/taskstate.go | 99 +
go-sdk/internal/bundle/doc.go | 8 +-
go-sdk/internal/bundle/task.go | 14 +
go-sdk/internal/genspec/authoring.go | 41 +-
go-sdk/internal/genspec/authoring_test.go | 25 +
go-sdk/internal/genspec/fields.go | 169 ++
go-sdk/internal/genspec/fields_test.go | 126 ++
go-sdk/internal/genspec/main.go | 44 +-
go-sdk/pkg/binding/binding.go | 7 +
go-sdk/pkg/binding/binding_test.go | 20 +
go-sdk/pkg/execution/client.go | 277 ++-
go-sdk/pkg/execution/client_test.go | 583 +++++-
go-sdk/pkg/execution/dag_parse.go | 79 +
go-sdk/pkg/execution/dag_parse_test.go | 202 ++
go-sdk/pkg/execution/frames.go | 14 +-
.../pkg/execution/genmodels/discriminators.gen.go | 4 +
go-sdk/pkg/execution/genmodels/models.gen.go | 18 +-
go-sdk/pkg/execution/integration_test.go | 114 +-
go-sdk/pkg/execution/server.go | 22 +-
go-sdk/pkg/execution/task_runner.go | 2 +-
go-sdk/schema/supervisor-schema.json | 21 +
go-sdk/sdk/doc.go | 8 +-
go-sdk/sdk/errors.go | 6 +
go-sdk/sdk/sdk.go | 89 +-
java-sdk/README.md | 2 +-
java-sdk/capabilities.yaml | 5 +-
java-sdk/sdk/module.md | 2 +-
.../main/kotlin/org/apache/airflow/sdk/Client.kt | 128 ++
.../org/apache/airflow/sdk/execution/Client.kt | 74 +
.../org/apache/airflow/sdk/execution/Comm.kt | 16 +
.../org/apache/airflow/sdk/execution/Frame.kt | 3 +-
.../org/apache/airflow/sdk/ArgTestSupport.kt | 22 +
.../kotlin/org/apache/airflow/sdk/ClientTest.kt | 184 +-
.../org/apache/airflow/sdk/execution/CommTest.kt | 124 +-
.../org/apache/airflow/sdk/execution/TaskTest.kt | 19 +
.../apache/airflow/sdk/internal/ArgValuesTest.kt | 22 +
kubernetes-tests/pyproject.toml | 3 +-
.../tests/kubernetes_tests/test_base.py | 6 +-
performance/pyproject.toml | 2 +-
providers-summary-docs/installing-from-pypi.rst | 2 +-
providers-summary-docs/pyproject.toml | 4 +-
providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 10 +-
providers/airbyte/README.rst | 2 +-
providers/airbyte/pyproject.toml | 3 +-
providers/akeyless/README.rst | 2 +-
providers/akeyless/pyproject.toml | 3 +-
providers/alibaba/README.rst | 2 +-
providers/alibaba/pyproject.toml | 3 +-
providers/amazon/README.rst | 2 +-
providers/amazon/docs/executors/general.rst | 6 +-
.../amazon/docs/executors/lambda-executor.rst | 20 +
providers/amazon/docs/operators/duckdb.rst | 12 +
providers/amazon/pyproject.toml | 3 +-
.../aws/executors/aws_lambda/docker/Dockerfile | 4 +
.../amazon/aws/executors/aws_lambda/docker/app.py | 7 +
.../amazon/aws/log/cloudwatch_task_handler.py | 8 +-
.../airflow/providers/amazon/aws/operators/eks.py | 2 +-
.../airflow/providers/amazon/aws/utils/__init__.py | 4 +-
.../providers/amazon/aws/utils/eks_get_token.py | 4 +-
.../airflow/providers/amazon/aws/utils/mixins.py | 4 +-
.../providers/amazon/aws/utils/task_log_fetcher.py | 6 +-
.../amazon/aws/tests/test_lambda_executor_dlq.py | 4 +-
.../aws/executors/batch/test_batch_executor.py | 2 +-
.../utils/test_exponential_backoff_retry.py | 20 +-
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 6 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 6 +-
.../tests/unit/amazon/aws/hooks/test_sagemaker.py | 4 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 4 +-
.../tests/unit/amazon/aws/operators/test_ecs.py | 26 -
.../amazon/aws/operators/test_neptune_analytics.py | 6 -
.../amazon/aws/operators/test_step_function.py | 4 +-
.../unit/amazon/aws/transfers/test_mongo_to_s3.py | 10 -
.../tests/unit/amazon/aws/triggers/test_eks.py | 2 +-
.../tests/unit/amazon/aws/triggers/test_kinesis.py | 4 +-
.../tests/unit/amazon/aws/utils/test_utils.py | 2 +-
providers/anthropic/README.rst | 2 +-
providers/anthropic/pyproject.toml | 3 +-
providers/apache/arrow/README.rst | 2 +-
providers/apache/arrow/pyproject.toml | 3 +-
providers/apache/beam/README.rst | 5 +-
providers/apache/beam/docs/index.rst | 3 +-
providers/apache/beam/pyproject.toml | 6 +-
providers/apache/cassandra/README.rst | 2 +-
providers/apache/cassandra/pyproject.toml | 3 +-
providers/apache/drill/README.rst | 2 +-
providers/apache/drill/pyproject.toml | 3 +-
providers/apache/druid/README.rst | 2 +-
providers/apache/druid/pyproject.toml | 3 +-
providers/apache/flink/README.rst | 2 +-
providers/apache/flink/pyproject.toml | 3 +-
providers/apache/hdfs/README.rst | 2 +-
providers/apache/hdfs/pyproject.toml | 3 +-
providers/apache/hive/README.rst | 2 +-
providers/apache/hive/pyproject.toml | 3 +-
.../airflow/providers/apache/hive/hooks/hive.py | 3 +-
providers/apache/iceberg/README.rst | 2 +-
providers/apache/iceberg/pyproject.toml | 3 +-
providers/apache/impala/README.rst | 2 +-
providers/apache/impala/pyproject.toml | 3 +-
providers/apache/kafka/README.rst | 2 +-
providers/apache/kafka/pyproject.toml | 3 +-
.../apache/kafka/plugins/event_producer.py | 4 +-
providers/apache/kylin/README.rst | 2 +-
providers/apache/kylin/pyproject.toml | 3 +-
providers/apache/livy/README.rst | 2 +-
providers/apache/livy/pyproject.toml | 3 +-
.../airflow/providers/apache/livy/triggers/livy.py | 8 +-
.../livy/tests/unit/apache/livy/hooks/test_livy.py | 5 -
providers/apache/pig/README.rst | 2 +-
providers/apache/pig/pyproject.toml | 3 +-
providers/apache/pinot/README.rst | 2 +-
providers/apache/pinot/pyproject.toml | 3 +-
providers/apache/spark/README.rst | 2 +-
providers/apache/spark/pyproject.toml | 3 +-
providers/apache/tinkerpop/README.rst | 2 +-
providers/apache/tinkerpop/pyproject.toml | 3 +-
providers/apprise/README.rst | 2 +-
providers/apprise/pyproject.toml | 3 +-
providers/arangodb/README.rst | 2 +-
providers/arangodb/pyproject.toml | 3 +-
providers/asana/README.rst | 2 +-
providers/asana/pyproject.toml | 3 +-
providers/atlassian/jira/README.rst | 2 +-
providers/atlassian/jira/pyproject.toml | 3 +-
providers/celery/README.rst | 2 +-
providers/celery/pyproject.toml | 3 +-
providers/clickhousedb/README.rst | 2 +-
providers/clickhousedb/pyproject.toml | 3 +-
.../unit/clickhousedb/hooks/test_clickhouse.py | 3 -
providers/cloudant/README.rst | 2 +-
providers/cloudant/pyproject.toml | 3 +-
providers/cncf/kubernetes/README.rst | 2 +-
providers/cncf/kubernetes/pyproject.toml | 3 +-
.../providers/cncf/kubernetes/operators/pod.py | 6 +-
.../cncf/kubernetes/operators/spark_kubernetes.py | 4 +-
.../providers/cncf/kubernetes/triggers/pod.py | 6 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 14 +-
.../unit/cncf/kubernetes/triggers/test_pod.py | 4 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 4 +-
providers/cohere/README.rst | 2 +-
providers/cohere/pyproject.toml | 3 +-
providers/common/ai/README.rst | 2 +-
providers/common/ai/docs/installation.rst | 2 +-
providers/common/ai/docs/model_providers.rst | 15 +-
providers/common/ai/docs/operators/llm_branch.rst | 4 +-
.../common/ai/docs/operators/llm_file_analysis.rst | 4 +-
.../ai/docs/operators/llm_schema_compare.rst | 4 +-
providers/common/ai/docs/operators/llm_sql.rst | 4 +-
providers/common/ai/docs/toolsets/datafusion.rst | 76 +-
providers/common/ai/docs/toolsets/hook.rst | 48 +-
providers/common/ai/docs/toolsets/index.rst | 211 +-
providers/common/ai/docs/toolsets/logging.rst | 9 +-
providers/common/ai/docs/toolsets/mcp.rst | 45 +-
.../common/ai/docs/toolsets/object_storage.rst | 42 +-
providers/common/ai/docs/toolsets/skills.rst | 60 +-
providers/common/ai/docs/toolsets/sql.rst | 104 +-
providers/common/ai/pyproject.toml | 4 +-
.../src/airflow/providers/common/ai/batch/base.py | 4 +-
.../airflow/providers/common/ai/batch/polling.py | 4 +-
.../common/ai/example_dags/example_agent_skills.py | 31 +
.../ai/example_dags/example_datafusion_toolset.py | 72 +
.../common/ai/example_dags/example_hook_toolset.py | 57 +
.../example_dags/example_langchain_tool_agent.py | 2 +-
.../common/ai/example_dags/example_mcp.py | 35 +-
.../example_dags/example_object_storage_toolset.py | 35 +
.../ai/example_dags/example_sandbox_toolset.py | 12 +-
.../common/ai/example_dags/example_sql_toolset.py | 65 +
.../providers/common/ai/operators/llm_batch.py | 12 +-
.../airflow/providers/common/ai/toolsets/hook.py | 28 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 4 +-
.../providers/common/ai/toolsets/object_storage.py | 4 +-
.../providers/common/ai/toolsets/sandbox.py | 3 +-
.../airflow/providers/common/ai/toolsets/skills.py | 15 +-
.../providers/common/ai/utils/hitl_review.py | 4 +-
.../providers/common/ai/utils/tool_definition.py | 2 +-
.../src/airflow/providers/common/ai/utils/usage.py | 7 +-
.../common/ai/example_sandbox_toolset_modal.py | 4 +-
.../ai/example_sandbox_toolset_opensandbox.py | 4 +-
.../common/ai/example_sandbox_toolset_sbx.py | 4 +-
.../unit/common/ai/batch/test_output_schema.py | 4 +-
.../unit/common/ai/durable/test_fingerprint.py | 4 +-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 9 -
.../ai/operators/test_llamaindex_retrieval.py | 13 -
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 109 +-
.../tests/unit/common/ai/toolsets/test_skills.py | 47 +-
.../tests/unit/common/ai/utils/test_hitl_review.py | 6 +-
.../unit/common/ai/utils/test_toolset_base.py | 6 +-
.../ai/tests/unit/common/ai/utils/test_usage.py | 6 +-
providers/common/compat/README.rst | 2 +-
providers/common/compat/pyproject.toml | 3 +-
providers/common/dataquality/pyproject.toml | 3 +-
providers/common/io/README.rst | 2 +-
providers/common/io/pyproject.toml | 3 +-
providers/common/messaging/README.rst | 2 +-
providers/common/messaging/pyproject.toml | 3 +-
providers/common/sql/README.rst | 2 +-
providers/common/sql/pyproject.toml | 3 +-
providers/databricks/README.rst | 2 +-
providers/databricks/pyproject.toml | 3 +-
.../providers/databricks/utils/openlineage.py | 2 +-
.../unit/databricks/utils/test_openlineage.py | 28 +-
.../tests/unit/databricks/utils/test_retry.py | 2 +-
providers/datadog/README.rst | 2 +-
providers/datadog/pyproject.toml | 3 +-
providers/dbt/cloud/README.rst | 2 +-
providers/dbt/cloud/pyproject.toml | 3 +-
providers/dingding/README.rst | 2 +-
providers/dingding/pyproject.toml | 3 +-
providers/discord/README.rst | 2 +-
providers/discord/pyproject.toml | 3 +-
.../providers/discord/notifications/embed.py | 4 +-
providers/docker/README.rst | 2 +-
providers/docker/pyproject.toml | 3 +-
providers/duckdb/README.rst | 2 +-
providers/duckdb/docs/connections/duckdb.rst | 18 +
providers/duckdb/pyproject.toml | 3 +-
providers/edge3/README.rst | 2 +-
providers/edge3/docs/install_on_windows.rst | 2 +-
providers/edge3/pyproject.toml | 4 +-
.../edge3/tests/unit/edge3/models/test_edge_job.py | 14 +-
.../tests/unit/edge3/models/test_edge_logs.py | 4 +-
.../tests/unit/edge3/worker_api/test_datamodels.py | 6 +-
.../unit/edge3/worker_api/test_datamodels_ui.py | 4 +-
providers/elasticsearch/README.rst | 2 +-
providers/elasticsearch/pyproject.toml | 3 +-
providers/exasol/README.rst | 2 +-
providers/exasol/pyproject.toml | 3 +-
providers/fab/README.rst | 2 +-
providers/fab/pyproject.toml | 4 +-
.../fab/auth_manager/security_manager/override.py | 2 +-
.../security_manager/test_fab_alignment.py | 4 +-
.../unit/fab/www/extensions/test_init_session.py | 2 +-
providers/facebook/README.rst | 2 +-
providers/facebook/pyproject.toml | 3 +-
providers/ftp/README.rst | 2 +-
providers/ftp/pyproject.toml | 3 +-
providers/git/README.rst | 2 +-
providers/git/pyproject.toml | 3 +-
.../git/src/airflow/providers/git/hooks/git.py | 4 +-
providers/git/tests/unit/git/hooks/test_git.py | 27 +-
providers/github/README.rst | 2 +-
providers/github/pyproject.toml | 3 +-
providers/google/README.rst | 2 +-
providers/google/pyproject.toml | 3 +-
.../providers/google/cloud/hooks/managed_kafka.py | 6 +-
.../providers/google/cloud/openlineage/mixins.py | 6 +-
.../providers/google/cloud/operators/workflows.py | 2 +-
.../providers/google/cloud/transfers/s3_to_gcs.py | 4 +-
.../providers/google/common/hooks/base_google.py | 2 +-
.../example_cloud_storage_transfer_service_aws.py | 4 +-
.../example_cloud_storage_transfer_service_gcp.py | 4 +-
.../system/google/cloud/tasks/example_tasks.py | 4 +-
.../commands/cmd_delete.py | 6 +-
.../handlers/composer.py | 2 +-
.../google/cloud/hooks/test_dataproc_metastore.py | 268 ---
.../unit/google/cloud/hooks/test_managed_kafka.py | 331 ---
.../google/cloud/hooks/vertex_ai/test_auto_ml.py | 70 -
.../hooks/vertex_ai/test_batch_prediction_job.py | 65 -
.../cloud/hooks/vertex_ai/test_custom_job.py | 125 --
.../google/cloud/hooks/vertex_ai/test_dataset.py | 231 ---
.../cloud/hooks/vertex_ai/test_endpoint_service.py | 172 --
.../hooks/vertex_ai/test_experiment_service.py | 87 -
.../vertex_ai/test_hyperparameter_tuning_job.py | 74 -
.../cloud/hooks/vertex_ai/test_model_service.py | 205 --
.../cloud/hooks/vertex_ai/test_pipeline_job.py | 82 -
.../hooks/vertex_ai/test_prediction_service.py | 29 -
.../unit/google/cloud/hooks/vertex_ai/test_ray.py | 122 --
.../unit/google/cloud/openlineage/test_mixins.py | 10 +-
.../cloud/operators/test_cloud_logging_sink.py | 42 -
.../unit/google/cloud/operators/test_cloud_run.py | 73 -
.../tests/unit/google/cloud/operators/test_gcs.py | 22 +-
.../unit/google/cloud/operators/test_workflows.py | 6 +-
.../google/cloud/transfers/test_postgres_to_gcs.py | 2 +-
.../tests/unit/google/cloud/triggers/test_gcs.py | 4 +-
.../cloud/triggers/test_kubernetes_engine.py | 2 +-
.../google/resources_cleanup/test_cmd_delete.py | 4 +-
providers/grpc/README.rst | 2 +-
providers/grpc/pyproject.toml | 3 +-
providers/hashicorp/README.rst | 2 +-
providers/hashicorp/pyproject.toml | 3 +-
providers/http/README.rst | 2 +-
providers/http/pyproject.toml | 3 +-
providers/ibm/db2/pyproject.toml | 3 +-
providers/ibm/mq/README.rst | 2 +-
providers/ibm/mq/pyproject.toml | 3 +-
providers/imap/README.rst | 2 +-
providers/imap/pyproject.toml | 3 +-
providers/influxdb/README.rst | 2 +-
providers/influxdb/pyproject.toml | 3 +-
providers/informatica/README.rst | 2 +-
providers/informatica/pyproject.toml | 3 +-
providers/jdbc/README.rst | 4 +-
providers/jdbc/docs/index.rst | 2 -
providers/jdbc/pyproject.toml | 5 +-
providers/jenkins/README.rst | 2 +-
providers/jenkins/pyproject.toml | 3 +-
providers/keycloak/README.rst | 2 +-
providers/keycloak/pyproject.toml | 3 +-
providers/microsoft/azure/README.rst | 2 +-
providers/microsoft/azure/pyproject.toml | 3 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 4 +-
.../azure/operators/test_analysis_services.py | 8 -
.../unit/microsoft/azure/operators/test_compute.py | 9 -
.../azure/sensors/test_analysis_services.py | 8 -
.../unit/microsoft/azure/sensors/test_compute.py | 11 -
providers/microsoft/mssql/README.rst | 2 +-
providers/microsoft/mssql/pyproject.toml | 3 +-
providers/microsoft/psrp/README.rst | 2 +-
providers/microsoft/psrp/pyproject.toml | 3 +-
providers/microsoft/winrm/README.rst | 2 +-
providers/microsoft/winrm/pyproject.toml | 3 +-
providers/modal/README.rst | 2 +-
providers/modal/pyproject.toml | 3 +-
providers/mongo/README.rst | 2 +-
providers/mongo/pyproject.toml | 3 +-
providers/mysql/README.rst | 2 +-
providers/mysql/pyproject.toml | 3 +-
providers/neo4j/README.rst | 2 +-
providers/neo4j/pyproject.toml | 3 +-
providers/odbc/README.rst | 2 +-
providers/odbc/pyproject.toml | 3 +-
providers/openai/README.rst | 2 +-
providers/openai/pyproject.toml | 3 +-
providers/openfaas/README.rst | 2 +-
providers/openfaas/pyproject.toml | 3 +-
providers/openlineage/README.rst | 2 +-
providers/openlineage/pyproject.toml | 3 +-
.../airflow/providers/openlineage/api/datasets.py | 4 +-
.../example_openlineage_manual_lineage_dag.py | 4 +-
.../tests/unit/openlineage/api/test_datasets.py | 12 +-
.../tests/unit/openlineage/api/test_sql.py | 12 +-
.../tests/unit/openlineage/plugins/test_macros.py | 12 +-
.../tests/unit/openlineage/utils/test_utils.py | 56 +-
providers/opensearch/README.rst | 2 +-
providers/opensearch/pyproject.toml | 3 +-
providers/opsgenie/README.rst | 2 +-
providers/opsgenie/pyproject.toml | 3 +-
.../airflow/providers/opsgenie/typing/opsgenie.py | 4 +-
providers/oracle/README.rst | 4 +-
providers/oracle/docs/index.rst | 8 +-
providers/oracle/pyproject.toml | 5 +-
providers/pagerduty/README.rst | 2 +-
providers/pagerduty/pyproject.toml | 3 +-
providers/papermill/README.rst | 2 +-
providers/papermill/pyproject.toml | 3 +-
providers/pgvector/README.rst | 2 +-
providers/pgvector/pyproject.toml | 3 +-
providers/pinecone/README.rst | 2 +-
providers/pinecone/pyproject.toml | 3 +-
providers/postgres/README.rst | 2 +-
providers/postgres/pyproject.toml | 3 +-
.../tests/unit/postgres/hooks/test_postgres.py | 4 -
providers/presto/README.rst | 2 +-
providers/presto/pyproject.toml | 3 +-
providers/qdrant/README.rst | 2 +-
providers/qdrant/pyproject.toml | 3 +-
providers/redis/README.rst | 2 +-
providers/redis/pyproject.toml | 3 +-
providers/salesforce/README.rst | 2 +-
providers/salesforce/pyproject.toml | 3 +-
.../tests/unit/salesforce/operators/test_bulk.py | 17 -
providers/samba/README.rst | 2 +-
providers/samba/pyproject.toml | 3 +-
providers/segment/README.rst | 2 +-
providers/segment/pyproject.toml | 3 +-
providers/sendgrid/README.rst | 2 +-
providers/sendgrid/pyproject.toml | 3 +-
providers/sftp/README.rst | 2 +-
providers/sftp/pyproject.toml | 3 +-
.../sftp/tests/unit/sftp/sensors/test_sftp.py | 4 +-
providers/singularity/README.rst | 2 +-
providers/singularity/pyproject.toml | 3 +-
providers/slack/README.rst | 2 +-
providers/slack/pyproject.toml | 3 +-
.../src/airflow/providers/slack/hooks/slack.py | 3 +-
providers/smtp/README.rst | 2 +-
providers/smtp/pyproject.toml | 3 +-
providers/snowflake/README.rst | 2 +-
.../docs/connections}/index.rst | 3 +-
.../docs/connections/pydantic_ai_snowflake.rst | 132 ++
providers/snowflake/docs/connections/snowflake.rst | 10 +-
providers/snowflake/docs/index.rst | 14 +-
.../docs/operators/snowflake_cortex_agent.rst | 19 +
providers/snowflake/provider.yaml | 40 +
providers/snowflake/pyproject.toml | 7 +-
.../providers/snowflake/get_provider_info.py | 33 +-
.../providers/snowflake/hooks/cortex_model.py | 210 ++
.../airflow/providers/snowflake/hooks/snowflake.py | 10 +
.../snowflake/hooks/snowflake_cortex_agent.py | 74 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 63 +-
.../providers/snowflake/utils/_rest_auth.py | 186 ++
.../snowflake/utils/sql_api_generate_jwt.py | 8 +-
.../unit/snowflake/hooks/test_cortex_model.py | 397 ++++
.../tests/unit/snowflake/hooks/test_snowflake.py | 30 +
.../snowflake/hooks/test_snowflake_cortex_agent.py | 219 +-
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 132 +-
.../operators/test_snowpark_containers.py | 4 +-
.../tests/unit/snowflake/utils/test__rest_auth.py | 273 +++
.../tests/unit/snowflake/utils/test_openlineage.py | 20 +-
providers/sqlite/README.rst | 2 +-
providers/sqlite/pyproject.toml | 3 +-
providers/ssh/README.rst | 2 +-
providers/ssh/pyproject.toml | 3 +-
providers/standard/README.rst | 2 +-
providers/standard/pyproject.toml | 3 +-
.../standard/example_dags/example_sensors.py | 10 +-
.../standard/decorators/test_external_python.py | 2 +-
.../tests/unit/standard/decorators/test_python.py | 11 +-
.../standard/decorators/test_python_virtualenv.py | 2 +-
.../tests/unit/standard/operators/test_datetime.py | 4 +-
.../tests/unit/standard/operators/test_python.py | 4 +-
.../tests/unit/standard/utils/test_skipmixin.py | 2 +-
providers/tableau/README.rst | 2 +-
providers/tableau/pyproject.toml | 3 +-
providers/telegram/README.rst | 2 +-
providers/telegram/pyproject.toml | 3 +-
.../tests/unit/telegram/operators/test_telegram.py | 13 -
providers/teradata/README.rst | 2 +-
providers/teradata/pyproject.toml | 3 +-
.../tests/unit/teradata/operators/test_bteq.py | 4 -
providers/trino/README.rst | 2 +-
providers/trino/pyproject.toml | 3 +-
providers/vertica/README.rst | 2 +-
providers/vertica/pyproject.toml | 3 +-
providers/vespa/README.rst | 2 +-
providers/vespa/pyproject.toml | 3 +-
providers/weaviate/README.rst | 2 +-
providers/weaviate/pyproject.toml | 3 +-
providers/yandex/README.rst | 2 +-
providers/yandex/pyproject.toml | 3 +-
providers/ydb/README.rst | 2 +-
providers/ydb/pyproject.toml | 3 +-
providers/zendesk/README.rst | 2 +-
providers/zendesk/pyproject.toml | 3 +-
pyproject.toml | 9 +-
registry/AGENTS.md | 33 +
registry/README.md | 2 +-
registry/src/css/main.css | 10 +
registry/src/provider-version.njk | 6 +
scripts/ci/airflow_version_check.py | 2 +-
scripts/ci/analyze_ci_job_durations.py | 6 +-
scripts/ci/analyze_e2e_flaky_tests.py | 2 +-
scripts/ci/docker-compose/devcontainer.env | 4 +-
scripts/ci/docker-compose/devcontainer.yml | 2 +-
scripts/ci/extract_e2e_test_results.py | 2 +-
scripts/ci/lang_sdk_serialization/compare.py | 90 +-
.../ci/lang_sdk_serialization/serialize_python.py | 57 +-
scripts/ci/lang_sdk_serialization/test_dags.yaml | 138 ++
scripts/ci/notify_uv_lock_conflicts.py | 6 +-
scripts/ci/prek/boring_cyborg.py | 2 +-
scripts/ci/prek/breeze_cmd_line.py | 2 +-
scripts/ci/prek/build_kustomize_overlays.py | 2 +-
scripts/ci/prek/capture_airflowctl_help.py | 2 +-
scripts/ci/prek/check_aiobotocore_optional.py | 2 +-
.../ci/prek/check_airflow_bug_report_template.py | 2 +-
scripts/ci/prek/check_airflow_imports.py | 2 +-
scripts/ci/prek/check_airflow_imports_in_shared.py | 2 +-
.../ci/prek/check_airflow_v_imports_in_tests.py | 2 +-
.../ci/prek/check_airflowctl_command_coverage.py | 2 +-
scripts/ci/prek/check_airflowctl_help_texts.py | 2 +-
.../prek/check_base_operator_partial_arguments.py | 2 +-
scripts/ci/prek/check_cli_definition_imports.py | 2 +-
scripts/ci/prek/check_common_ai_operators_index.py | 2 +-
scripts/ci/prek/check_common_sql_dependency.py | 2 +-
scripts/ci/prek/check_conf_import_in_providers.py | 2 +-
scripts/ci/prek/check_conn_id_templated.py | 2 +-
scripts/ci/prek/check_connection_doc_labels.py | 2 +-
scripts/ci/prek/check_core_imports_in_sdk.py | 2 +-
scripts/ci/prek/check_default_configuration.py | 2 +-
scripts/ci/prek/check_deferrable_default.py | 2 +-
.../ci/prek/check_deferred_hook_configuration.py | 2 +-
scripts/ci/prek/check_dependency_lower_bounds.py | 9 +-
scripts/ci/prek/check_deprecations.py | 2 +-
scripts/ci/prek/check_distribution_gitignore.py | 2 +-
scripts/ci/prek/check_example_dag_tags.py | 2 +-
scripts/ci/prek/check_excluded_provider_markers.py | 7 +-
scripts/ci/prek/check_execution_api_versions.py | 2 +-
scripts/ci/prek/check_extra_packages_ref.py | 8 +-
scripts/ci/prek/check_first_limit.py | 2 +-
scripts/ci/prek/check_go_sdk_generated_drift.py | 8 +-
.../prek/check_go_sdk_serialization_conformance.py | 63 +
.../check_http_exception_import_from_fastapi.py | 2 +-
scripts/ci/prek/check_i18n_json.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_init_decorator_arguments.py | 2 +-
scripts/ci/prek/check_init_in_tests.py | 2 +-
scripts/ci/prek/check_integrations_list.py | 2 +-
scripts/ci/prek/check_kubeconform.py | 2 +-
scripts/ci/prek/check_lazy_logging.py | 2 +-
.../check_mapped_column_nullable_annotations.py | 2 +-
.../prek/check_metrics_synced_with_the_registry.py | 2 +-
scripts/ci/prek/check_migration_patterns.py | 2 +-
scripts/ci/prek/check_min_python_version.py | 4 +-
.../ci/prek/check_new_airflow_exception_usage.py | 2 +-
.../check_no_new_airflow_core_utils_modules.py | 2 +-
scripts/ci/prek/check_notice_files.py | 2 +-
.../ci/prek/check_openapi_exception_doc_in_sync.py | 2 +-
scripts/ci/prek/check_order_dockerfile_extras.py | 2 +-
.../check_partition_mapper_defaults_in_sync.py | 2 +-
scripts/ci/prek/check_provide_session_kwargs.py | 2 +-
.../check_provider_config_fallback_defaults.py | 2 +-
scripts/ci/prek/check_provider_docs.py | 2 +-
scripts/ci/prek/check_provider_yaml_files.py | 2 +-
.../check_providers_subpackages_all_have_init.py | 2 +-
scripts/ci/prek/check_revision_heads_map.py | 2 +-
scripts/ci/prek/check_schema_defaults.py | 2 +-
scripts/ci/prek/check_sdk_imports_in_core.py | 2 +-
scripts/ci/prek/check_security_doc_constants.py | 2 +-
.../prek/check_shared_distributions_structure.py | 9 +-
.../ci/prek/check_shared_distributions_usage.py | 9 +-
scripts/ci/prek/check_shared_mypy_hooks.py | 2 +-
.../ci/prek/check_supervisor_schemas_versions.py | 2 +-
scripts/ci/prek/check_system_tests.py | 2 +-
.../ci/prek/check_system_tests_hidden_in_index.py | 2 +-
.../check_template_context_variable_in_sync.py | 2 +-
scripts/ci/prek/check_template_fields.py | 2 +-
scripts/ci/prek/check_test_only_imports_in_src.py | 2 +-
scripts/ci/prek/check_tests_in_right_folders.py | 2 +-
scripts/ci/prek/check_trigger_serialize_init.py | 2 +-
.../check_ts_sdk_docs_package_version_in_sync.py | 2 +-
scripts/ci/prek/check_version_consistency.py | 9 +-
scripts/ci/prek/check_window_in_sync.py | 2 +-
scripts/ci/prek/checkout_no_credentials.py | 2 +-
scripts/ci/prek/common_prek_utils.py | 10 +-
scripts/ci/prek/docstring_param_type.py | 2 +-
scripts/ci/prek/download_k8s_schemas.py | 2 +-
scripts/ci/prek/generate_airflow_diagrams.py | 2 +-
scripts/ci/prek/generate_openapi_spec.py | 2 +-
scripts/ci/prek/generate_openapi_spec_providers.py | 2 +-
.../prek/generate_supervisor_schemas_snapshot.py | 2 +-
scripts/ci/prek/generate_volumes_for_sources.py | 2 +-
scripts/ci/prek/lint_helm.py | 2 +-
scripts/ci/prek/lint_json_schema.py | 2 +-
scripts/ci/prek/migration_reference.py | 2 +-
scripts/ci/prek/migration_round_trip.py | 2 +-
scripts/ci/prek/mypy.py | 4 +-
scripts/ci/prek/mypy_folder.py | 6 +-
.../ci/prek/prevent_deprecated_sqlalchemy_usage.py | 2 +-
scripts/ci/prek/replace_bad_characters.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
...un_mypy_full_dist_local_venv_or_breeze_in_ci.py | 2 +-
scripts/ci/prek/sort_in_the_wild.py | 2 +-
scripts/ci/prek/supported_versions.py | 2 +-
scripts/ci/prek/sync_provider_readme.py | 9 +-
scripts/ci/prek/sync_uv_min_version_markers.py | 2 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 22 +-
scripts/ci/prek/update_chart_dependencies.py | 2 +-
scripts/ci/prek/update_docker_gpg_keys.py | 2 -
scripts/ci/prek/update_example_dags_paths.py | 2 +-
scripts/ci/prek/update_go_sdk_readme_matrix.py | 2 +-
scripts/ci/prek/update_java_sdk_readme_matrix.py | 2 +-
scripts/ci/prek/update_notice_year.py | 2 +-
scripts/ci/prek/update_providers_build_files.py | 2 +-
scripts/ci/prek/update_providers_dependencies.py | 8 +-
scripts/ci/prek/update_source_date_epoch.py | 2 +-
scripts/ci/prek/update_tested_versions.py | 2 +-
scripts/ci/prek/update_ts_sdk_readme_matrix.py | 2 +-
scripts/ci/prek/update_versions.py | 2 +-
scripts/ci/prek/upgrade_dependency_floors.py | 13 +-
scripts/ci/prek/upgrade_important_versions.py | 19 +-
scripts/ci/prek/validate_chart_annotations.py | 2 +-
scripts/ci/prek/validate_operators_init.py | 2 +-
scripts/ci/prek/vendor_k8s_json_schema.py | 2 +-
scripts/ci/slack_notification_state.py | 8 +-
.../testing/get_min_airflow_version_for_python.py | 2 +-
scripts/ci/verify_helm_chart_package.py | 2 +-
scripts/docker/entrypoint_ci.sh | 2 +-
scripts/docker/install_os_dependencies.sh | 79 +-
scripts/docker/keys/python-3.10.asc | 109 -
scripts/in_container/bin/generate_mprocs_config.py | 2 +-
.../in_container/install_airflow_and_providers.py | 4 +-
.../install_development_dependencies.py | 2 +-
scripts/in_container/run_generate_constraints.py | 8 +-
.../in_container/update_quarantined_test_status.py | 4 +-
scripts/pyproject.toml | 3 +-
.../ci/lang_sdk_serialization/test_compare.py | 189 +-
.../test_check_go_sdk_serialization_conformance.py | 62 +
scripts/tests/ci/prek/test_supported_versions.py | 4 +-
.../tests/ci/prek/test_update_tested_versions.py | 4 +-
.../ci/prek/test_upgrade_dependency_floors.py | 4 +-
.../ci/prek/test_upgrade_important_versions.py | 5 +-
scripts/tests/ci/test_analyze_ci_job_durations.py | 12 +-
scripts/tests/ci/test_notify_uv_lock_conflicts.py | 16 +-
.../testing/test_compute_remaining_test_timeout.py | 4 +-
.../test_get_min_airflow_version_for_python.py | 6 +-
.../tests/docker/test_get_distribution_specs.py | 16 +-
.../in_container/test_run_generate_constraints.py | 10 +-
scripts/tools/check_if_limited_dependencies.py | 2 +-
scripts/tools/initialize_virtualenv.py | 6 +-
shared/configuration/pyproject.toml | 1 -
shared/dagnode/pyproject.toml | 1 -
shared/dagnode/src/airflow_shared/dagnode/node.py | 8 +-
shared/listeners/pyproject.toml | 1 -
shared/logging/pyproject.toml | 1 -
.../airflow_shared/logging/percent_formatter.py | 5 +-
shared/logging/tests/logging/test_structlog.py | 9 +-
shared/module_loading/pyproject.toml | 1 -
shared/observability/pyproject.toml | 1 -
.../src/airflow_shared/observability/__init__.py | 7 +-
shared/plugins_manager/pyproject.toml | 1 -
.../plugins_manager/plugins_manager.py | 4 +-
shared/providers_discovery/pyproject.toml | 1 -
shared/secrets_backend/pyproject.toml | 1 -
shared/secrets_masker/pyproject.toml | 1 -
shared/serialization/pyproject.toml | 1 -
shared/state/pyproject.toml | 1 -
shared/template_rendering/pyproject.toml | 1 -
shared/timezones/pyproject.toml | 1 -
task-sdk-integration-tests/pyproject.toml | 3 +-
.../tests/task_sdk_tests/constants.py | 2 +-
.../tests/task_sdk_tests/jwt_plugin.py | 4 +-
.../task_sdk_tests/test_dag_run_operations.py | 6 +-
task-sdk/dev/generate_task_sdk_models.py | 6 +-
task-sdk/pyproject.toml | 7 +-
task-sdk/src/airflow/sdk/bases/operator.py | 48 +-
.../src/airflow/sdk/coordinators/_dag_importer.py | 5 +-
.../src/airflow/sdk/coordinators/_subprocess.py | 161 +-
.../sdk/coordinators/executable/coordinator.py | 2 +-
.../airflow/sdk/coordinators/java/_dag_importer.py | 122 ++
.../airflow/sdk/coordinators/java/_jar_manifest.py | 71 +
.../airflow/sdk/coordinators/java/coordinator.py | 165 +-
.../sdk/coordinators/node/_bundle_reader.py | 29 +-
.../airflow/sdk/coordinators/node/_dag_importer.py | 72 +
.../airflow/sdk/coordinators/node/coordinator.py | 29 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 2 +-
.../airflow/sdk/definitions/asset/decorators.py | 2 +-
task-sdk/src/airflow/sdk/definitions/context.py | 4 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 4 +-
.../sdk/execution_time/callback_supervisor.py | 3 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 8 +
task-sdk/src/airflow/sdk/execution_time/context.py | 7 +-
.../src/airflow/sdk/execution_time/coordinator.py | 21 +-
.../airflow/sdk/execution_time/schema/schema.json | 21 +
.../src/airflow/sdk/execution_time/supervisor.py | 161 +-
.../src/airflow/sdk/execution_time/task_runner.py | 34 +-
task-sdk/src/airflow/sdk/importers/base.py | 12 +-
.../src/airflow/sdk/importers/python_importer.py | 4 +-
task-sdk/src/airflow/sdk/importers/zip_importer.py | 4 +-
task-sdk/src/airflow/sdk/io/path.py | 3 +-
task-sdk/src/airflow/sdk/serde/__init__.py | 3 -
.../src/airflow/sdk/serde/serializers/datetime.py | 2 +-
task-sdk/tests/task_sdk/api/test_client.py | 12 +-
task-sdk/tests/task_sdk/bases/test_operator.py | 23 +-
.../task_sdk/coordinators/java/_jar_test_utils.py | 53 +
.../task_sdk/coordinators/java/test_coordinator.py | 314 ++-
.../coordinators/java/test_dag_importer.py | 308 +++
.../coordinators/java/test_jar_manifest.py | 94 +
.../coordinators/node/_bundle_test_utils.py | 5 +
.../coordinators/node/test_bundle_reader.py | 10 +-
.../task_sdk/coordinators/node/test_coordinator.py | 114 +-
.../coordinators/node/test_dag_importer.py | 275 +++
.../task_sdk/coordinators/test_dag_importer.py | 2 +-
.../tests/task_sdk/coordinators/test_subprocess.py | 390 +++-
.../definitions/_internal/test_templater.py | 4 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 6 +-
.../execution_time/schema/test_migrator.py | 2 +-
.../tests/task_sdk/execution_time/test_context.py | 20 +-
.../task_sdk/execution_time/test_supervisor.py | 424 +++-
.../task_sdk/execution_time/test_task_runner.py | 26 +-
task-sdk/tests/task_sdk/serde/test_serializers.py | 2 +-
ts-sdk/adr/0002-native-dag-interface.md | 75 +
.../ci/prek/check_serialization_conformance.py | 15 +-
ts-sdk/src/coordinator/client.ts | 69 +
ts-sdk/src/coordinator/protocol.ts | 9 +
ts-sdk/src/coordinator/runtime.ts | 22 +-
ts-sdk/src/coordinator/serde.ts | 42 +-
ts-sdk/src/coordinator/trigger-runner.ts | 232 +++
ts-sdk/src/index.ts | 6 +
ts-sdk/src/sdk/bundle.ts | 12 +
ts-sdk/src/sdk/dag.ts | 339 +++-
ts-sdk/src/sdk/trigger-dag-run.ts | 192 ++
ts-sdk/tests/coordinator/client.test.ts | 18 +
ts-sdk/tests/coordinator/integration.test.ts | 344 ++++
ts-sdk/tests/sdk/branching.test.ts | 242 +++
ts-sdk/tests/sdk/conditional.test.ts | 308 +++
ts-sdk/tests/sdk/dag.test.ts | 4 +-
ts-sdk/tests/sdk/trigger-dag-run.test.ts | 308 +++
uv.lock | 2118 ++------------------
1128 files changed, 23300 insertions(+), 8512 deletions(-)
create mode 100644 airflow-core/newsfragments/73806.improvement.rst
create mode 100644 airflow-core/newsfragments/74151.significant.rst
create mode 100644
airflow-core/src/airflow/ui/src/components/DagImportErrorModal.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/DataTable/DataTable.columnVisibility.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/ErrorModal.test.tsx
copy airflow-core/src/airflow/ui/src/components/{Stat.tsx => ErrorModal.tsx}
(52%)
create mode 100644
airflow-core/src/airflow/ui/src/hooks/useDagRunsLimit.test.tsx
copy airflow-core/src/airflow/ui/src/{components/TeamName.tsx =>
hooks/useDagRunsLimit.ts} (50%)
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useUrlOrStoredState.ts
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/PanelButtons.test.tsx
copy airflow-core/src/airflow/ui/src/{utils/formatNumber.test.ts =>
layouts/Details/runLimitConfig.test.ts} (61%)
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/runLimitConfig.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsListColumns.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCounts.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCounts.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCountsColumn.tsx
copy airflow-core/src/airflow/ui/src/pages/DagsList/{Schedule.test.tsx =>
RecentTaskStateCountsHeader.test.tsx} (68%)
copy airflow-core/src/airflow/ui/src/{components/DrainingBadge.tsx =>
pages/DagsList/RecentTaskStateCountsHeader.tsx} (63%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/XCom/XComEntry.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useRecentTaskStateCounts.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useRecentTaskStateCounts.tsx
create mode 100644
airflow-core/tests/unit/dag_processing/lang_sdk_fixtures/go_native.json
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/go_sdk_tests/test_go_sdk_task_state.py
create mode 100644 dev/registry/registry_tools/docs_guides.py
create mode 100644 dev/registry/tests/test_docs_guides.py
create mode 100644 go-sdk/airflow/conformance_test.go
copy go-sdk/{pkg/logging/attrs.go => airflow/export_test.go} (51%)
create mode 100644 go-sdk/airflow/serialize.go
create mode 100644 go-sdk/airflow/serialize_test.go
create mode 100644 go-sdk/airflow/spec_fields.gen.go
create mode 100644 go-sdk/example/bundle/taskstate/taskstate.go
create mode 100644 go-sdk/internal/genspec/fields.go
create mode 100644 go-sdk/internal/genspec/fields_test.go
create mode 100644 go-sdk/pkg/execution/dag_parse.go
create mode 100644 go-sdk/pkg/execution/dag_parse_test.go
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_datafusion_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_hook_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_sql_toolset.py
copy providers/{opensearch/docs/operators =>
snowflake/docs/connections}/index.rst (97%)
create mode 100644
providers/snowflake/docs/connections/pydantic_ai_snowflake.rst
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/hooks/cortex_model.py
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/utils/_rest_auth.py
create mode 100644
providers/snowflake/tests/unit/snowflake/hooks/test_cortex_model.py
create mode 100644
providers/snowflake/tests/unit/snowflake/utils/test__rest_auth.py
create mode 100755 scripts/ci/prek/check_go_sdk_serialization_conformance.py
delete mode 100644 scripts/docker/keys/python-3.10.asc
create mode 100644
scripts/tests/ci/prek/test_check_go_sdk_serialization_conformance.py
create mode 100644 task-sdk/src/airflow/sdk/coordinators/java/_dag_importer.py
create mode 100644 task-sdk/src/airflow/sdk/coordinators/java/_jar_manifest.py
create mode 100644 task-sdk/src/airflow/sdk/coordinators/node/_dag_importer.py
create mode 100644 task-sdk/tests/task_sdk/coordinators/java/_jar_test_utils.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/java/test_dag_importer.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/java/test_jar_manifest.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/node/test_dag_importer.py
create mode 100644 ts-sdk/src/coordinator/trigger-runner.ts
create mode 100644 ts-sdk/src/sdk/trigger-dag-run.ts
create mode 100644 ts-sdk/tests/sdk/branching.test.ts
create mode 100644 ts-sdk/tests/sdk/conditional.test.ts
create mode 100644 ts-sdk/tests/sdk/trigger-dag-run.test.ts