This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a change to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 1148619b8b0 [v3-3-test] Add shared_stream_cohort_grace_period to
reduce missed events on triggerer restart (#68888) (#68931)
discard 50b6c1e23bc [v3-3-test] Add partition clear support to REST API
matching the CLI (#68702) (#68907)
omit b74cbe28135 [v3-3-test] Propagate `partition_date` to consumers of
partitioned assets (#67285) (#68892)
omit 4c68c073d8e [v3-3-test] Fix partitioned backfill widening a sub-day
window to the whole day (#68718) (#68881)
omit 5dc7fec3be4 [v3-3-test] Complete Taiwanese Mandarin translation
(#68870) (#68877)
omit a647d068fd6 [v3-3-test] Remove obsolete AIP-76 partition-date storage
TODOs (#68703) (#68866)
omit 6e500b3c65b [v3-3-test] Allow custom partition Window subclasses via
plugin registry (#68717) (#68836)
omit 272115cea21 [v3-3-test] Propagate resolved task log level to language
SDK runtimes (#68712) (#68825)
omit 13d079f1fe0 [v3-3-test] Fix runtime-partition example Dags using
unreachable schedules (#68719) (#68803)
omit 5ab070da58a [v3-3-test] Add team_name tag to dag processor metrics for
multi-team deployments (#68761)
omit 2b2f71f98b8 [v3-3-test] Add team_name tag to asset metrics for
multi-team deployments (#68762)
omit 6a2ba8fdb82 [v3-3-test] Rename misleading last_automated_run param to
reference_run (#68714) (#68753)
omit 96b5612c750 [v3-3-test] Update multi-team docs for the 3.3 release
(#68728) (#68733)
omit 31bb38d8747 [v3-3-test] Add segment fan-out example to asset partition
example Dag (#68722) (#68737)
omit a9fd5b7a24d [v3-3-test] UI: Fix inconsistent padding between Dag Runs
and Task Instances list views (#68689) (#68692)
omit 2102562d8ed [v3-3-test] Populate partition_date when manually
triggering partitioned Dags (#68458) (#68690)
omit 4ed94096c88 Percent-encode API client path params for keys with
slashes (#68667) (#68669)
omit d5c1a2274a6 [v3-3-test] Fix the gap of Taiwanese Mandarin translation
(#68668) (#68695)
omit 75d69a2ac77 [v3-3-test] Add wait policy examples to asset partition
example (#68658) (#68691)
omit 8127d350b27 Enforce pool team ownership in scheduling loop (#68684)
omit 2d36ac2b430 [v3-3-test] Fix triggerer crash when trigger subclass does
not call `super().__init__()` (#68636) (#68680)
omit 936c8b80be5 Add 3.3.0 release notes
omit 92977bcc8c7 Update version to 3.3.0
omit 30f28e75135 Update default branches for 3-3
add c5bbd4b087a Instruct agents to reduce direct AirflowException usage
(#68656)
add 272904f4c03 prepare-providers-doc skill: batch classification to cut
sub-agents (#68653)
add 844a892cb99 Bump `clickhouse-connect>=1.3.0` (#68400)
add 9140ce5aee1 Percent-encode API client path params for keys with
slashes (#68667)
add bf590ccd179 UI E2E: Clarify HITL e2e helper parameter name and error
message (#68646)
add 3d0fb9f8993 docs: add wait policy examples to asset partition example
(#68658)
add bd9270d5441 Fix bulk create+overwrite silently resetting unset fields
on pools and connections (#68645)
add 6b41214e395 Enforce pool team ownership in scheduling loop (#68649)
add 674544c8918 Add openlineage system tests for missing use cases (#68664)
add b6bf6a83b51 UI: Fix misleading Calendar Total Runs coloring behavior
(#67595)
add fa273d83075 Fix triggerer crash when trigger subclass does not call
`super().__init__()` (#68636)
add cf2d0475312 Bump eslint (#68681)
add 88b89283722 Add 'classify-provider-changes' breeze command for
deterministic change classification (#68215)
add 2746dcb1a24 Fix mypy errors for task_instance access in provider
triggers (#68685)
add 57593bb1881 Add code mode (Monty sandbox) to common.ai AgentOperator
(#68407)
add db26df7d165 fix: Verify durable cached agent steps match the request
before replay (#68372)
add db9fa4289fe Populate partition_date when manually triggering
partitioned Dags (#68458)
add d9b363c630e UI: Fix inconsistent padding between Dag Runs and Task
Instances list views (#68689)
add 8050e7c7297 Fix the gap of Taiwanese Mandarin translation (#68668)
add 7cc1d693b7e Add team_name tag to remaining multi-team metrics (#68601)
add 0508dea89db Fix Databricks operators with templated json payloads
(#68519)
add 9928bb3292e Use async versions of CertificateCredential and
ClientSecretCredential in KiotaRequestAdapterHook (#68375)
add 4d5046d78ce Adding example dag for task state store with mapped tasks
(#68670)
add 50271018585 Fixed "AttributeError: 'NoneType' object has no attribute
'close'" for SmtpHook (#62409)
add 71532401a01 Small operator improvements in openlineage system tests
(#68677)
add c59f4cd8bb7 Fix TaskSDK swallowing errors when Variable.set() or
Variable.delete() fails (#68542)
add 91ba4a23a89 Fix fab deserialize user session leak (#68100)
add 59fc9e284dd Skip asset-change registration for tasks with no outlets
(#68687)
add aa0609f0867 Add team_name tag to dag processor metrics for multi-team
deployments (#68599)
add 8b46c346ed8 Add team_name tag to asset metrics for multi-team
deployments (#68367)
add d7d84b46d81 Indent dag-run span TODO comment continuation lines
(#68643)
add be44ad1ac6c Make head sampling possible in airflow (#68591)
add 9c4908019a3 Add Ray constraints for Python 3.14 in Google provider
(#68710)
add 531bfab9dee Add `message_history` to `AgentOperator` for multi-turn
agent sessions (#68648)
add b237fd02d25 Update multi-team docs for the 3.3 release (#68728)
add 583e54fc65f Add segment fan-out example to asset partition example Dag
(#68722)
add 0236c5775db Prepare provider documentation 2026-06-16 (#68642)
add ddb63a4a1a1 Resolve common.ai '# use next version' pin to
common-compat 1.15.0 (#68740)
add 7e7e4a95e0c Add update-providers-next-version step to provider docs
skill (#68739)
add d74fbff4e32 Apply `rerun_with_latest_version` to TriggerDagRunOperator
reruns (#67273)
add d445240be7d Fix `RecursionError` in `common.compat` hook lineage
`add_extra polyfill` (#68735)
add 6f623854097 Fix flaky AwsTaskLogFetcher tests caused by global
Event.is_set mock (#68746)
add 3fc2f02fa8b Fix GlueJobHook failing to update a Glue job that has tags
(#68711)
add bb5d903fa8a Rename misleading last_automated_run param to
reference_run (#68714)
add 832ecf89a36 Document breaking-change changelog notes in provider docs
skill (#68738)
add 7a21a3e9c56 Add async XCom accessors for async tasks (#68299)
add 1e7cc8ed37d Bump the uv-dependency-updates group in /dev/breeze with 5
updates (#68764)
add fe3ad5f1191 Add regression tests for pools API with unlimited (-1)
slots (#68773)
add 5a9e6e07bfd Instruct AI agents not to tag individuals in PR/issue
comments (#68686)
add a74c45436c0 List related commits in release issue for new providers
(#68755)
add 5bc8796e3a0 Run standard venv operator tests DB-free so they
parallelize under xdist (#68533)
add ab68720c679 Enforce ti:self scope on
/execution/task-reschedules/{ti}/start_date (#67628)
add 191b04f6023 Improve local setup documentation (#67247)
add db6103c0acd Propagate resolved task log level to language SDK runtimes
(#68712)
add e17239c687d Hide 'Suggest a change' link on autoapi pages (#16654)
(#68637)
add 75f7fcd2e04 Fix runtime-partition example Dags using unreachable
schedules (#68719)
add 11f62288f8a Add v3-3-test to CI, dependabot, backport, and fork-sync
configuration (#68673)
add 2b719056cc5 AIP-103: Passing `AssetStateStoreAccessors` through to
`BaseEventTrigger` (#67839)
add b44905bf4e5 Fix typo in operators.rst documentation (#67634)
add 842f8c28d3a Update number of callback types from six to five (#67871)
add 15561a3f11a Document Airflow 3 UI browser requirements (#68313)
add d253b2226d0 Fix typos and wording in docs README (#66950)
add 3e658107181 docs: add automated remediation guardrails to retry docs
(#67705)
add d09cfa8d3b5 Refactor Teradata provider tests to remove legacy unittest
imports (#68190)
add a527de7aba6 Agent skills for Java SDK and new language SDK (#68603)
add 3ae8c6a07e2 [main] Upgrade important CI environment (#68560)
add 7437b7d5670 Fix potentially misleading comment on task state store
model (#68824)
add 5e99f33a416 Remove obsolete AIP-76 partition-date storage TODOs
(#68703)
add b9cc2224b4b Fix task state store custom expiry datetime missing
timezone on save (#68823)
add 47dab8b8c09 Allow custom partition Window subclasses via plugin
registry (#68717)
add 5fe059fb881 Added asynchronous aget_hook method to BaseHook (#68506)
add f24c5b0bc79 Implement SLF4Jm JUL, and Log4J2 providers for Java SDK
(#68725)
add 35ae462ca4d Bump the fab-ui-package-updates group across 1 directory
with 4 updates (#68804)
add 5579562ff89 Bump eslint-plugin-unicorn (#68812)
add 1fb77d1d104 Cache bundle-to-team name lookups in dag processor manager
(#68730)
add 4824280c895 Support `extra` field for Coordinator (#68694)
add 2d8b40f3ae4 Surface conflict message for constraints-version-check
(#68671)
add 92aaa9a5223 Remove mistakenly added
generated/provider_dependencies.json* (#68801)
add a52be75711a Do not leak threads from InProcessExecutionAPI (#68840)
add 40d8c505524 UI: Persist dashboard alert collapse state and clamp long
alerts (#68329)
add 5b77a71b344 Better warning visibility for invalid JSON value when
editing variables (#68268)
add c76162a8c46 Bump the auth-ui-package-updates group across 1 directory
with 15 updates (#68808)
add 51a4d81b7d8 Exclude agent tooling (.agents, agents.md) from source
release tarball (#68851)
add 216ac75cd6f Wrap form data and await form (#68857)
add 9dcbe41dd4c Remove stray instruction on example (#68841)
add 4fcb6a0ce22 Update providers metadata 2026-06-23 (#68862)
add b788d83d215 Adds Airflow 3 compatibility in `try_adopt_task_instances`
for BatchExec (#68027)
add 3b9d2a22211 Scope XCom Execution API to teams in multi-team mode
(#68850)
add ab4c0978a76 Fix in-process Execution API loop stopped while transport
still in use (#68865)
add 918124cb417 Fix Cloudwatch remote logging crash API server if
ResourceNotFoundException (#68781)
add b69b189d994 Fix triggerer log server port configuration key (#67785)
add 0e9901711d7 Fix AwsBatchExecutor test_try_adopt_task_instances after
TaskInstanceDTO hostname requirement (#68871)
add 79ecabc7418 Document team-scoped XCom (#68867)
add 24d5b834c08 Complete Taiwanese Mandarin translation (#68870)
add 7ce8504b022 Remove leftovers from #45184
clear_not_launched_queued_tasks removal (#68698)
add 15b9666071f Fix partitioned backfill widening a sub-day window to the
whole day (#68718)
add 8095abb5718 Fetch deadline callback context via Execution API at
runtime (#66608)
add a0d7ae6070b Only log task state cleanup for configured worker state
store backends (#68878)
add 16e1abaaeac Improve namespace logging level config parsing (#68839)
add fb51c4d9bd3 Add decorator to mark task as returning dag result (#64563)
add 9eea9a02193 Add OpenLineage Spark conf injection to
DatabricksSubmitRunOperator (#67894)
add 44ac115937a Add a standard toggle for resumability to
ResumableJobMixin (#68623)
add aa28f27f12d Remove all_map_indices from task_state_store.clear() in
context (#68880)
add 61e2f22d8a2 Document what happens when task without inlets / outlets
accesses `asset_state_store` (#68886)
add 6e45ebb5afe Fix incorrect method and class names in task and asset
state store docs (#68887)
add e9af904a099 Propagate `partition_date` to consumers of partitioned
assets (#67285)
add a67d3f98cbc Create test case to verify mapped task as result (#68550)
add e3d0c6ccee1 Close German Translation Gaps 2026-06-12 (#68356)
add e7619316995 Fix KubernetesExecutor scheduler crash from unpicklable
pod_override (#68831)
add 92290dbd64f Restore mp_start_method config and add
mp_forkserver_preload config (#68875)
add e0645d564be Make cncf.kubernetes model deserialization picklable
in-cluster (#68848)
add 723500b2776 Fix mypy type errors in DynamoDB example system test
(#68849)
add 4f038b6d11b i18n(ko): add missing translations(Jun 16) (#68600)
add fdb7265ad1e Fix asset manager team-metric test failing on rerun
(#68891)
add a0805a808e3 Add partition clear support to REST API matching the CLI
(#68702)
add 8d3ccae1610 Fix dashboard alert clamping and collapse controls (#68893)
add 609656f7d35 Revert "Fetch deadline callback context via Execution API
at runtime (#66608)" (#68909)
add aee4240161d Forward run-identity attributes to the trace sampler
(#68592)
add 5a36ec1e72e Convert CLI Deprecations to maintainer idetifiable only
(#68726)
add ce72c02c5a0 Add token scope tests for Execution API routes. (#68918)
add 6877aea6353 Revert airflowctl dependency from airflow-core (#68856)
add 3d2a635c6ed Add shared_stream_cohort_grace_period to reduce missed
events on triggerer restart (#68888)
add 771aa902df0 Add news fragment and documentation for the result
decorator (#68928)
new fb009aca041 Update default branches for 3-3
new 2b8fe840949 Update version to 3.3.0
new b63261b5694 Add 3.3.0 release notes
new 133ea2b7979 update release notes for 3.3.0b2
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 (1148619b8b0)
\
N -- N -- N refs/heads/v3-3-test (133ea2b7979)
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 4 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:
.agents/skills/airflow-java-sdk/SKILL.md | 134 +
.agents/skills/airflow-new-sdk/SKILL.md | 160 ++
.../prepare-providers-documentation/SKILL.md | 244 +-
.gitattributes | 2 +
.github/boring-cyborg.yml | 18 +
.github/dependabot.yml | 14 +-
.github/instructions/code-review.instructions.md | 2 +-
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/milestone-tag-assistant.yml | 1 +
.pre-commit-config.yaml | 9 +-
.rat-excludes | 5 +-
AGENTS.md | 18 +-
Dockerfile | 2 +-
Dockerfile.ci | 4 +-
INSTALLING.md | 12 +-
RELEASE_NOTES.rst | 64 +-
.../logging-monitoring/callbacks.rst | 2 +-
.../logging-monitoring/logging-tasks.rst | 2 +-
.../task-and-asset-state-store.rst | 18 +-
.../docs/authoring-and-scheduling/dag-result.rst | 140 +
.../docs/authoring-and-scheduling/index.rst | 1 +
.../language-sdks/index.rst | 11 +-
.../language-sdks/java.rst | 153 ++
airflow-core/docs/best-practices.rst | 2 +-
.../docs/core-concepts/asset-state-store.rst | 24 +
airflow-core/docs/core-concepts/multi-team.rst | 15 +
.../docs/core-concepts/task-state-store.rst | 19 +-
.../docs/howto/dag-level-retry-via-callback.rst | 19 +
airflow-core/docs/public-airflow-interface.rst | 3 +-
airflow-core/docs/security/security_model.rst | 7 +-
airflow-core/docs/ui.rst | 5 +
airflow-core/newsfragments/67285.feature.rst | 1 -
airflow-core/newsfragments/68888.feature.rst | 1 -
airflow-core/pyproject.toml | 2 -
.../src/airflow/api/client/__init__.py | 10 +-
.../src/airflow/api/client/local_client.py | 107 +
.../api_fastapi/auth/managers/base_auth_manager.py | 16 -
.../auth/managers/simple/simple_auth_manager.py | 3 -
.../auth/managers/simple/ui/package.json | 32 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1973 +++++++-------
.../src/airflow/api_fastapi/common/dagbag.py | 25 +
.../core_api/routes/public/backfills.py | 2 +-
.../core_api/routes/public/task_instances.py | 2 +-
.../api_fastapi/core_api/services/public/common.py | 26 -
.../core_api/services/public/connections.py | 7 +-
.../core_api/services/public/dag_run.py | 16 +-
.../api_fastapi/core_api/services/public/pools.py | 9 +-
.../src/airflow/api_fastapi/execution_api/app.py | 48 +-
.../api_fastapi/execution_api/routes/dag_runs.py | 5 +-
.../execution_api/routes/task_instances.py | 10 +
.../execution_api/routes/task_reschedules.py | 7 +-
.../execution_api/routes/task_state_store.py | 24 +-
.../api_fastapi/execution_api/routes/xcoms.py | 59 +-
.../airflow/api_fastapi/execution_api/security.py | 15 +
airflow-core/src/airflow/cli/api_client.py | 129 -
.../src/airflow/cli/commands/asset_command.py | 66 +-
.../src/airflow/cli/commands/backfill_command.py | 2 +-
.../src/airflow/cli/commands/dag_command.py | 60 +-
.../airflow/cli/commands/dag_processor_command.py | 2 +
.../src/airflow/cli/commands/pool_command.py | 99 +-
.../src/airflow/cli/commands/scheduler_command.py | 2 +
.../src/airflow/cli/commands/triggerer_command.py | 2 +
airflow-core/src/airflow/cli/utils.py | 29 +-
.../src/airflow/config_templates/config.yml | 52 +-
airflow-core/src/airflow/dag_processing/manager.py | 69 +-
.../example_task_state_store_mapped.py | 59 +
.../src/airflow/executors/local_executor.py | 6 +-
.../src/airflow/executors/workloads/trigger.py | 3 +
.../src/airflow/jobs/triggerer_job_runner.py | 23 +-
airflow-core/src/airflow/models/callback.py | 12 +-
airflow-core/src/airflow/models/dagbundle.py | 17 +
airflow-core/src/airflow/models/dagrun.py | 50 +-
.../src/airflow/models/task_state_store.py | 9 +-
airflow-core/src/airflow/models/taskinstance.py | 15 +-
.../airflow/serialization/serialized_objects.py | 5 +-
airflow-core/src/airflow/triggers/base.py | 7 +
.../airflow/ui/public/i18n/locales/de/assets.json | 17 +
.../airflow/ui/public/i18n/locales/de/common.json | 11 +-
.../ui/public/i18n/locales/de/components.json | 1 +
.../src/airflow/ui/public/i18n/locales/de/dag.json | 22 +
.../ui/public/i18n/locales/en/dashboard.json | 6 +
.../airflow/ui/public/i18n/locales/ko/assets.json | 17 +
.../airflow/ui/public/i18n/locales/ko/common.json | 18 +-
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 26 +-
.../ui/public/i18n/locales/ko/dashboard.json | 12 +
.../src/airflow/ui/src/constants/localStorage.ts | 1 +
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 10 +-
.../ui/src/pages/Dag/Calendar/CalendarLegend.tsx | 109 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 1 +
.../src/pages/Dag/Calendar/calendarUtils.test.ts | 134 +-
.../ui/src/pages/Dag/Calendar/calendarUtils.ts | 164 +-
.../src/airflow/ui/src/pages/Dag/Calendar/types.ts | 4 +-
.../ui/src/pages/Dashboard/AlertContent.test.tsx | 142 +
.../ui/src/pages/Dashboard/AlertContent.tsx | 109 +
.../ui/src/pages/Dashboard/Dashboard.test.tsx | 153 ++
.../airflow/ui/src/pages/Dashboard/Dashboard.tsx | 84 +-
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 13 +-
.../Variables/ManageVariable/VariableForm.test.tsx | 123 +
.../Variables/ManageVariable/VariableForm.tsx | 7 +-
.../ui/tests/e2e/components/HITLReviewDrawer.ts | 4 +-
.../ui/tests/e2e/components/HITLReviewModal.ts | 4 +-
.../src/airflow/ui/tests/e2e/pages/HomePage.ts | 27 +
.../ui/tests/e2e/specs/home-dashboard.spec.ts | 36 +
.../src/airflow/ui/tests/e2e/utils/api/hitl.ts | 2 +-
airflow-core/src/airflow/utils/email.py | 4 +-
.../src/airflow/utils/log/file_task_handler.py | 13 +-
airflow-core/src/airflow/utils/process_utils.py | 65 +
airflow-core/src/airflow/utils/sqlalchemy.py | 26 +-
.../core_api/routes/public/test_connections.py | 34 +
.../core_api/routes/public/test_dag_run.py | 45 +-
.../core_api/routes/public/test_pools.py | 99 +
.../unit/api_fastapi/execution_api/test_app.py | 76 +
.../execution_api/test_token_scope_boundaries.py | 100 +
.../execution_api/versions/head/test_dag_runs.py | 31 +
.../versions/head/test_task_instances.py | 16 +
.../versions/head/test_task_state_store.py | 19 -
.../execution_api/versions/head/test_xcoms.py | 163 +-
airflow-core/tests/unit/assets/test_manager.py | 10 +
.../tests/unit/cli/commands/test_asset_command.py | 146 +-
.../unit/cli/commands/test_command_deprecations.py | 64 +-
.../tests/unit/cli/commands/test_dag_command.py | 364 +--
.../tests/unit/cli/commands/test_pool_command.py | 350 +--
airflow-core/tests/unit/cli/conftest.py | 20 -
airflow-core/tests/unit/cli/test_api_client.py | 140 -
airflow-core/tests/unit/cli/test_utils.py | 20 +-
.../tests/unit/dag_processing/test_manager.py | 89 +-
.../tests/unit/executors/test_local_executor.py | 17 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 354 ++-
airflow-core/tests/unit/models/test_callback.py | 45 +
airflow-core/tests/unit/models/test_dagbundle.py | 17 +
airflow-core/tests/unit/models/test_dagrun.py | 61 +-
.../tests/unit/models/test_taskinstance.py | 56 +
.../unit/serialization/test_dag_serialization.py | 4 +
.../unit/serialization/test_serialized_objects.py | 36 +-
.../tests/unit/triggers/test_base_trigger.py | 25 +
airflow-core/tests/unit/utils/test_email.py | 6 +-
airflow-core/tests/unit/utils/test_log_handlers.py | 100 +
.../tests/unit/utils/test_process_utils.py | 90 +
airflow-core/tests/unit/utils/test_sqlalchemy.py | 36 +-
.../basic_tests/test_airflowctl_imports.py | 38 -
.../java_sdk_tests/test_java_sdk_dag.py | 75 +
contributing-docs/30_new_language_sdk.rst | 53 +-
dev/README_RELEASE_PROVIDERS.md | 23 +
dev/breeze/doc/09_release_management_tasks.rst | 19 +
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 29 +-
.../doc/images/output_release-management.svg | 96 +-
.../doc/images/output_release-management.txt | 2 +-
...elease-management_classify-provider-changes.svg | 200 ++
...elease-management_classify-provider-changes.txt | 1 +
.../output_setup_check-all-params-in-groups.svg | 10 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 80 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/pyproject.toml | 2 +-
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 187 +-
.../commands/release_management_commands_config.py | 19 +
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../prepare_providers/provider_documentation.py | 44 +
.../provider_issue_TEMPLATE.md.jinja2 | 3 +
.../utils/constraints_version_check.py | 227 +-
.../src/airflow_breeze/utils/selective_checks.py | 8 -
dev/breeze/tests/test_provider_documentation.py | 42 +
dev/breeze/tests/test_provider_issue_template.py | 56 +
.../tests/test_release_management_commands.py | 65 +
dev/breeze/uv.lock | 468 ++--
dev/sync_fork.sh | 2 +-
devel-common/pyproject.toml | 4 +-
.../sphinx_templates/suggest_change_button.html | 16 +-
devel-common/src/docs/utils/conf_constants.py | 1 +
.../src/sphinx_exts/suggest_change_button.py | 54 +
.../tests_common/test_utils/in_process_taskrun.py | 145 ++
docs/README.md | 20 +-
docs/spelling_wordlist.txt | 4 +
generated/provider_dependencies.json | 2042 ---------------
generated/provider_dependencies.json.sha256sum | 1 -
generated/provider_metadata.json | 118 +
java-sdk/README.md | 162 +-
java-sdk/bom/build.gradle.kts | 5 +-
java-sdk/example/build.gradle | 2 +-
.../apache/airflow/example/AnnotationExample.java | 26 +-
.../airflow/example/InterfaceExampleBuilder.java | 25 +-
java-sdk/gradle.properties | 2 +
java-sdk/{processor => jpl}/build.gradle.kts | 16 +-
.../airflow/sdk/jpl/AirflowSystemLoggerFinder.kt | 109 +
.../services/java.lang.System$LoggerFinder | 1 +
.../airflow/sdk/jpl/AirflowSystemLoggerTest.kt | 141 +
java-sdk/{processor => jul}/build.gradle.kts | 19 +-
.../apache/airflow/sdk/jul/AirflowJulHandler.kt | 95 +
.../airflow/sdk/jul/AirflowJulHandlerTest.kt | 124 +
java-sdk/{processor => log4j2}/build.gradle.kts | 35 +-
.../airflow/sdk/log4j/AirflowLog4jAppender.java | 99 +
.../airflow/sdk/log4j/AirflowLog4jAppenderTest.kt | 121 +
java-sdk/sdk/build.gradle.kts | 4 +
.../main/kotlin/org/apache/airflow/sdk/Server.kt | 22 +-
.../org/apache/airflow/sdk/execution/Logger.kt | 174 +-
.../org/apache/airflow/sdk/execution/LogTest.kt | 89 +
.../airflow/sdk/execution/NamespaceLevelsTest.kt | 134 +
.../org/apache/airflow/sdk/execution/LogCapture.kt | 45 +-
java-sdk/settings.gradle.kts | 2 +-
java-sdk/slf4j/build.gradle.kts | 87 +
.../slf4j/gradle.properties | 3 +-
.../airflow/sdk/slf4j/AirflowSlf4jProvider.kt | 110 +
.../services/org.slf4j.spi.SLF4JServiceProvider | 1 +
.../airflow/sdk/slf4j/AirflowSlf4jLoggerTest.kt | 121 +
.../test_kubernetes_pod_operator.py | 2 +-
providers/.last_release_date.txt | 2 +-
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 11 +
providers/alibaba/docs/index.rst | 6 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
providers/amazon/README.rst | 6 +-
providers/amazon/docs/changelog.rst | 27 +
providers/amazon/docs/index.rst | 6 +-
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/auth_manager/routes/login.py | 18 +-
.../amazon/aws/executors/batch/batch_executor.py | 47 +-
.../src/airflow/providers/amazon/aws/hooks/glue.py | 32 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 26 +-
.../airflow/providers/amazon/aws/triggers/emr.py | 19 +-
.../tests/system/amazon/aws/example_dynamodb.py | 11 +-
.../aws/executors/batch/test_batch_executor.py | 88 +-
.../tests/unit/amazon/aws/hooks/test_glue.py | 69 +
.../amazon/aws/log/test_cloudwatch_task_handler.py | 28 +
.../unit/amazon/aws/utils/test_task_log_fetcher.py | 18 +-
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 11 +
providers/apache/hdfs/docs/index.rst | 6 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
providers/apache/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 11 +
providers/apache/livy/docs/index.rst | 6 +-
providers/apache/livy/provider.yaml | 3 +-
providers/apache/livy/pyproject.toml | 6 +-
.../src/airflow/providers/apache/livy/__init__.py | 2 +-
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 15 +
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/docs/operators.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../apache/spark/operators/spark_submit.py | 49 +-
.../apache/spark/operators/test_spark_submit.py | 41 +-
providers/celery/docs/.latest-doc-only-change.txt | 2 +-
providers/clickhousedb/README.rst | 2 +-
providers/clickhousedb/docs/commits.rst | 2 +-
providers/clickhousedb/docs/index.rst | 2 +-
providers/clickhousedb/pyproject.toml | 2 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 20 +
providers/cncf/kubernetes/docs/index.rst | 6 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../backcompat/backwards_compat_converters.py | 4 +-
.../kubernetes/executors/kubernetes_executor.py | 4 -
.../providers/cncf/kubernetes/operators/job.py | 4 +-
.../providers/cncf/kubernetes/pod_generator.py | 9 +-
.../providers/cncf/kubernetes/triggers/pod.py | 19 +-
.../cncf/kubernetes/utils/xcom_sidecar.py | 2 +-
.../system/cncf/kubernetes/example_kubernetes.py | 2 +-
.../cncf/kubernetes/example_kubernetes_async.py | 2 +-
.../backcompat/test_backwards_compat_converters.py | 26 +-
.../unit/cncf/kubernetes/operators/test_job.py | 39 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 6 +-
.../unit/cncf/kubernetes/test_pod_generator.py | 30 +-
providers/common/ai/README.rst | 9 +-
providers/common/ai/docs/changelog.rst | 57 +
providers/common/ai/docs/index.rst | 8 +-
providers/common/ai/docs/operators/agent.rst | 136 +-
providers/common/ai/provider.yaml | 3 +-
providers/common/ai/pyproject.toml | 13 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../providers/common/ai/durable/caching_model.py | 50 +-
.../providers/common/ai/durable/caching_toolset.py | 33 +-
.../providers/common/ai/durable/fingerprint.py | 162 ++
.../providers/common/ai/durable/step_counter.py | 4 +-
.../airflow/providers/common/ai/durable/storage.py | 77 +-
.../common/ai/example_dags/example_agent.py | 81 +-
.../airflow/providers/common/ai/operators/agent.py | 127 +-
.../airflow/providers/common/ai/toolsets/hook.py | 7 +
.../airflow/providers/common/ai/toolsets/sql.py | 4 +
.../providers/common/ai/utils/tool_definition.py | 44 +
.../unit/common/ai/durable/test_caching_model.py | 94 +-
.../unit/common/ai/durable/test_caching_toolset.py | 78 +-
.../unit/common/ai/durable/test_fingerprint.py | 212 ++
.../common/ai/durable/test_replay_verification.py | 138 +
.../tests/unit/common/ai/durable/test_storage.py | 135 +-
.../tests/unit/common/ai/operators/test_agent.py | 229 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 11 +
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 11 +
.../unit/common/ai/utils/test_tool_definition.py | 21 +-
.../providers/common/compat/lineage/hook.py | 33 +-
.../tests/unit/common/compat/lineage/test_hook.py | 108 +-
providers/databricks/README.rst | 6 +-
providers/databricks/docs/changelog.rst | 29 +
providers/databricks/docs/index.rst | 6 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../src/airflow/providers/databricks/exceptions.py | 4 +
.../providers/databricks/operators/databricks.py | 471 +++-
.../providers/databricks/utils/openlineage.py | 139 +
.../unit/databricks/operators/test_databricks.py | 532 +++-
.../unit/databricks/utils/test_openlineage.py | 178 ++
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 11 +
providers/dbt/cloud/docs/index.rst | 6 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 6 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 26 +
providers/edge3/docs/index.rst | 6 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 6 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 11 +
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
providers/fab/README.rst | 6 +-
providers/fab/docs/changelog.rst | 31 +
providers/fab/docs/index.rst | 6 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 6 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 35 +-
.../fab/src/airflow/providers/fab/www/package.json | 10 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 1774 ++++++-------
.../unit/fab/auth_manager/test_fab_auth_manager.py | 68 +-
providers/ftp/README.rst | 6 +-
providers/ftp/docs/changelog.rst | 11 +
providers/ftp/docs/index.rst | 6 +-
providers/ftp/provider.yaml | 3 +-
providers/ftp/pyproject.toml | 6 +-
.../ftp/src/airflow/providers/ftp/__init__.py | 2 +-
providers/git/docs/.latest-doc-only-change.txt | 2 +-
providers/google/README.rst | 10 +-
providers/google/docs/changelog.rst | 35 +
providers/google/docs/index.rst | 8 +-
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 10 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../airflow/providers/google/cloud/hooks/ray.py | 5 -
.../providers/google/cloud/triggers/bigquery.py | 40 +-
.../providers/google/cloud/triggers/dataproc.py | 120 +-
providers/hashicorp/README.rst | 6 +-
providers/hashicorp/docs/changelog.rst | 11 +
providers/hashicorp/docs/index.rst | 6 +-
providers/hashicorp/provider.yaml | 3 +-
providers/hashicorp/pyproject.toml | 6 +-
.../src/airflow/providers/hashicorp/__init__.py | 2 +-
providers/http/README.rst | 6 +-
providers/http/docs/changelog.rst | 17 +
providers/http/docs/index.rst | 6 +-
providers/http/provider.yaml | 3 +-
providers/http/pyproject.toml | 6 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
providers/informatica/README.rst | 8 +-
providers/informatica/docs/changelog.rst | 6 +
providers/informatica/docs/index.rst | 6 +-
providers/informatica/provider.yaml | 3 +-
providers/informatica/pyproject.toml | 6 +-
.../src/airflow/providers/informatica/__init__.py | 2 +-
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 11 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../keycloak/auth_manager/keycloak_auth_manager.py | 30 +-
.../auth_manager/test_keycloak_auth_manager.py | 21 +-
providers/microsoft/azure/README.rst | 10 +-
providers/microsoft/azure/docs/changelog.rst | 19 +
providers/microsoft/azure/docs/index.rst | 6 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 6 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/hooks/msgraph.py | 52 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 160 +-
providers/microsoft/mssql/README.rst | 6 +-
providers/microsoft/mssql/docs/changelog.rst | 11 +
providers/microsoft/mssql/docs/index.rst | 6 +-
providers/microsoft/mssql/provider.yaml | 3 +-
providers/microsoft/mssql/pyproject.toml | 6 +-
.../airflow/providers/microsoft/mssql/__init__.py | 2 +-
providers/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 13 +
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/docs/spark.rst | 1 +
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 6 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../airflow/providers/openlineage/api/datasets.py | 11 +-
.../src/airflow/providers/openlineage/api/sql.py | 9 +-
.../example_openlineage_all_facets_dag.py | 508 ++++
...mple_openlineage_custom_operator_failure_dag.py | 88 +
...e_openlineage_custom_operator_ol_methods_dag.py | 354 +++
.../example_openlineage_defer_simple_dag.py | 4 +-
...g.py => example_openlineage_edge_labels_dag.py} | 30 +-
.../openlineage/example_openlineage_hitl_dag.py | 135 +
.../example_openlineage_manual_lineage_dag.py | 255 ++
...lineage_schedule_cron_trigger_timetable_dag.py} | 13 +-
...ineage_schedule_delta_trigger_timetable_dag.py} | 16 +-
...chedule_multiple_cron_trigger_timetable_dag.py} | 14 +-
... example_openlineage_schedule_timedelta_dag.py} | 14 +-
...y => example_openlineage_trigger_failed_dag.py} | 28 +-
.../system/openlineage/expected_events/__init__.py | 43 +-
.../openlineage_all_facets_dag.json | 842 ++++++
.../openlineage_custom_operator_failure_dag.json | 170 ++
...openlineage_custom_operator_ol_methods_dag.json | 434 ++++
.../expected_events/openlineage_docs_file_dag.json | 24 +-
.../openlineage_edge_labels_dag.json | 72 +
.../expected_events/openlineage_hitl_dag.json | 353 +++
.../openlineage_manual_lineage_dag.json | 1498 +++++++++++
...penlineage_schedule_asset_or_time_dag__af3.json | 12 +-
...neage_schedule_cron_trigger_timetable_dag.json} | 18 +-
...eage_schedule_delta_trigger_timetable_dag.json} | 24 +-
...eage_schedule_list_complex_assets_dag__af3.json | 225 +-
...nlineage_schedule_multiple_assets_dag__af3.json | 12 +-
...hedule_multiple_cron_trigger_timetable_dag.json | 74 +
...> openlineage_schedule_timedelta_dag__af2.json} | 21 +-
...> openlineage_schedule_timedelta_dag__af3.json} | 24 +-
.../openlineage_task_groups_dag.json | 4 +-
...on => openlineage_trigger_dag__af3_3_plus.json} | 4 +-
...ineage_trigger_dag_deferrable__af3_3_plus.json} | 8 +-
...ag.json => openlineage_trigger_failed_dag.json} | 77 +-
...penlineage_trigger_failed_dag__af3_3_plus.json} | 81 +-
.../openlineage_versioned_dag__af3.json | 90 +-
.../tests/system/openlineage/operator.py | 94 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 11 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../papermill/docs/.latest-doc-only-change.txt | 2 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 16 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/docs/operators.rst | 2 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 6 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
providers/redis/README.rst | 6 +-
providers/redis/docs/changelog.rst | 11 +
providers/redis/docs/index.rst | 6 +-
providers/redis/provider.yaml | 3 +-
providers/redis/pyproject.toml | 6 +-
.../redis/src/airflow/providers/redis/__init__.py | 2 +-
providers/sftp/README.rst | 6 +-
providers/sftp/docs/changelog.rst | 11 +
providers/sftp/docs/index.rst | 6 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 6 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
providers/slack/README.rst | 6 +-
providers/slack/docs/changelog.rst | 11 +
providers/slack/docs/index.rst | 6 +-
providers/slack/provider.yaml | 3 +-
providers/slack/pyproject.toml | 6 +-
.../slack/src/airflow/providers/slack/__init__.py | 2 +-
providers/smtp/docs/connections/smtp.rst | 2 +-
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 8 +-
providers/smtp/tests/unit/smtp/hooks/test_smtp.py | 43 +-
providers/snowflake/README.rst | 6 +-
providers/snowflake/docs/changelog.rst | 17 +
providers/snowflake/docs/index.rst | 6 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 6 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
providers/ssh/README.rst | 6 +-
providers/ssh/docs/changelog.rst | 12 +
providers/ssh/docs/index.rst | 6 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 19 +
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../tests/unit/standard/operators/test_python.py | 153 +-
.../tests/unit/teradata/operators/test_bteq.py | 5 -
.../tests/unit/teradata/utils/test_bteq_util.py | 5 -
.../unit/teradata/utils/test_encryption_utils.py | 5 -
providers/weaviate/README.rst | 6 +-
providers/weaviate/docs/changelog.rst | 11 +
providers/weaviate/docs/index.rst | 6 +-
providers/weaviate/provider.yaml | 4 +-
providers/weaviate/pyproject.toml | 6 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
pyproject.toml | 9 +-
reproducible_build.yaml | 4 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/known_airflow_exceptions.txt | 4 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/tools/setup_breeze | 2 +-
.../tests/listeners/test_listener_manager.py | 12 +-
.../src/airflow_shared/logging/structlog.py | 68 +-
shared/logging/tests/logging/test_structlog.py | 60 +-
.../observability/metrics/metrics_template.yaml | 6 -
.../observability/traces/__init__.py | 51 +-
.../tests/observability/test_traces.py | 143 ++
shared/state/src/airflow_shared/state/__init__.py | 15 +-
task-sdk/dev/generate_task_sdk_models.py | 2 +
task-sdk/docs/api.rst | 1 +
task-sdk/docs/resumable-job-mixin.rst | 23 +-
task-sdk/src/airflow/sdk/__init__.py | 4 +-
task-sdk/src/airflow/sdk/__init__.pyi | 7 +-
task-sdk/src/airflow/sdk/api/client.py | 5 +-
task-sdk/src/airflow/sdk/bases/decorator.py | 7 +
task-sdk/src/airflow/sdk/bases/hook.py | 17 +
.../src/airflow/sdk/bases/resumablejobmixin.py | 33 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 193 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 24 +-
.../airflow/sdk/definitions/decorators/__init__.py | 26 +-
.../sdk/definitions/decorators/__init__.pyi | 2 +
.../src/airflow/sdk/definitions/mappedoperator.py | 5 +-
task-sdk/src/airflow/sdk/definitions/variable.py | 12 +-
task-sdk/src/airflow/sdk/definitions/xcom_arg.py | 4 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 1 -
task-sdk/src/airflow/sdk/execution_time/context.py | 30 +-
.../src/airflow/sdk/execution_time/coordinator.py | 29 +
.../airflow/sdk/execution_time/schema/schema.json | 5 -
.../src/airflow/sdk/execution_time/supervisor.py | 19 +-
.../src/airflow/sdk/execution_time/task_runner.py | 179 +-
task-sdk/src/airflow/sdk/log.py | 23 +-
task-sdk/src/airflow/sdk/types.py | 3 +
task-sdk/tests/task_sdk/api/test_client.py | 12 +-
task-sdk/tests/task_sdk/bases/test_hook.py | 30 +-
.../tests/task_sdk/bases/test_resumablejobmixin.py | 63 +
task-sdk/tests/task_sdk/bases/test_xcom.py | 204 +-
.../task_sdk/definitions/decorators/test_result.py | 69 +
task-sdk/tests/task_sdk/definitions/test_dag.py | 36 +-
.../tests/task_sdk/definitions/test_variables.py | 17 +-
.../tests/task_sdk/execution_time/test_context.py | 19 +-
.../task_sdk/execution_time/test_context_cache.py | 29 +
.../task_sdk/execution_time/test_coordinator.py | 79 +
.../task_sdk/execution_time/test_supervisor.py | 13 +-
.../task_sdk/execution_time/test_task_runner.py | 99 +-
uv.lock | 2712 ++++++++++----------
555 files changed, 22998 insertions(+), 8776 deletions(-)
create mode 100644 .agents/skills/airflow-java-sdk/SKILL.md
create mode 100644 .agents/skills/airflow-new-sdk/SKILL.md
create mode 100644 airflow-core/docs/authoring-and-scheduling/dag-result.rst
delete mode 100644 airflow-core/newsfragments/67285.feature.rst
delete mode 100644 airflow-core/newsfragments/68888.feature.rst
copy
providers/amazon/src/airflow/providers/amazon/aws/auth_manager/datamodels/login.py
=> airflow-core/src/airflow/api/client/__init__.py (82%)
create mode 100644 airflow-core/src/airflow/api/client/local_client.py
delete mode 100644 airflow-core/src/airflow/cli/api_client.py
create mode 100644
airflow-core/src/airflow/example_dags/example_task_state_store_mapped.py
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/AlertContent.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/AlertContent.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Dashboard.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Variables/ManageVariable/VariableForm.test.tsx
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/test_token_scope_boundaries.py
delete mode 100644 airflow-core/tests/unit/cli/test_api_client.py
delete mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/basic_tests/test_airflowctl_imports.py
create mode 100644
dev/breeze/doc/images/output_release-management_classify-provider-changes.svg
create mode 100644
dev/breeze/doc/images/output_release-management_classify-provider-changes.txt
copy
providers/smtp/src/airflow/providers/smtp/notifications/templates/email_subject.jinja2
=> devel-common/src/docs/sphinx_templates/suggest_change_button.html (62%)
create mode 100644 devel-common/src/sphinx_exts/suggest_change_button.py
create mode 100644
devel-common/src/tests_common/test_utils/in_process_taskrun.py
delete mode 100644 generated/provider_dependencies.json
delete mode 100644 generated/provider_dependencies.json.sha256sum
copy java-sdk/{processor => jpl}/build.gradle.kts (71%)
create mode 100644
java-sdk/jpl/src/main/kotlin/org/apache/airflow/sdk/jpl/AirflowSystemLoggerFinder.kt
copy airflow-core/src/airflow/api_fastapi/auth/__init__.py =>
java-sdk/jpl/src/main/resources/META-INF/services/java.lang.System$LoggerFinder
(93%)
create mode 100644
java-sdk/jpl/src/test/kotlin/org/apache/airflow/sdk/jpl/AirflowSystemLoggerTest.kt
copy java-sdk/{processor => jul}/build.gradle.kts (69%)
create mode 100644
java-sdk/jul/src/main/kotlin/org/apache/airflow/sdk/jul/AirflowJulHandler.kt
create mode 100644
java-sdk/jul/src/test/kotlin/org/apache/airflow/sdk/jul/AirflowJulHandlerTest.kt
copy java-sdk/{processor => log4j2}/build.gradle.kts (50%)
create mode 100644
java-sdk/log4j2/src/main/java/org/apache/airflow/sdk/log4j/AirflowLog4jAppender.java
create mode 100644
java-sdk/log4j2/src/test/kotlin/org/apache/airflow/sdk/log4j/AirflowLog4jAppenderTest.kt
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/execution/LogTest.kt
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/execution/NamespaceLevelsTest.kt
copy airflow-core/src/airflow/ui/src/components/DagVersion.tsx =>
java-sdk/sdk/src/testFixtures/kotlin/org/apache/airflow/sdk/execution/LogCapture.kt
(55%)
create mode 100644 java-sdk/slf4j/build.gradle.kts
copy airflow-core/src/airflow/api/common/__init__.py =>
java-sdk/slf4j/gradle.properties (97%)
create mode 100644
java-sdk/slf4j/src/main/kotlin/org/apache/airflow/sdk/slf4j/AirflowSlf4jProvider.kt
copy airflow-core/src/airflow/api_fastapi/auth/__init__.py =>
java-sdk/slf4j/src/main/resources/META-INF/services/org.slf4j.spi.SLF4JServiceProvider
(94%)
create mode 100644
java-sdk/slf4j/src/test/kotlin/org/apache/airflow/sdk/slf4j/AirflowSlf4jLoggerTest.kt
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/fingerprint.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/tool_definition.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_fingerprint.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_replay_verification.py
copy
airflow-core/src/airflow/api_fastapi/auth/managers/simple/datamodels/login.py
=> providers/common/ai/tests/unit/common/ai/utils/test_tool_definition.py (59%)
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_all_facets_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_custom_operator_failure_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_custom_operator_ol_methods_dag.py
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_docs_file_dag.py
=> example_openlineage_edge_labels_dag.py} (52%)
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_hitl_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_manual_lineage_dag.py
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_schedule_cron_dag.py
=> example_openlineage_schedule_cron_trigger_timetable_dag.py} (77%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_schedule_list_multiple_assets_dag.py
=> example_openlineage_schedule_delta_trigger_timetable_dag.py} (77%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_schedule_list_single_asset_dag.py
=> example_openlineage_schedule_multiple_cron_trigger_timetable_dag.py} (77%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_schedule_cron_dag.py
=> example_openlineage_schedule_timedelta_dag.py} (80%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_trigger_dag.py
=> example_openlineage_trigger_failed_dag.py} (72%)
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_all_facets_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_custom_operator_failure_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_custom_operator_ol_methods_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_edge_labels_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_hitl_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_manual_lineage_dag.json
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_schedule_cron_dag__af3.json
=> openlineage_schedule_cron_trigger_timetable_dag.json} (65%)
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_schedule_cron_dag__af2.json
=> openlineage_schedule_delta_trigger_timetable_dag.json} (55%)
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_schedule_multiple_cron_trigger_timetable_dag.json
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_schedule_cron_dag__af2.json
=> openlineage_schedule_timedelta_dag__af2.json} (57%)
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_schedule_cron_dag__af3.json
=> openlineage_schedule_timedelta_dag__af3.json} (57%)
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_trigger_dag.json
=> openlineage_trigger_dag__af3_3_plus.json} (99%)
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_trigger_dag_deferrable.json
=> openlineage_trigger_dag_deferrable__af3_3_plus.json} (99%)
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_trigger_dag.json
=> openlineage_trigger_failed_dag.json} (86%)
copy
providers/openlineage/tests/system/openlineage/expected_events/{openlineage_trigger_dag.json
=> openlineage_trigger_failed_dag__af3_3_plus.json} (86%)
create mode 100644
task-sdk/tests/task_sdk/definitions/decorators/test_result.py