This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard fac6792f9d8 [main] CI: Upgrade important CI environment
add 5c7f0a42ac4 Add fab-oauth meta-package extra (#73565)
add df584691052 Fix Amazon system tests creating connections on Airflow 2
(#73571)
add 5d559174c34 UI: Fix raw translation key showing as a Backfills column
header (#72836)
add 3eec18d5bc3 Clear all task instances in a task group, not just the
first page (#73547)
add 607ae04d0bc Document favorite_dag's 409 and return a readable conflict
message (#73411)
add 0de9f3f2b57 Fix typo in customize-ui theme screencap filenames (#73632)
add b131c8a1c49 Bump eslint from 10.10.0 to 10.11.0 in FAB provider
(#73630)
add 2e4a4b21e02 Invalidate cached Microsoft Graph request adapter on 403
Forbidden (#73601)
add 7dfa25664a2 Fix SFTPHookAsync letting a connection's known_hosts extra
override an explicit constructor path (#73593)
add e2372bbf0aa Read the legacy extra__google_cloud_platform__ prefix for
GCS credentials (#73613)
add 06377eb38e5 Add serialized Dag version diff engine (#69864)
add 9290c2662cf Add missing tests for sftp exceptions (#72456)
add 0def1f305bf Keep pooled SFTP connection on application-level SFTP
errors (#73288)
add b6acedbab23 Add SRV DNS record support to HTTP Operator (#70960)
add 61340ea9a73 Separate task outcomes from report delivery in TaskSDK
Supervisor (#73249)
add 39a4fc1587d Swap more blue->brand colors (#73637)
add ffa19c31a67 UI: Fix copied SQL from Rendered Templates breaking at
every token (#73633)
add 5ddea25c9c6 Link calendar cell to filter dagruns by the respective
start_date and state. (#73611)
add ababf5cea5b Fix Breeze ownership fix-up chowning all sources under
rootless Docker (#73606)
add 389b4e1751f Allow templated connection IDs in agent toolsets (#73578)
add eebf253b72c Skip `on_kill()` for triggers reassigned to another
triggerer (#73454)
add 74d1a3b0bb3 Stop docs builds from importing example Dags to highlight
them (#73604)
add cfcca0dba46 Export StoreScope from airflow.sdk as public interface
(#73600)
add ea1f4723e4f TS SDK: generate Dag and task options from the
serialization schema (#73436)
add 9216bd8c464 Skip the CI disk cleanup when the runner already has room
(#73635)
add 035af46b166 Remove mention of CeleryKubernetesExecutor from
KubernetesExecutor doc (#73624)
add 92bf48035a5 Add Delivery Hero to the list of companies using Apache
Airflow (#73634)
add a99354726ce Prepare providers release 2026-09-22 (#73506)
add f14bed9b852 Persist `retry_reason` not just for retries but even when
a task fails (#73027)
add 478272a4cf8 Bump flit_core in the provider pyproject template on CI
upgrades (#73649)
add 61d99c0374e Fix mypy error in common.ai decision helper with
pydantic-ai 2.46 (#73652)
add 055570af92c [main] CI: Upgrade important CI environment
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 (fac6792f9d8)
\
N -- N -- N refs/heads/ci-upgrade-main (055570af92c)
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:
.../actions/prepare_breeze_and_image/action.yml | 11 +-
.github/workflows/ci-image-checks.yml | 3 -
.pre-commit-config.yaml | 10 +
INTHEWILD.md | 1 +
.../task-and-asset-state-store.rst | 2 +-
.../language-sdks/typescript.rst | 9 +-
airflow-core/docs/core-concepts/tasks.rst | 4 +-
airflow-core/docs/extra-packages-ref.rst | 2 +
airflow-core/docs/howto/customize-ui.rst | 4 +-
...g => example_theme_configuration_dark_mode.png} | Bin
... => example_theme_configuration_light_mode.png} | Bin
.../core_api/datamodels/task_instances.py | 8 +
.../core_api/openapi/v2-rest-api-generated.yaml | 14 +
.../api_fastapi/core_api/routes/public/dags.py | 15 +-
.../core_api/routes/public/task_instances.py | 9 +
.../core_api/services/public/task_instances.py | 18 +-
.../execution_api/datamodels/taskinstance.py | 1 +
.../execution_api/routes/task_instances.py | 2 +
.../api_fastapi/execution_api/versions/__init__.py | 2 +
.../execution_api/versions/v2026_10_30.py | 12 +-
airflow-core/src/airflow/exceptions.py | 2 +-
.../src/airflow/jobs/triggerer_job_runner.py | 84 +-
airflow-core/src/airflow/models/dag_version.py | 161 +-
airflow-core/src/airflow/models/trigger.py | 9 +
.../src/airflow/serialization/dag_version_diff.py | 1281 +++++++
.../airflow/serialization/serialized_objects.py | 36 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 12 +
.../ui/openapi-gen/requests/services.gen.ts | 1 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 8 +
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 28 +-
.../ClearTaskInstanceConfirmationDialog.tsx | 4 +-
.../ui/src/components/FilterBar/FilterPill.tsx | 4 +-
.../FilterBar/filters/DateRangeFilter.tsx | 6 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 2 +-
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 2 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 2 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 19 +-
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 4 +
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 4 +
.../pages/TaskInstance/RenderedTemplates.test.tsx | 84 +
.../src/pages/TaskInstance/RenderedTemplates.tsx | 17 +-
.../tests/unit/always/test_project_structure.py | 1 -
.../core_api/routes/public/test_dags.py | 13 +
.../core_api/routes/public/test_task_instances.py | 98 +-
.../versions/head/test_task_instances.py | 66 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 151 +
airflow-core/tests/unit/models/test_dag_version.py | 424 ++-
airflow-core/tests/unit/models/test_trigger.py | 17 +
.../unit/serialization/test_dag_serialization.py | 27 +
.../unit/serialization/test_dag_version_diff.py | 3552 ++++++++++++++++++++
.../test_ts_sdk_serialization_version.py | 53 +
.../src/airflowctl/api/datamodels/generated.py | 7 +
.../airflow_breeze/utils/docker_command_utils.py | 2 +-
dev/breeze/tests/test_docker_command_utils.py | 28 +
devel-common/src/sphinx_exts/exampleinclude.py | 12 +-
providers/.last_release_date.txt | 2 +-
providers/airbyte/README.rst | 6 +-
providers/airbyte/docs/changelog.rst | 24 +
providers/airbyte/docs/index.rst | 6 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 6 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 20 +
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 | 57 +
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/example_google_api_youtube_to_s3.py | 10 +-
.../tests/system/amazon/aws/example_http_to_s3.py | 14 +-
.../tests/system/amazon/aws/example_s3_to_sql.py | 10 +-
.../tests/system/amazon/aws/example_sql_to_s3.py | 10 +-
providers/anthropic/README.rst | 6 +-
providers/anthropic/docs/changelog.rst | 18 +
providers/anthropic/docs/index.rst | 6 +-
providers/anthropic/provider.yaml | 3 +-
providers/anthropic/pyproject.toml | 6 +-
.../src/airflow/providers/anthropic/__init__.py | 2 +-
providers/apache/beam/README.rst | 6 +-
providers/apache/beam/docs/changelog.rst | 19 +
providers/apache/beam/docs/index.rst | 6 +-
providers/apache/beam/provider.yaml | 3 +-
providers/apache/beam/pyproject.toml | 6 +-
.../src/airflow/providers/apache/beam/__init__.py | 2 +-
providers/apache/cassandra/README.rst | 6 +-
providers/apache/cassandra/docs/changelog.rst | 15 +
providers/apache/cassandra/docs/index.rst | 6 +-
providers/apache/cassandra/provider.yaml | 4 +-
providers/apache/cassandra/pyproject.toml | 6 +-
.../airflow/providers/apache/cassandra/__init__.py | 2 +-
providers/apache/druid/README.rst | 6 +-
providers/apache/druid/docs/changelog.rst | 26 +
providers/apache/druid/docs/index.rst | 6 +-
providers/apache/druid/provider.yaml | 4 +-
providers/apache/druid/pyproject.toml | 6 +-
.../src/airflow/providers/apache/druid/__init__.py | 2 +-
providers/apache/flink/README.rst | 6 +-
providers/apache/flink/docs/changelog.rst | 16 +
providers/apache/flink/docs/index.rst | 6 +-
providers/apache/flink/provider.yaml | 4 +-
providers/apache/flink/pyproject.toml | 6 +-
.../src/airflow/providers/apache/flink/__init__.py | 2 +-
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 14 +
providers/apache/hdfs/docs/index.rst | 6 +-
providers/apache/hdfs/provider.yaml | 4 +-
providers/apache/hdfs/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 14 +
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 4 +-
providers/apache/hive/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
.../apache/kafka/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/kylin/README.rst | 6 +-
providers/apache/kylin/docs/changelog.rst | 16 +
providers/apache/kylin/docs/index.rst | 6 +-
providers/apache/kylin/provider.yaml | 4 +-
providers/apache/kylin/pyproject.toml | 6 +-
.../src/airflow/providers/apache/kylin/__init__.py | 2 +-
providers/apache/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 13 +
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/pig/README.rst | 6 +-
providers/apache/pig/docs/changelog.rst | 15 +
providers/apache/pig/docs/index.rst | 6 +-
providers/apache/pig/provider.yaml | 4 +-
providers/apache/pig/pyproject.toml | 6 +-
.../src/airflow/providers/apache/pig/__init__.py | 2 +-
providers/apache/tinkerpop/README.rst | 6 +-
providers/apache/tinkerpop/docs/changelog.rst | 22 +
providers/apache/tinkerpop/docs/index.rst | 6 +-
providers/apache/tinkerpop/provider.yaml | 4 +-
providers/apache/tinkerpop/pyproject.toml | 6 +-
.../airflow/providers/apache/tinkerpop/__init__.py | 2 +-
providers/apprise/README.rst | 6 +-
providers/apprise/docs/changelog.rst | 15 +
providers/apprise/docs/index.rst | 6 +-
providers/apprise/provider.yaml | 4 +-
providers/apprise/pyproject.toml | 6 +-
.../src/airflow/providers/apprise/__init__.py | 2 +-
providers/arangodb/README.rst | 6 +-
providers/arangodb/docs/changelog.rst | 26 +
providers/arangodb/docs/index.rst | 6 +-
providers/arangodb/provider.yaml | 3 +-
providers/arangodb/pyproject.toml | 6 +-
.../src/airflow/providers/arangodb/__init__.py | 2 +-
providers/asana/README.rst | 6 +-
providers/asana/docs/changelog.rst | 17 +
providers/asana/docs/index.rst | 6 +-
providers/asana/provider.yaml | 4 +-
providers/asana/pyproject.toml | 6 +-
.../asana/src/airflow/providers/asana/__init__.py | 2 +-
providers/atlassian/jira/README.rst | 6 +-
providers/atlassian/jira/docs/changelog.rst | 15 +
providers/atlassian/jira/docs/index.rst | 6 +-
providers/atlassian/jira/provider.yaml | 4 +-
providers/atlassian/jira/pyproject.toml | 6 +-
.../airflow/providers/atlassian/jira/__init__.py | 2 +-
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 24 +
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
providers/cloudant/README.rst | 6 +-
providers/cloudant/docs/changelog.rst | 15 +
providers/cloudant/docs/index.rst | 6 +-
providers/cloudant/provider.yaml | 3 +-
providers/cloudant/pyproject.toml | 6 +-
.../src/airflow/providers/cloudant/__init__.py | 2 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 36 +
providers/cncf/kubernetes/docs/index.rst | 6 +-
.../cncf/kubernetes/docs/kubernetes_executor.rst | 8 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
providers/cohere/README.rst | 6 +-
providers/cohere/docs/changelog.rst | 13 +
providers/cohere/docs/index.rst | 6 +-
providers/cohere/provider.yaml | 4 +-
providers/cohere/pyproject.toml | 6 +-
.../src/airflow/providers/cohere/__init__.py | 2 +-
providers/common/ai/README.rst | 20 +-
providers/common/ai/docs/changelog.rst | 81 +
providers/common/ai/docs/index.rst | 8 +-
providers/common/ai/docs/retry_policies.rst | 21 +-
providers/common/ai/docs/toolsets/hook.rst | 41 +-
providers/common/ai/docs/toolsets/mcp.rst | 8 +-
providers/common/ai/docs/toolsets/sql.rst | 92 +-
providers/common/ai/provider.yaml | 3 +-
providers/common/ai/pyproject.toml | 8 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../airflow/providers/common/ai/operators/agent.py | 111 +-
.../airflow/providers/common/ai/toolsets/hook.py | 41 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 9 +-
.../airflow/providers/common/ai/toolsets/sql.py | 10 +-
.../airflow/providers/common/ai/utils/decision.py | 5 +-
.../tests/unit/common/ai/decorators/test_agent.py | 7 +-
.../tests/unit/common/ai/operators/test_agent.py | 248 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 55 +
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 24 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
.../providers/common/compat/_retry_policy.py | 6 +-
providers/common/io/README.rst | 6 +-
providers/common/io/docs/changelog.rst | 25 +
providers/common/io/docs/index.rst | 6 +-
providers/common/io/provider.yaml | 4 +-
providers/common/io/pyproject.toml | 6 +-
.../io/src/airflow/providers/common/io/__init__.py | 2 +-
.../providers/common/io/state_store/backend.py | 4 +-
providers/common/messaging/README.rst | 6 +-
providers/common/messaging/docs/changelog.rst | 14 +
providers/common/messaging/docs/index.rst | 6 +-
providers/common/messaging/provider.yaml | 3 +-
providers/common/messaging/pyproject.toml | 6 +-
.../airflow/providers/common/messaging/__init__.py | 2 +-
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 31 +
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../providers/common/sql/datafusion/engine.py | 14 +-
.../unit/common/sql/datafusion/test_engine.py | 22 +
providers/databricks/README.rst | 6 +-
providers/databricks/docs/changelog.rst | 24 +
providers/databricks/docs/index.rst | 6 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
providers/datadog/README.rst | 6 +-
providers/datadog/docs/changelog.rst | 17 +
providers/datadog/docs/index.rst | 6 +-
providers/datadog/provider.yaml | 4 +-
providers/datadog/pyproject.toml | 6 +-
.../src/airflow/providers/datadog/__init__.py | 2 +-
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 25 +
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/dingding/README.rst | 6 +-
providers/dingding/docs/changelog.rst | 18 +
providers/dingding/docs/index.rst | 6 +-
providers/dingding/provider.yaml | 4 +-
providers/dingding/pyproject.toml | 6 +-
.../src/airflow/providers/dingding/__init__.py | 2 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 16 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 4 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
providers/duckdb/README.rst | 34 +-
providers/duckdb/docs/.latest-doc-only-change.txt | 1 -
providers/duckdb/docs/index.rst | 7 +
providers/duckdb/provider.yaml | 2 +-
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 33 +
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/exasol/README.rst | 6 +-
providers/exasol/docs/changelog.rst | 13 +
providers/exasol/docs/index.rst | 6 +-
providers/exasol/provider.yaml | 4 +-
providers/exasol/pyproject.toml | 6 +-
.../src/airflow/providers/exasol/__init__.py | 2 +-
providers/fab/README.rst | 8 +-
providers/fab/docs/changelog.rst | 41 +
providers/fab/docs/index.rst | 8 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 8 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 30 +-
providers/ftp/README.rst | 6 +-
providers/ftp/docs/changelog.rst | 17 +
providers/ftp/docs/index.rst | 6 +-
providers/ftp/provider.yaml | 4 +-
providers/ftp/pyproject.toml | 6 +-
.../ftp/src/airflow/providers/ftp/__init__.py | 2 +-
providers/git/README.rst | 6 +-
providers/git/docs/changelog.rst | 13 +
providers/git/docs/index.rst | 6 +-
providers/git/provider.yaml | 3 +-
providers/git/pyproject.toml | 6 +-
.../git/src/airflow/providers/git/__init__.py | 2 +-
providers/github/README.rst | 6 +-
providers/github/docs/changelog.rst | 23 +
providers/github/docs/index.rst | 6 +-
providers/github/provider.yaml | 4 +-
providers/github/pyproject.toml | 6 +-
.../src/airflow/providers/github/__init__.py | 2 +-
providers/google/README.rst | 6 +-
providers/google/docs/changelog.rst | 65 +
providers/google/docs/index.rst | 6 +-
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 6 +-
.../src/airflow/providers/google/__init__.py | 2 +-
providers/grpc/README.rst | 6 +-
providers/grpc/docs/changelog.rst | 17 +
providers/grpc/docs/index.rst | 6 +-
providers/grpc/provider.yaml | 4 +-
providers/grpc/pyproject.toml | 6 +-
.../grpc/src/airflow/providers/grpc/__init__.py | 2 +-
providers/hashicorp/README.rst | 6 +-
providers/hashicorp/docs/changelog.rst | 13 +
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 | 15 +-
providers/http/docs/changelog.rst | 19 +
providers/http/docs/connections/http.rst | 26 +-
providers/http/docs/index.rst | 23 +-
providers/http/provider.yaml | 14 +-
providers/http/pyproject.toml | 13 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
.../http/src/airflow/providers/http/exceptions.py | 4 +
.../airflow/providers/http/get_provider_info.py | 8 +-
.../http/src/airflow/providers/http/hooks/http.py | 201 +-
providers/http/tests/unit/http/hooks/test_http.py | 409 ++-
providers/imap/README.rst | 6 +-
providers/imap/docs/changelog.rst | 16 +
providers/imap/docs/index.rst | 6 +-
providers/imap/provider.yaml | 4 +-
providers/imap/pyproject.toml | 6 +-
.../imap/src/airflow/providers/imap/__init__.py | 2 +-
providers/influxdb/README.rst | 6 +-
providers/influxdb/docs/changelog.rst | 14 +
providers/influxdb/docs/index.rst | 6 +-
providers/influxdb/provider.yaml | 3 +-
providers/influxdb/pyproject.toml | 6 +-
.../src/airflow/providers/influxdb/__init__.py | 2 +-
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 20 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
providers/microsoft/azure/README.rst | 6 +-
providers/microsoft/azure/docs/changelog.rst | 27 +
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 | 4 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 39 +-
.../mssql/docs/.latest-doc-only-change.txt | 2 +-
providers/microsoft/psrp/README.rst | 6 +-
providers/microsoft/psrp/docs/changelog.rst | 17 +-
providers/microsoft/psrp/docs/index.rst | 6 +-
providers/microsoft/psrp/provider.yaml | 3 +-
providers/microsoft/psrp/pyproject.toml | 6 +-
.../airflow/providers/microsoft/psrp/__init__.py | 2 +-
providers/microsoft/winrm/README.rst | 6 +-
providers/microsoft/winrm/docs/changelog.rst | 16 +
providers/microsoft/winrm/docs/index.rst | 6 +-
providers/microsoft/winrm/provider.yaml | 4 +-
providers/microsoft/winrm/pyproject.toml | 6 +-
.../airflow/providers/microsoft/winrm/__init__.py | 2 +-
providers/mongo/README.rst | 6 +-
providers/mongo/docs/changelog.rst | 17 +
providers/mongo/docs/index.rst | 6 +-
providers/mongo/provider.yaml | 4 +-
providers/mongo/pyproject.toml | 6 +-
.../mongo/src/airflow/providers/mongo/__init__.py | 2 +-
providers/mysql/README.rst | 6 +-
providers/mysql/docs/changelog.rst | 13 +
providers/mysql/docs/index.rst | 6 +-
providers/mysql/provider.yaml | 4 +-
providers/mysql/pyproject.toml | 6 +-
.../mysql/src/airflow/providers/mysql/__init__.py | 2 +-
providers/neo4j/README.rst | 6 +-
providers/neo4j/docs/changelog.rst | 14 +
providers/neo4j/docs/index.rst | 6 +-
providers/neo4j/provider.yaml | 4 +-
providers/neo4j/pyproject.toml | 6 +-
.../neo4j/src/airflow/providers/neo4j/__init__.py | 2 +-
providers/openai/README.rst | 6 +-
providers/openai/docs/changelog.rst | 38 +
providers/openai/docs/index.rst | 6 +-
providers/openai/provider.yaml | 3 +-
providers/openai/pyproject.toml | 6 +-
.../src/airflow/providers/openai/__init__.py | 2 +-
providers/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 20 +
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 6 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 13 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/provider.yaml | 4 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
providers/opsgenie/README.rst | 6 +-
providers/opsgenie/docs/changelog.rst | 16 +
providers/opsgenie/docs/index.rst | 6 +-
providers/opsgenie/provider.yaml | 4 +-
providers/opsgenie/pyproject.toml | 6 +-
.../src/airflow/providers/opsgenie/__init__.py | 2 +-
providers/oracle/README.rst | 6 +-
providers/oracle/docs/changelog.rst | 13 +
providers/oracle/docs/index.rst | 6 +-
providers/oracle/provider.yaml | 4 +-
providers/oracle/pyproject.toml | 6 +-
.../src/airflow/providers/oracle/__init__.py | 2 +-
providers/pagerduty/README.rst | 6 +-
providers/pagerduty/docs/changelog.rst | 13 +
providers/pagerduty/docs/index.rst | 6 +-
providers/pagerduty/provider.yaml | 4 +-
providers/pagerduty/pyproject.toml | 6 +-
.../src/airflow/providers/pagerduty/__init__.py | 2 +-
providers/pinecone/README.rst | 6 +-
providers/pinecone/docs/changelog.rst | 15 +
providers/pinecone/docs/index.rst | 6 +-
providers/pinecone/provider.yaml | 4 +-
providers/pinecone/pyproject.toml | 6 +-
.../src/airflow/providers/pinecone/__init__.py | 2 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 19 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/provider.yaml | 4 +-
providers/postgres/pyproject.toml | 6 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
providers/presto/README.rst | 6 +-
providers/presto/docs/changelog.rst | 14 +
providers/presto/docs/index.rst | 6 +-
providers/presto/provider.yaml | 4 +-
providers/presto/pyproject.toml | 6 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/qdrant/README.rst | 6 +-
providers/qdrant/docs/changelog.rst | 16 +
providers/qdrant/docs/index.rst | 6 +-
providers/qdrant/provider.yaml | 4 +-
providers/qdrant/pyproject.toml | 6 +-
.../src/airflow/providers/qdrant/__init__.py | 2 +-
providers/redis/README.rst | 6 +-
providers/redis/docs/changelog.rst | 19 +
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/salesforce/README.rst | 6 +-
providers/salesforce/docs/changelog.rst | 14 +
providers/salesforce/docs/index.rst | 6 +-
providers/salesforce/provider.yaml | 4 +-
providers/salesforce/pyproject.toml | 6 +-
.../src/airflow/providers/salesforce/__init__.py | 2 +-
providers/samba/README.rst | 6 +-
providers/samba/docs/changelog.rst | 13 +
providers/samba/docs/index.rst | 6 +-
providers/samba/provider.yaml | 4 +-
providers/samba/pyproject.toml | 6 +-
.../samba/src/airflow/providers/samba/__init__.py | 2 +-
providers/segment/README.rst | 6 +-
providers/segment/docs/changelog.rst | 15 +
providers/segment/docs/index.rst | 6 +-
providers/segment/provider.yaml | 4 +-
providers/segment/pyproject.toml | 6 +-
.../src/airflow/providers/segment/__init__.py | 2 +-
providers/sftp/README.rst | 6 +-
providers/sftp/docs/changelog.rst | 22 +
providers/sftp/docs/index.rst | 6 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 6 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 6 +-
.../sftp/src/airflow/providers/sftp/pools/sftp.py | 32 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 28 +
providers/sftp/tests/unit/sftp/pools/test_sftp.py | 76 +-
providers/sftp/tests/unit/sftp/test_exceptions.py | 82 +
providers/slack/README.rst | 6 +-
providers/slack/docs/changelog.rst | 15 +
providers/slack/docs/index.rst | 6 +-
providers/slack/provider.yaml | 4 +-
providers/slack/pyproject.toml | 6 +-
.../slack/src/airflow/providers/slack/__init__.py | 2 +-
providers/smtp/README.rst | 6 +-
providers/smtp/docs/changelog.rst | 13 +
providers/smtp/docs/index.rst | 6 +-
providers/smtp/provider.yaml | 4 +-
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
providers/snowflake/README.rst | 6 +-
providers/snowflake/docs/changelog.rst | 27 +
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 | 15 +
providers/ssh/docs/index.rst | 6 +-
providers/ssh/provider.yaml | 4 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 29 +
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
providers/tableau/README.rst | 6 +-
providers/tableau/docs/changelog.rst | 13 +
providers/tableau/docs/index.rst | 6 +-
providers/tableau/provider.yaml | 4 +-
providers/tableau/pyproject.toml | 6 +-
.../src/airflow/providers/tableau/__init__.py | 2 +-
providers/telegram/README.rst | 6 +-
providers/telegram/docs/changelog.rst | 19 +
providers/telegram/docs/index.rst | 6 +-
providers/telegram/provider.yaml | 3 +-
providers/telegram/pyproject.toml | 6 +-
.../src/airflow/providers/telegram/__init__.py | 2 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 20 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
providers/trino/README.rst | 6 +-
providers/trino/docs/changelog.rst | 14 +
providers/trino/docs/index.rst | 6 +-
providers/trino/provider.yaml | 4 +-
providers/trino/pyproject.toml | 6 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
providers/weaviate/README.rst | 6 +-
providers/weaviate/docs/changelog.rst | 16 +
providers/weaviate/docs/index.rst | 6 +-
providers/weaviate/provider.yaml | 4 +-
providers/weaviate/pyproject.toml | 6 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
providers/yandex/README.rst | 6 +-
providers/yandex/docs/changelog.rst | 13 +
providers/yandex/docs/index.rst | 6 +-
providers/yandex/provider.yaml | 4 +-
providers/yandex/pyproject.toml | 6 +-
.../src/airflow/providers/yandex/__init__.py | 2 +-
pyproject.toml | 11 +-
scripts/ci/prek/upgrade_important_versions.py | 10 +
scripts/in_container/run_fix_ownership.py | 2 +-
.../ci/prek/test_upgrade_important_versions.py | 25 +
task-sdk/src/airflow/sdk/api/client.py | 14 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 1 +
.../src/airflow/sdk/definitions/retry_policy.py | 9 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 1 +
.../airflow/sdk/execution_time/schema/schema.json | 12 +
.../sdk/execution_time/schema/versions/__init__.py | 3 +-
.../execution_time/schema/versions/v2026_10_30.py | 9 +
.../src/airflow/sdk/execution_time/supervisor.py | 98 +-
.../src/airflow/sdk/execution_time/task_runner.py | 21 +-
task-sdk/src/airflow/sdk/state.py | 1 +
task-sdk/tests/task_sdk/api/test_client.py | 10 +-
.../execution_time/schema/test_migrator.py | 31 +
.../task_sdk/execution_time/test_supervisor.py | 193 +-
.../task_sdk/execution_time/test_task_runner.py | 122 +
ts-sdk/.pre-commit-config.yaml | 12 +
ts-sdk/package.json | 3 +-
.../schema.json => ts-sdk/schema/dag-schema.json | 0
...ck_supervisor_schema.py => check_dag_schema.py} | 13 +-
ts-sdk/scripts/ci/prek/sync_dag_schema.py | 65 +
ts-sdk/scripts/generate-dag-schema.mjs | 512 +++
ts-sdk/src/generated/dag-schema-fields.ts | 215 ++
ts-sdk/src/sdk/dag.ts | 163 +-
ts-sdk/tests/public-api.test.ts | 48 +-
ts-sdk/tests/scripts/generate-dag-schema.test.ts | 419 +++
ts-sdk/tests/sdk/dag.test.ts | 150 +-
ts-sdk/tsconfig.json | 7 +-
uv.lock | 184 +-
590 files changed, 12456 insertions(+), 1468 deletions(-)
rename
airflow-core/docs/img/change-theme/{exmaple_theme_configuration_dark_mode.png
=> example_theme_configuration_dark_mode.png} (100%)
rename
airflow-core/docs/img/change-theme/{exmaple_theme_configuration_light_mode.png
=> example_theme_configuration_light_mode.png} (100%)
create mode 100644 airflow-core/src/airflow/serialization/dag_version_diff.py
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.test.tsx
create mode 100644
airflow-core/tests/unit/serialization/test_dag_version_diff.py
create mode 100644
airflow-core/tests/unit/serialization/test_ts_sdk_serialization_version.py
delete mode 100644 providers/duckdb/docs/.latest-doc-only-change.txt
create mode 100644 providers/sftp/tests/unit/sftp/test_exceptions.py
copy airflow-core/src/airflow/serialization/schema.json =>
ts-sdk/schema/dag-schema.json (100%)
copy ts-sdk/scripts/ci/prek/{check_supervisor_schema.py =>
check_dag_schema.py} (83%)
create mode 100755 ts-sdk/scripts/ci/prek/sync_dag_schema.py
create mode 100644 ts-sdk/scripts/generate-dag-schema.mjs
create mode 100644 ts-sdk/src/generated/dag-schema-fields.ts
create mode 100644 ts-sdk/tests/scripts/generate-dag-schema.test.ts