This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch jason/java-sdk/pack-dag-sources
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 5286d08a183 Java SDK: Bound the describe run and keep its payload to
the bundle JAR
omit 7f15c4fb056 Java SDK: Pack each native Dag's source file into the
bundle JAR
omit 92be8d18dd8 Java SDK: Record the class that declares each Dag and
describe it on request
omit 2fbc57b7a13 Java SDK: Mark the native Dag capabilities as shipping in
3.4
omit 0354580b7cb Java SDK: Keep one unserializable Dag from failing a whole
bundle's parse
omit f21b4a84c8e Java SDK: Carry a native Dag's call arguments as argument
bindings
omit 67130df14c0 Java SDK: Build a native Dag's timetable the way Python
does
omit 481d4246ef2 Java SDK: Run the serialization conformance check on every
file that steers it
omit b93b2278a24 Java SDK: Check native Dag serialization against Airflow's
omit 1448002f6e0 Java SDK: Write each Dag tag once, as Python does
omit 91f4a8d72f6 Java SDK: Serialize a native Dag's task groups
omit d9a66b4521b Java SDK: Leave out the email flags a Java task cannot act
on
omit 6d2e6414167 Java SDK: Leave config-backed Dag fields for Airflow to
fill in
omit 26126dad366 Test that the conformance check compares Dag params
omit 0458f99e0f4 Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
omit 50b06183ac2 Java SDK: Group a native Dag's tasks with task groups
add 0bffacc8740 Update providers metadata 2026-10-05 (#74315)
add eda8563d983 Keep polling in the BigQuery check triggers while a job is
running (#74305)
add af61379fc14 Include prompt cache token counts in AgentOperator's usage
XCom (#74277)
add 77b21f34c05 Fix Common AI durable retries and tool-approval resumes on
pydantic-ai 2.50+ (#74313)
add dcc9ce6246f Fix Common AI durable retries not replaying tools from a
capability without an id (#74314)
add e25f413ff61 Let the Modal sandbox backend read credentials from a
modal connection (#74302)
add ac147d07ffe Remove `code_mode` from `AgentOperator` in favor of the
`CodeMode` capability (#74312)
add 246e3b231c9 Add `include_traceback` to model-backed retry policies
(#74308)
add d18b831afc2 Show staging-only commits before resetting staging to main
(#74116)
add 84f5e0990a0 TS SDK: Step over an empty nested task group to the group
holding it (#74323)
add 342157f5aed Go SDK: run unit tests with the race detector in CI
(#74215)
add 4329cd68465 Pause v3-4-test automation while it is fast-forwarded for
3.4.0 betas (#74327)
add 8d37613cba5 Guard the Dag Code tab's Monaco grammar exports against
drift (#74246)
add 6038d1156dd Scope audit log rows to a Dag only from the request path
or body (#74232)
add 14960cf4624 Add AIP-85 to the AIP progress tracker registry (#74304)
add 6b6b1fa2d92 Discover executable bundles by footer, not by execute bit
(#74227)
add 4cae02cbee1 Update French (fr) UI translations to 100% coverage
(#74235)
add 6e5f3136b9b Fix dateless dag.test and tasks test destroying unrelated
Dag runs (#73813)
add a13edb47aef Go SDK: add dag.Switch with Case for multi-way branching
(#74321)
add 16813192320 Show provider URI schemes in the Provider Registry (#74284)
add 370606c1065 Fix Dags staying blocked by `max_active_runs` until the
next parse (#73032)
add 0609550c022 Lead the `common.ai` sandbox docs with when to use it and
where each piece runs (#74297)
add 87be0026872 Keep retried task attempts and their data under the
attempt UUID (#74222)
add a6d4ef08dc6 Apply hook_params to deferred dbt Cloud job runs (#74199)
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 a22621f5749 Java SDK: Group a native Dag's tasks with task groups
add 0edd28349c6 Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
add ad904bc4e5a Test that the conformance check compares Dag params
add 87a18bdc381 Java SDK: Leave config-backed Dag fields for Airflow to
fill in
add 3ecf2ccc15c Java SDK: Leave out the email flags a Java task cannot act
on
add 8cdf4246399 Java SDK: Serialize a native Dag's task groups
add d64130dca37 Java SDK: Write each Dag tag once, as Python does
add fb783847eee Java SDK: Check native Dag serialization against Airflow's
add 5a91bc8cacc Java SDK: Run the serialization conformance check on every
file that steers it
add 7d2c5929439 Java SDK: Build a native Dag's timetable the way Python
does
add 93524a3a29e Java SDK: Carry a native Dag's call arguments as argument
bindings
add 141119022bb Java SDK: Keep one unserializable Dag from failing a whole
bundle's parse
add 50f810b3dce Java SDK: Mark the native Dag capabilities as shipping in
3.4
new 25cee1923d9 Java SDK: Record the class that declares each Dag and
describe it on request
new f8eed2da3ea Java SDK: Pack each native Dag's source file into the
bundle JAR
new 2f89e806007 Java SDK: Bound the describe run and keep its payload to
the bundle JAR
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 (5286d08a183)
\
N -- N -- N refs/heads/jason/java-sdk/pack-dag-sources
(2f89e806007)
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.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
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 +-
.codespellignorelines | 1 +
.github/actions/breeze/action.yml | 2 +-
.github/actions/prepare_all_ci_images/action.yml | 4 +-
.github/boring-cyborg.yml | 29 +-
.github/dependabot.yml | 21 +
.github/workflows/additional-ci-image-checks.yml | 8 +-
.github/workflows/airflow-e2e-tests.yml | 2 +-
.github/workflows/automatic-backport.yml | 14 +-
.github/workflows/basic-tests.yml | 6 +
.github/workflows/ci-amd.yml | 5 +
.github/workflows/ci-arm.yml | 5 +
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 2 +-
.../scheduled-upgrade-check-v3-4-test.yml | 9 +-
.github/workflows/ui-e2e-tests.yml | 4 +-
.pre-commit-config.yaml | 31 +-
.readthedocs.yml | 2 +-
Dockerfile | 79 +-
Dockerfile.ci | 81 +-
INSTALL | 6 +-
INTHEWILD.md | 1 +
README.md | 2 +-
airflow-core/.pre-commit-config.yaml | 10 -
.../adr/lang-sdk/0008-control-flow-constructs.md | 10 +-
.../authoring-and-scheduling/language-sdks/go.rst | 106 +-
.../language-sdks/java.rst | 162 +-
.../language-sdks/typescript.rst | 204 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/debug.rst | 2 +-
airflow-core/docs/core-concepts/tasks.rst | 27 +-
airflow-core/docs/extra-packages-ref.rst | 2 +-
airflow-core/docs/howto/set-up-database.rst | 4 +-
airflow-core/docs/howto/usage-cli.rst | 10 +-
...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 +-
airflow-core/docs/migrations-ref.rst | 5 +-
.../vulnerabilities-in-3rd-party-dependencies.rst | 2 +-
airflow-core/docs/start.rst | 6 +-
airflow-core/newsfragments/74151.significant.rst | 17 +
airflow-core/pyproject.toml | 4 +-
airflow-core/src/airflow/api/common/delete_dag.py | 6 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 3 +-
.../src/airflow/api_fastapi/common/db/dag_runs.py | 33 +-
.../api_fastapi/common/db/task_instances.py | 35 +-
.../airflow/api_fastapi/common/parameters/sort.py | 3 +-
.../api_fastapi/core_api/datamodels/ui/dags.py | 20 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 127 ++
.../api_fastapi/core_api/routes/public/assets.py | 3 +-
.../core_api/routes/public/dag_stats.py | 3 +-
.../core_api/routes/public/extra_links.py | 42 +-
.../api_fastapi/core_api/routes/public/hitl.py | 61 +-
.../api_fastapi/core_api/routes/public/log.py | 17 +-
.../core_api/routes/public/task_instances.py | 117 +-
.../core_api/routes/public/task_state_store.py | 4 +-
.../api_fastapi/core_api/routes/public/xcom.py | 166 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 3 +
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 112 +-
.../api_fastapi/core_api/routes/ui/gantt.py | 23 +-
.../src/airflow/api_fastapi/core_api/security.py | 6 +-
.../core_api/services/public/dag_run.py | 22 +-
.../core_api/services/public/task_instances.py | 20 +-
.../src/airflow/api_fastapi/execution_api/app.py | 11 +-
.../execution_api/routes/task_instances.py | 100 +-
.../execution_api/routes/task_state_store.py | 2 +-
.../api_fastapi/execution_api/routes/xcoms.py | 140 +-
.../airflow/api_fastapi/execution_api/security.py | 79 +-
.../api_fastapi/execution_api/versions/__init__.py | 4 +-
.../execution_api/versions/v2026_10_30.py | 4 +-
.../src/airflow/api_fastapi/logging/decorators.py | 22 +-
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 +-
.../src/airflow/jobs/scheduler_job_runner.py | 23 +-
.../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 +-
.../0142_3_4_0_unify_task_attempt_ownership.py | 484 +++++
airflow-core/src/airflow/models/__init__.py | 3 -
airflow-core/src/airflow/models/asset.py | 1 +
airflow-core/src/airflow/models/backfill.py | 43 +-
airflow-core/src/airflow/models/dagrun.py | 66 +-
airflow-core/src/airflow/models/hitl_history.py | 91 -
airflow-core/src/airflow/models/log.py | 10 +-
airflow-core/src/airflow/models/pool.py | 3 +-
.../src/airflow/models/renderedtifields.py | 306 ++-
airflow-core/src/airflow/models/revoked_token.py | 4 +-
airflow-core/src/airflow/models/taskinstance.py | 373 +++-
.../src/airflow/models/taskinstancehistory.py | 225 ---
airflow-core/src/airflow/models/trigger.py | 6 +-
airflow-core/src/airflow/models/xcom.py | 501 +++--
airflow-core/src/airflow/plugins_manager.py | 3 +-
airflow-core/src/airflow/providers_manager.py | 36 +-
.../airflow/serialization/definitions/assets.py | 3 +-
.../serialization/definitions/operatorlink.py | 23 +-
.../airflow/serialization/definitions/xcom_arg.py | 28 +-
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 +-
.../src/airflow/ti_deps/deps/prev_dagrun_dep.py | 4 +
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 | 47 +
.../ui/openapi-gen/requests/services.gen.ts | 39 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 47 +
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 +
.../airflow/ui/public/i18n/locales/fr/admin.json | 18 +-
.../airflow/ui/public/i18n/locales/fr/assets.json | 14 +-
.../airflow/ui/public/i18n/locales/fr/browse.json | 35 +
.../airflow/ui/public/i18n/locales/fr/common.json | 123 +-
.../ui/public/i18n/locales/fr/components.json | 32 +-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 73 +
.../airflow/ui/public/i18n/locales/fr/dags.json | 35 +
.../ui/public/i18n/locales/fr/dashboard.json | 18 +-
.../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 +-
.../MonacoEditor/configureMonaco.test.ts | 44 +
.../src/airflow/ui/src/constants/localStorage.ts | 1 +
.../src/airflow/ui/src/hooks/useAdvancedSearch.ts | 37 +-
.../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 +
airflow-core/src/airflow/utils/db.py | 4 +-
airflow-core/src/airflow/utils/db_cleanup.py | 175 +-
.../src/airflow/utils/log/file_task_handler.py | 24 +-
airflow-core/src/airflow/utils/log/log_reader.py | 11 +-
.../tests/unit/always/test_providers_manager.py | 68 +-
.../tests/unit/api/common/test_delete_dag.py | 47 +-
.../tests/unit/api/common/test_trigger_dag.py | 4 +-
.../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 | 19 +-
airflow-core/tests/unit/api_fastapi/conftest.py | 2 +-
.../core_api/datamodels/test_dag_run.py | 6 +-
.../api_fastapi/core_api/datamodels/test_dags.py | 4 +-
.../core_api/routes/public/test_dag_bundles.py | 8 +-
.../core_api/routes/public/test_dag_run.py | 1 +
.../core_api/routes/public/test_dag_tags.py | 16 +-
.../core_api/routes/public/test_dags.py | 38 +-
.../core_api/routes/public/test_event_logs.py | 4 +-
.../core_api/routes/public/test_extra_links.py | 7 +-
.../core_api/routes/public/test_hitl.py | 76 +-
.../core_api/routes/public/test_import_error.py | 8 +-
.../api_fastapi/core_api/routes/public/test_job.py | 6 +-
.../core_api/routes/public/test_task_instances.py | 255 ++-
.../core_api/routes/public/test_xcom.py | 85 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 214 +-
.../core_api/routes/ui/test_dashboard.py | 20 +
.../unit/api_fastapi/execution_api/test_app.py | 18 +-
.../api_fastapi/execution_api/test_security.py | 352 +++-
.../execution_api/versions/head/test_dags.py | 4 +-
.../versions/head/test_task_instances.py | 185 +-
.../versions/head/test_task_state_store.py | 18 +
.../execution_api/versions/head/test_xcoms.py | 281 +--
.../versions/v2025_04_28/test_xcom.py | 10 +-
.../versions/v2026_10_30/test_task_instances.py | 49 +
.../unit/api_fastapi/logging/test_decorators.py | 52 +
.../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 | 4 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 214 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 5 +-
.../test_0142_unify_task_attempt_ownership.py | 691 +++++++
airflow-core/tests/unit/models/test_asset.py | 32 +
airflow-core/tests/unit/models/test_cleartasks.py | 269 ++-
airflow-core/tests/unit/models/test_dag.py | 39 +-
airflow-core/tests/unit/models/test_dag_version.py | 4 +-
airflow-core/tests/unit/models/test_dagrun.py | 103 +-
airflow-core/tests/unit/models/test_log.py | 48 +
.../tests/unit/models/test_mappedoperator.py | 184 +-
airflow-core/tests/unit/models/test_pool.py | 19 +-
.../tests/unit/models/test_renderedtifields.py | 114 +-
.../tests/unit/models/test_revoked_token.py | 4 +-
airflow-core/tests/unit/models/test_task_data.py | 592 ++++++
.../tests/unit/models/test_taskinstance.py | 527 ++++-
airflow-core/tests/unit/models/test_trigger.py | 47 +-
airflow-core/tests/unit/models/test_xcom.py | 97 +-
.../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 +-
.../tests/unit/plugins/test_plugins_manager.py | 75 +
.../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 | 336 +++-
airflow-core/tests/unit/utils/test_db_cleanup.py | 317 ++-
airflow-core/tests/unit/utils/test_log_handlers.py | 36 +-
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 +-
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 | 58 +-
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 | 6 +-
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 +-
.../airflow_breeze/commands/workflow_commands.py | 23 +-
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 +-
.../src/airflow_breeze/utils/gh_workflow_utils.py | 16 +
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/verification_plan.py | 5 +-
.../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 +-
dev/breeze/tests/test_gh_workflow_utils.py | 31 +
.../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/tests/test_workflow_commands.py | 57 +-
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 | 28 +-
dev/registry/extract_parameters.py | 50 +-
dev/registry/extract_versions.py | 100 +-
dev/registry/pyproject.toml | 6 +-
dev/registry/registry_contract_models.py | 37 +
dev/registry/registry_tools/docs_guides.py | 186 ++
dev/registry/registry_tools/uri_schemes.py | 98 +
dev/registry/tests/test_docs_guides.py | 369 ++++
dev/registry/tests/test_extract_metadata.py | 122 +-
dev/registry/tests/test_extract_parameters.py | 107 +-
dev/registry/tests/test_extract_versions.py | 251 ++-
dev/registry/tests/test_merge_registry_data.py | 2 +-
.../tests/test_registry_contract_models.py | 11 +-
dev/registry/tests/test_uri_schemes.py | 128 ++
dev/retag_docker_images.py | 2 +-
.../src/sphinx_exts/docs_build/package_filter.py | 5 +-
devel-common/src/tests_common/pytest_plugin.py | 20 +-
.../src/tests_common/test_utils/asserts.py | 69 +-
.../tests_common/test_utils/attempt_ownership.py | 159 ++
devel-common/src/tests_common/test_utils/db.py | 12 +-
.../src/tests_common/test_utils/mapping.py | 20 +-
.../src/tests_common/test_utils/taskinstance.py | 14 +
.../tests/unit/tests_common/test_dag_maker.py | 13 +-
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 +-
generated/provider_metadata.json | 10 +
go-sdk/README.md | 60 +-
go-sdk/adr/0008-native-dag-interface.md | 9 +-
go-sdk/airflow/bundle.go | 7 +-
go-sdk/airflow/conformance_test.go | 349 ++++
go-sdk/airflow/dag.go | 164 +-
go-sdk/airflow/enums.go | 11 +-
.../logging/attrs.go => airflow/export_test.go} | 29 +-
go-sdk/airflow/if.go | 24 +-
go-sdk/airflow/if_test.go | 54 +-
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/spec.gen.go | 27 +-
go-sdk/airflow/spec.go | 4 +-
go-sdk/airflow/spec_fields.gen.go | 82 +
go-sdk/airflow/switch.go | 253 +++
go-sdk/airflow/switch_test.go | 583 ++++++
go-sdk/airflow/task_group.go | 52 +-
go-sdk/airflow/task_group_test.go | 139 +-
go-sdk/airflow/task_option.go | 8 +-
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/task.go | 57 +-
go-sdk/internal/bundle/task_test.go | 56 +-
go-sdk/internal/genspec/authoring.go | 45 +-
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/frames.go | 14 +-
go-sdk/pkg/execution/integration_test.go | 75 +-
go-sdk/pkg/execution/task_runner.go | 2 +-
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 | 17 +-
.../amazon/aws/executors/ecs/test_ecs_executor.py | 15 +-
.../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 +-
.../kubernetes/executors/kubernetes_executor.py | 22 +-
.../cncf/kubernetes/kubernetes_helper_functions.py | 6 +-
.../providers/cncf/kubernetes/operators/pod.py | 6 +-
.../cncf/kubernetes/operators/spark_kubernetes.py | 4 +-
.../providers/cncf/kubernetes/triggers/pod.py | 6 +-
.../kubernetes/log_handlers/test_log_handlers.py | 9 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 32 +-
.../cncf/kubernetes/test_template_rendering.py | 11 +-
.../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/capabilities.rst | 6 +-
providers/common/ai/docs/changelog.rst | 10 +
providers/common/ai/docs/code_mode.rst | 32 +-
providers/common/ai/docs/concepts.rst | 2 +-
providers/common/ai/docs/features.rst | 4 +-
providers/common/ai/docs/index.rst | 5 +-
providers/common/ai/docs/installation.rst | 7 +-
providers/common/ai/docs/model_providers.rst | 15 +-
providers/common/ai/docs/operators/agent.rst | 10 +-
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/retry_policies.rst | 99 +-
providers/common/ai/docs/sandbox/backends.rst | 14 +-
providers/common/ai/docs/sandbox/configuration.rst | 8 +-
providers/common/ai/docs/sandbox/index.rst | 431 ++--
providers/common/ai/docs/stability.rst | 4 +-
providers/common/ai/docs/tool_approval.rst | 8 +-
providers/common/ai/docs/toolsets/datafusion.rst | 50 +
providers/common/ai/docs/toolsets/hook.rst | 57 +-
.../common/ai/docs/toolsets/object_storage.rst | 38 +
providers/common/ai/docs/toolsets/skills.rst | 38 +
providers/common/ai/docs/toolsets/sql.rst | 97 +
providers/common/ai/docs/troubleshooting.rst | 10 +-
providers/common/ai/pyproject.toml | 19 +-
.../src/airflow/providers/common/ai/batch/base.py | 4 +-
.../airflow/providers/common/ai/batch/polling.py | 4 +-
.../providers/common/ai/durable/fingerprint.py | 36 +-
.../common/ai/example_dags/example_agent.py | 9 +-
.../common/ai/example_dags/example_agent_skills.py | 29 +
.../example_dags/example_aip_progress_tracker.py | 64 +-
.../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 +-
.../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 +
.../airflow/providers/common/ai/operators/agent.py | 67 +-
.../providers/common/ai/operators/llm_batch.py | 12 +-
.../providers/common/ai/plugins/hitl_review.py | 83 +-
.../airflow/providers/common/ai/policies/retry.py | 56 +-
.../airflow/providers/common/ai/sandbox/modal.py | 80 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 4 +-
.../providers/common/ai/toolsets/object_storage.py | 4 +-
.../providers/common/ai/toolsets/sandbox.py | 3 +-
.../providers/common/ai/utils/hitl_review.py | 4 +-
.../airflow/providers/common/ai/utils/logging.py | 2 +
.../src/airflow/providers/common/ai/utils/usage.py | 7 +-
.../providers/common/ai/utils/usage_budget.py | 12 +-
.../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 | 91 +-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 9 -
.../tests/unit/common/ai/operators/test_agent.py | 150 +-
.../ai/operators/test_agent_tool_approval.py | 1 -
.../ai/operators/test_llamaindex_retrieval.py | 13 -
.../unit/common/ai/plugins/test_hitl_review.py | 71 +-
.../ai/tests/unit/common/ai/policies/test_retry.py | 116 +-
.../ai/tests/unit/common/ai/sandbox/fake_modal.py | 47 +-
.../ai/tests/unit/common/ai/sandbox/test_modal.py | 148 +-
.../tests/unit/common/ai/utils/test_hitl_review.py | 6 +-
.../ai/tests/unit/common/ai/utils/test_logging.py | 12 +-
.../unit/common/ai/utils/test_toolset_base.py | 6 +-
.../ai/tests/unit/common/ai/utils/test_usage.py | 6 +-
.../unit/common/ai/utils/test_usage_budget.py | 42 +
providers/common/compat/README.rst | 2 +-
providers/common/compat/pyproject.toml | 3 +-
.../providers/common/compat/version_compat.py | 2 +
providers/common/dataquality/pyproject.toml | 3 +-
providers/common/io/README.rst | 2 +-
providers/common/io/pyproject.toml | 3 +-
.../io/tests/unit/common/io/xcom/test_backend.py | 62 +-
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 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 1 +
.../tests/unit/dbt/cloud/operators/test_dbt.py | 36 +
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 +-
.../providers/edge3/executors/edge_executor.py | 7 +-
.../unit/edge3/executors/test_edge_executor.py | 2 +-
.../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/cloud/triggers/bigquery.py | 34 +-
.../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 +-
.../unit/google/cloud/triggers/test_bigquery.py | 121 ++
.../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/operators/test_weekday.py | 8 +-
.../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/.eleventy.js | 37 +
registry/AGENTS.md | 33 +
registry/README.md | 2 +-
registry/src/css/main.css | 87 +
registry/src/provider-version.njk | 34 +
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 | 163 ++
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_ti_vs_tis_attributes.py | 77 -
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/check_xcom_model_columns.py | 141 ++
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/testing/run_unit_tests.sh | 2 +-
scripts/ci/verify_helm_chart_package.py | 2 +-
scripts/cov/core_coverage.py | 1 -
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 | 13 +-
shared/providers_discovery/pyproject.toml | 1 -
.../providers_discovery/providers_discovery.py | 5 +
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/docs/executable-bundle-spec.rst | 19 +-
task-sdk/pyproject.toml | 7 +-
task-sdk/src/airflow/sdk/bases/operator.py | 48 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 2 +-
.../src/airflow/sdk/coordinators/_dag_importer.py | 5 +-
.../src/airflow/sdk/coordinators/_subprocess.py | 161 +-
.../sdk/coordinators/executable/coordinator.py | 50 +-
.../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 | 22 +-
.../sdk/execution_time/callback_supervisor.py | 3 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 7 +-
.../src/airflow/sdk/execution_time/coordinator.py | 21 +-
.../src/airflow/sdk/execution_time/supervisor.py | 128 +-
.../src/airflow/sdk/execution_time/task_runner.py | 32 +-
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/tests/task_sdk/bases/test_xcom.py | 16 +
.../coordinators/executable/test_coordinator.py | 80 +-
.../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 | 296 ++-
.../task_sdk/execution_time/test_task_runner.py | 14 +-
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 | 59 +-
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/coordinator/serde.test.ts | 42 +
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 | 2124 ++------------------
1245 files changed, 32633 insertions(+), 10987 deletions(-)
create mode 100644 airflow-core/newsfragments/74151.significant.rst
create mode 100644
airflow-core/src/airflow/migrations/versions/0142_3_4_0_unify_task_attempt_ownership.py
delete mode 100644 airflow-core/src/airflow/models/hitl_history.py
delete mode 100644 airflow-core/src/airflow/models/taskinstancehistory.py
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/components/MonacoEditor/configureMonaco.test.ts
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-core/tests/unit/migrations/test_0142_unify_task_attempt_ownership.py
create mode 100644 airflow-core/tests/unit/models/test_task_data.py
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/registry_tools/uri_schemes.py
create mode 100644 dev/registry/tests/test_docs_guides.py
create mode 100644 dev/registry/tests/test_uri_schemes.py
create mode 100644
devel-common/src/tests_common/test_utils/attempt_ownership.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/airflow/switch.go
create mode 100644 go-sdk/airflow/switch_test.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
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 100755 scripts/ci/prek/check_ti_vs_tis_attributes.py
create mode 100644 scripts/ci/prek/check_xcom_model_columns.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