This is an automated email from the ASF dual-hosted git repository.
ashb pushed a change to branch task-loops-stack-7
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 3f2fff32aec fixup! Run loop gates and advance iterations atomically
omit d024008b2fb Run loop gates and advance iterations atomically
omit 2e69b1379a4 fixup! Attribute log, asset-event and asset-state writes
to the task attempt
omit 0784f7ac9f2 Attribute log, asset-event and asset-state writes to the
task attempt
omit 91d8983277a fixup! Give every mapped expansion a region and store its
index as region_index
omit 3b2f13b8cf6 Give every mapped expansion a region and store its index
as region_index
omit adce91a7a9d fixup! Pin loop definitions and carry region coordinates
through task execution
omit 48d3f0ee030 Pin loop definitions and carry region coordinates through
task execution
omit 2cdf74208be fixup! Resolve live producers by region and read their
XCom by attempt
omit 3147be51509 Resolve live producers by region and read their XCom by
attempt
omit 567890819ac fixup! Introduce the (internal/db level) concept of
"dynamic regions" for TIs
omit 1417efb6c1c Introduce the (internal/db level) concept of "dynamic
regions" for TIs
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.
add edf1a0cba79 Introduce the (internal/db level) concept of "dynamic
regions" for TIs
add 2299adfe89c fixup! Introduce the (internal/db level) concept of
"dynamic regions" for TIs
add bee1d736bb6 Resolve live producers by region and read their XCom by
attempt
add 1624bc800ac fixup! Resolve live producers by region and read their
XCom by attempt
add 2ba52a171d3 Pin loop definitions and carry region coordinates through
task execution
add 45978c769fd fixup! Pin loop definitions and carry region coordinates
through task execution
add 45a67b80702 Give every mapped expansion a region and store its index
as region_index
add d3f9ca747a2 fixup! Give every mapped expansion a region and store its
index as region_index
add a6703e1f74b Attribute log, asset-event and asset-state writes to the
task attempt
add 7be9b12e600 fixup! Attribute log, asset-event and asset-state writes
to the task attempt
add 1e7f167a74c Run loop gates and advance iterations atomically
add 2cd460ccf3e fixup! Run loop gates and advance iterations atomically
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 (3f2fff32aec)
\
N -- N -- N refs/heads/task-loops-stack-7 (2cd460ccf3e)
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 +-
.../docs/authoring-and-scheduling/loops.rst | 8 +-
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 +-
.../airflow/example_dags}/example_task_loops.py | 0
.../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 +-
airflow-core/tests/unit/models/test_dagrun.py | 47 +-
.../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 | 10 +
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 | 14 +-
.../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/_internal/loop.py | 11 +-
.../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/definitions/decorators/task_group.py | 39 +-
.../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 +++-
.../task_sdk/definitions/_internal/test_loop.py | 2 +-
.../definitions/_internal/test_templater.py | 4 +-
.../definitions/decorators/test_task_group.py | 87 +-
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 ++------------------
1135 files changed, 23464 insertions(+), 8536 deletions(-)
create mode 100644 airflow-core/newsfragments/73806.improvement.rst
create mode 100644 airflow-core/newsfragments/74151.significant.rst
rename airflow-core/{docs/authoring-and-scheduling/examples =>
src/airflow/example_dags}/example_task_loops.py (100%)
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