This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/pip/airflow-core/pip-dependency-updates-72f83f7f84
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 248fb6e714c Bump the pip-dependency-updates group across 3 directories
with 3 updates
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 86a4b51f86f Bump the pip-dependency-updates group across 3 directories
with 3 updates
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 (248fb6e714c)
\
N -- N -- N
refs/heads/dependabot/pip/airflow-core/pip-dependency-updates-72f83f7f84
(86a4b51f86f)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.agents/skills/airflow-java-sdk/SKILL.md | 134 ++
.agents/skills/airflow-new-sdk/SKILL.md | 160 ++
.gitattributes | 2 +
.pre-commit-config.yaml | 9 +-
.rat-excludes | 5 +-
Dockerfile | 2 +-
Dockerfile.ci | 4 +-
.../logging-monitoring/callbacks.rst | 2 +-
.../logging-monitoring/logging-tasks.rst | 2 +-
.../task-and-asset-state-store.rst | 18 +-
.../docs/authoring-and-scheduling/assets.rst | 14 +-
.../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/howto/deadline-alerts.rst | 27 +-
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/docs/public-airflow-interface.rst | 3 +-
airflow-core/docs/security/security_model.rst | 7 +-
airflow-core/docs/templates-ref.rst | 3 +
airflow-core/docs/ui.rst | 5 +
airflow-core/newsfragments/67285.feature.rst | 1 +
airflow-core/src/airflow/api/common/mark_tasks.py | 2 +-
.../auth/managers/simple/ui/package.json | 32 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1973 ++++++++++---------
.../api_fastapi/core_api/datamodels/dag_run.py | 102 +-
.../api_fastapi/core_api/datamodels/ui/deadline.py | 38 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 14 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 162 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 95 +-
.../api_fastapi/core_api/routes/ui/deadlines.py | 10 +-
.../src/airflow/api_fastapi/core_api/security.py | 4 +
.../core_api/services/public/dag_run.py | 40 +-
.../src/airflow/api_fastapi/execution_api/app.py | 51 +-
.../execution_api/datamodels/taskinstance.py | 1 +
.../execution_api/routes/connections.py | 15 +-
.../api_fastapi/execution_api/routes/dag_runs.py | 7 +-
.../execution_api/routes/task_state_store.py | 24 +-
.../api_fastapi/execution_api/routes/variables.py | 27 +-
.../api_fastapi/execution_api/routes/xcoms.py | 59 +-
.../airflow/api_fastapi/execution_api/security.py | 42 +-
.../api_fastapi/execution_api/versions/__init__.py | 2 +
.../execution_api/versions/v2026_06_30.py | 14 +
airflow-core/src/airflow/assets/manager.py | 71 +-
airflow-core/src/airflow/cli/cli_config.py | 16 +-
.../src/airflow/cli/commands/dag_command.py | 25 +-
.../airflow/cli/commands/dag_processor_command.py | 2 +
.../src/airflow/cli/commands/partition_command.py | 131 +-
.../src/airflow/cli/commands/scheduler_command.py | 2 +
.../src/airflow/cli/commands/triggerer_command.py | 2 +
.../src/airflow/config_templates/config.yml | 49 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 29 +
airflow-core/src/airflow/dag_processing/manager.py | 69 +-
.../example_dags/example_asset_partition.py | 2 +-
.../example_dags/plugins/business_day_window.py | 64 +
.../src/airflow/executors/base_executor.py | 4 +
.../src/airflow/executors/local_executor.py | 22 +-
.../src/airflow/executors/workloads/callback.py | 11 +
.../src/airflow/executors/workloads/trigger.py | 3 +
.../src/airflow/jobs/scheduler_job_runner.py | 146 +-
.../src/airflow/jobs/triggerer_job_runner.py | 201 +-
airflow-core/src/airflow/listeners/types.py | 3 +
.../0117_3_3_0_change_deadline_interval_to_json.py | 84 +-
...d_partition_date_to_asset_partition_dag_run.py} | 32 +-
airflow-core/src/airflow/models/asset.py | 1 +
airflow-core/src/airflow/models/callback.py | 43 +-
airflow-core/src/airflow/models/dag.py | 3 -
airflow-core/src/airflow/models/dagbundle.py | 17 +
airflow-core/src/airflow/models/dagrun.py | 148 +-
airflow-core/src/airflow/models/deadline.py | 90 +-
airflow-core/src/airflow/models/deadline_alert.py | 15 +-
.../src/airflow/models/task_state_store.py | 9 +-
airflow-core/src/airflow/models/taskinstance.py | 19 +
airflow-core/src/airflow/models/trigger.py | 31 +-
airflow-core/src/airflow/partition_mappers/base.py | 15 +
.../src/airflow/partition_mappers/identity.py | 11 +
airflow-core/src/airflow/plugins_manager.py | 9 +
airflow-core/src/airflow/serialization/decoders.py | 24 +-
.../src/airflow/serialization/definitions/dag.py | 168 +-
.../airflow/serialization/definitions/deadline.py | 27 +-
airflow-core/src/airflow/serialization/encoders.py | 17 +-
airflow-core/src/airflow/serialization/helpers.py | 18 +-
.../airflow/serialization/serialized_objects.py | 5 +-
airflow-core/src/airflow/timetables/_cron.py | 10 +-
airflow-core/src/airflow/timetables/base.py | 35 +-
airflow-core/src/airflow/timetables/trigger.py | 50 +-
airflow-core/src/airflow/triggers/base.py | 7 +
airflow-core/src/airflow/triggers/callback.py | 94 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 1 +
.../ui/openapi-gen/queries/ensureQueryData.ts | 2 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 2 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 20 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 2 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 159 +-
.../ui/openapi-gen/requests/services.gen.ts | 32 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 98 +-
.../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 +
.../src/airflow/ui/public/i18n/locales/en/dag.json | 4 +-
.../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 +
.../ui/public/i18n/locales/zh-TW/dashboard.json | 6 +
.../src/airflow/ui/src/constants/localStorage.ts | 1 +
.../ui/src/pages/Dag/DeadlineAlertsBadge.tsx | 13 +-
.../ui/src/pages/Dag/Overview/DeadlineRow.tsx | 20 +-
.../ui/src/pages/Dashboard/AlertContent.test.tsx | 130 ++
.../ui/src/pages/Dashboard/AlertContent.tsx | 98 +
.../ui/src/pages/Dashboard/Dashboard.test.tsx | 204 ++
.../airflow/ui/src/pages/Dashboard/Dashboard.tsx | 60 +-
.../airflow/ui/src/pages/Run/DeadlineStatus.tsx | 31 +-
.../ui/src/pages/Run/DeadlineStatusModal.tsx | 23 +-
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 13 +-
.../Variables/ManageVariable/VariableForm.test.tsx | 123 ++
.../Variables/ManageVariable/VariableForm.tsx | 7 +-
.../src/airflow/ui/tests/e2e/pages/HomePage.ts | 27 +
.../ui/tests/e2e/specs/home-dashboard.spec.ts | 36 +
airflow-core/src/airflow/utils/db.py | 2 +-
.../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/datamodels/test_dag_run.py | 69 +
.../core_api/routes/public/test_assets.py | 1 +
.../core_api/routes/public/test_dag_run.py | 739 ++++++-
.../core_api/routes/public/test_plugins.py | 17 +-
.../core_api/routes/ui/test_deadlines.py | 83 +-
.../unit/api_fastapi/execution_api/test_app.py | 33 +
.../execution_api/versions/head/test_dag_runs.py | 1 +
.../versions/head/test_task_instances.py | 9 +-
.../versions/head/test_task_state_store.py | 19 -
.../execution_api/versions/head/test_xcoms.py | 163 +-
.../test_task_instances.py | 38 +-
airflow-core/tests/unit/assets/test_manager.py | 171 ++
.../tests/unit/cli/commands/test_dag_command.py | 42 +-
.../unit/cli/commands/test_partition_command.py | 212 +-
.../tests/unit/dag_processing/test_dagbag.py | 40 +
.../tests/unit/dag_processing/test_manager.py | 89 +-
.../tests/unit/executors/test_local_executor.py | 21 +-
.../test_build_trigger_workloads_resilience.py | 143 ++
.../test_enqueue_executor_callbacks_resilience.py | 174 ++
airflow-core/tests/unit/jobs/test_scheduler_job.py | 328 +++-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 377 +++-
.../test_0117_deadline_interval_json_migration.py | 140 +-
airflow-core/tests/unit/models/test_backfill.py | 130 +-
airflow-core/tests/unit/models/test_callback.py | 152 +-
airflow-core/tests/unit/models/test_dag.py | 41 +-
airflow-core/tests/unit/models/test_dagbundle.py | 17 +
airflow-core/tests/unit/models/test_dagrun.py | 559 +++++-
airflow-core/tests/unit/models/test_deadline.py | 47 +-
.../tests/unit/models/test_deadline_alert.py | 31 +
.../models/test_deadline_callback_adversarial.py | 137 ++
.../test_deadline_callback_context_construction.py | 55 +
.../models/test_deadline_handle_miss_reentrancy.py | 102 +
.../models/test_deadline_scheduler_resilience.py | 149 ++
.../tests/unit/models/test_prune_deadlines.py | 134 ++
airflow-core/tests/unit/models/test_trigger.py | 33 +
.../tests/unit/partition_mappers/test_base.py | 12 +
.../tests/unit/partition_mappers/test_identity.py | 9 +
.../tests/unit/partition_mappers/test_window.py | 69 +-
.../tests/unit/plugins/test_plugins_manager.py | 29 +-
.../unit/serialization/test_dag_serialization.py | 4 +
.../test_deadline_reference_registry.py | 82 +
.../unit/serialization/test_serialized_objects.py | 36 +-
.../tests/unit/timetables/test_base_timetable.py | 23 -
.../tests/unit/timetables/test_cron_mixin.py | 30 -
.../unit/timetables/test_partitioned_timetable.py | 17 -
.../unit/timetables/test_trigger_timetable.py | 133 +-
.../tests/unit/triggers/test_base_trigger.py | 25 +
airflow-core/tests/unit/triggers/test_callback.py | 167 +-
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 +-
.../src/airflowctl/api/datamodels/generated.py | 80 +-
.../java_sdk_tests/test_java_sdk_dag.py | 75 +
contributing-docs/30_new_language_sdk.rst | 53 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 29 +-
dev/breeze/pyproject.toml | 2 +-
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 4 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../utils/constraints_version_check.py | 227 ++-
.../src/airflow_breeze/utils/selective_checks.py | 8 -
dev/breeze/uv.lock | 422 ++--
devel-common/pyproject.toml | 4 +-
docs/README.md | 20 +-
docs/spelling_wordlist.txt | 2 +
generated/provider_dependencies.json | 2044 --------------------
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 +-
.../amazon/aws/auth_manager/routes/login.py | 18 +-
.../amazon/aws/executors/batch/batch_executor.py | 47 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 26 +-
.../tests/system/amazon/aws/example_dynamodb.py | 11 +-
.../aws/executors/batch/test_batch_executor.py | 88 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 28 +
providers/apache/spark/docs/operators.rst | 6 +-
.../apache/spark/operators/spark_submit.py | 49 +-
.../apache/spark/operators/test_spark_submit.py | 41 +-
.../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 +-
.../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/databricks/operators/databricks.py | 39 +
.../providers/databricks/utils/openlineage.py | 139 ++
.../unit/databricks/operators/test_databricks.py | 133 ++
.../unit/databricks/utils/test_openlineage.py | 178 ++
.../fab/src/airflow/providers/fab/www/package.json | 8 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 1741 ++++++++---------
providers/openlineage/docs/spark.rst | 1 +
providers/postgres/docs/operators.rst | 2 +-
.../airflow/providers/standard/operators/python.py | 2 +
.../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 -
pyproject.toml | 9 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/tools/setup_breeze | 2 +-
.../src/airflow_shared/logging/structlog.py | 68 +-
shared/logging/tests/logging/test_structlog.py | 60 +-
.../src/airflow_shared/module_loading/__init__.py | 40 +
.../observability/metrics/metrics_template.yaml | 18 +-
.../plugins_manager/plugins_manager.py | 3 +
shared/state/src/airflow_shared/state/__init__.py | 15 +-
.../airflow_shared/template_rendering/__init__.py | 30 +
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/pyproject.toml | 1 +
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 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 1 +
task-sdk/src/airflow/sdk/bases/decorator.py | 7 +
task-sdk/src/airflow/sdk/bases/hook.py | 17 +
.../src/airflow/sdk/bases/resumablejobmixin.py | 15 +
task-sdk/src/airflow/sdk/definitions/callback.py | 18 +-
task-sdk/src/airflow/sdk/definitions/context.py | 1 +
task-sdk/src/airflow/sdk/definitions/dag.py | 24 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 51 +-
.../airflow/sdk/definitions/decorators/__init__.py | 26 +-
.../sdk/definitions/decorators/__init__.pyi | 2 +
.../src/airflow/sdk/definitions/mappedoperator.py | 5 +-
.../airflow/sdk/definitions/timetables/trigger.py | 7 -
task-sdk/src/airflow/sdk/definitions/xcom_arg.py | 4 +-
.../sdk/execution_time/callback_supervisor.py | 188 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 1 -
task-sdk/src/airflow/sdk/execution_time/context.py | 73 +-
.../src/airflow/sdk/execution_time/coordinator.py | 29 +
.../airflow/sdk/execution_time/schema/schema.json | 31 +-
.../src/airflow/sdk/execution_time/supervisor.py | 2 +-
.../src/airflow/sdk/execution_time/task_runner.py | 4 +-
task-sdk/src/airflow/sdk/log.py | 23 +-
task-sdk/src/airflow/sdk/types.py | 1 +
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 | 29 +
.../task_sdk/definitions/decorators/test_result.py | 69 +
.../tests/task_sdk/definitions/test_callback.py | 27 +
task-sdk/tests/task_sdk/definitions/test_dag.py | 36 +-
.../tests/task_sdk/definitions/test_deadline.py | 88 +-
.../definitions/test_deadline_alert_validation.py | 63 +
.../test_build_context_field_edge_cases.py | 100 +
.../test_build_context_from_dag_run.py | 129 ++
.../execution_time/test_callback_supervisor.py | 591 +++---
.../test_callback_supervisor_io_faults.py | 61 +
.../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 | 15 +-
.../task_sdk/execution_time/test_task_runner.py | 80 +-
uv.lock | 1362 ++++++-------
316 files changed, 16433 insertions(+), 6680 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/newsfragments/67285.feature.rst
create mode 100644
airflow-core/src/airflow/example_dags/plugins/business_day_window.py
copy
airflow-core/src/airflow/migrations/versions/{0103_3_2_0_add_revoked_token_table.py
=> 0123_3_3_0_add_partition_date_to_asset_partition_dag_run.py} (55%)
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/core_api/datamodels/test_dag_run.py
copy airflow-core/tests/unit/api_fastapi/execution_api/versions/{v2026_04_17
=> v2026_06_30}/test_task_instances.py (61%)
create mode 100644
airflow-core/tests/unit/jobs/test_build_trigger_workloads_resilience.py
create mode 100644
airflow-core/tests/unit/jobs/test_enqueue_executor_callbacks_resilience.py
create mode 100644
airflow-core/tests/unit/models/test_deadline_callback_adversarial.py
create mode 100644
airflow-core/tests/unit/models/test_deadline_callback_context_construction.py
create mode 100644
airflow-core/tests/unit/models/test_deadline_handle_miss_reentrancy.py
create mode 100644
airflow-core/tests/unit/models/test_deadline_scheduler_resilience.py
create mode 100644 airflow-core/tests/unit/models/test_prune_deadlines.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
task-sdk/tests/task_sdk/definitions/decorators/test_result.py
create mode 100644
task-sdk/tests/task_sdk/definitions/test_deadline_alert_validation.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/test_build_context_field_edge_cases.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/test_build_context_from_dag_run.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/test_callback_supervisor_io_faults.py