This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch jason/lang-sdk-e2e/07-java-sdk
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard a943bc2f31c Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
discard 542927f5829 Java SDK: Declare a Dag's task graph with @Builder.Deps
discard 7c2f6063c60 Java SDK: Resolve a task's arguments from the Dag's own
wiring
discard 079161f0e0b Java SDK: Generate Dag and task configuration from the
serialization schema
discard 5593c8f92fa Java SDK: Describe native Java Dags without reference to
Python
discard 888dc778166 Complete the license header of the TS SDK conformance check
discard d86e6693175 TS SDK: add triggerDagRun to the native Dag surface
discard 91cdfefcbba TS SDK: add multi-way branching with dag.switch
discard ca1414a4f4e TS SDK: add conditional branching with dag.if
discard f7d858a8a77 TS SDK: answer the Dag-parsing request from bundle.serve
discard c354e508aec TS SDK: serialize a native Dag to Dag JSON
discard 948ab339189 TS SDK: reject a Dag whose order-only edges form a cycle
discard 5ba7e3552cf TS SDK: add task groups to the native Dag surface
discard 234687c4f78 TS SDK: draw order-only edges with before and after
discard 12eec52d5de TS SDK: default a task id to the handler's name
discard b441444a504 Share the bundle section mutation helper between Node tests
discard 51181dbaaef Document parsing native TypeScript Dags
discard 703a846c474 Parse native TypeScript Dags with the Node coordinator
discard 4619343691a Name the JAR manifest attributes the Java coordinator reads
discard 059fb010913 Test the Java Dag source placeholder for a JAR without a
manifest
discard 0345380d615 Treat an unreadable JAR like one without a manifest
discard 38870368149 Document native Java Dag parsing
discard fc7bdb31bbc Parse native Java Dags with their coordinator
discard 95656dcaab9 Embed the Dag source in Java bundle JARs
discard 9e5288476d4 Build the JVM command that parses a Dag JAR
discard 27324eafa27 Read JAR manifests per the JAR specification
discard 6242f832450 Start a coordinator's runtime from a fresh interpreter on
macOS
discard 4ac3ea65674 Keep a bundle's importers when the coordinator config is
broken
discard 223e57a3dcc Store only native Dags that a Dag bag can rebuild
discard c35d7350951 Start a Lang-SDK parse runtime with default signal handling
discard 5e21873e033 Keep the first parse result from a Lang-SDK runtime
discard b1b72ce9a84 Run the Lang-SDK runtime in its own process group
discard 6e8bc728a57 Report an invalid frame from a Lang-SDK runtime as an
import error
discard 9b6b895a81b Name the missing task when a native Dag's edge points
nowhere
discard 4db8595aef0 Keep a native Dag's timezone when rebuilding it
discard 7e47a2fe824 Reject a native Dag whose task graph has a cycle
discard ed3d1c829ff Signal a Lang-SDK runtime's whole process tree
discard 61476ac72e9 Kill the Lang-SDK runtime when its parse is interrupted
discard c23c13fd14a Parse coordinator-claimed Dag files with their runtime
discard d1429705f42 Import native Dags through their coordinator
discard 8c8aaa84a20 Parse a coordinator's Dag file outside the Dag processor
discard 8a5d3042f9d Parse a Dag file with its coordinator's runtime
discard bf86b2e69be Rebuild a Lang-SDK Dag as an airflow.sdk.DAG
discard 806e80644ed Keep a stub task's preset arg bindings when serializing it
discard c7c9d35d31d Find the coordinators that parse a Dag bundle
discard 82ee9ae0918 Harden claimed-file discovery errors and archive importers
discard 9eed9ec1b9f Tidy the importer routing helpers and their tests
discard 1a42d02c217 Keep claimed files queued when their importer cannot list
them
discard 3e2e43eff5e Claim Dag files by extension and keep .py, .pyc and .zip
legacy
discard dc2ce958aab Read a claimed file's Dag source through its importer
discard 1f60b56820f Queue and track files that a Task SDK importer claims
discard 99205148612 Parse files that a Task SDK importer claims
discard dd58cd30c38 Materialise each configured importer spec once during
discovery
discard 1ea433b4ff5 Discover a bundle's Dag definitions through the importer
registry
omit bc31a7a4970 Reject empty subprocess coordinator artifact roots
omit 002e75919aa Reject concurrent subprocess coordinator execution
consistently
omit ec7447aa0c8 Make task bundle access dependencies explicit
omit ef75e1e84f0 Preserve custom subprocess coordinator compatibility
omit db652eb3b8e Read the Dag bundle configuration through a single entry
point
omit 5beb821edf1 Resolve coordinator Dag bundles without importing the task
runner
omit 869d197fc8b Make JavaCoordinator main_class optional in co-located mode
omit 7203ab14efa Harden subprocess coordinator artifact bundle resolution
omit fb3929e9ffd Document dag_bundle_name option for language-SDK
coordinators
omit a5b1c8731f8 Add dag_bundle_name option to subprocess coordinators
add 22ebb0943f7 [main] Upgrade important CI environment (#73629)
add 3107af07cd1 Use POSIX-compliant tail to extract token line in EKS
command (#73690)
add 23c6e77067f Fix provider.yaml doc URL check with several suspended
providers (#73782)
add f2fae8c737a Fix flaky test_trigger_log in triggerer job tests (#72919)
add a55f0a1af04 Add GitSync sidecar upgrade warning to Helm chart docs
(#73814)
add 5bc738efafe Add tests for the Google Cloud Tasks links (#72846)
add ebe3bddae79 Keep README stable Airflow version pins in sync with
releases (#73786)
add 46823e47aee Correct the meaning of _arg_bindings in the serialization
schema (#73644)
add f49bce025a8 Optimize UI and Playwright dependency caching (#73183)
add acaa1cba930 Republish repaired prek caches and keep unrelated host
caches (#73182)
add dff97f0908a Added Louisa AI to the list of companies using Apache
Airflow (#73665)
add 28e7c89c363 fix k8s download_schemas_for_version for hpa (#73821)
add 23bcbe6c99a Regenerate provider requirement tables in breeze ci
upgrade (#73802)
add 2827a13dc4f Check ui-field-behaviour drift between hooks and
provider.yaml (#73801)
add 30d0d7bac4a Adjust warnings, import errors, and Dag source models for
sdk/importers (#72474)
add f242c8e0513 Skip CI duration alerts when the newest run is stale
(#73831)
add 3634bc89d04 Discover a bundle's Dag definitions through the importer
registry (#73728)
add 7eac9ac7c1b Add connections and agent-security entries to the
common.ai sidebar (#73837)
add 58af2f521bb Close the ssh askpass helper in GitHook before ssh
executes it (#73427)
add b86fa49a15d Optimize CI disk cleanup (#73184)
add 5fbe8dbb433 Clarify DateTimeSensorAsync changelog entry (#73833)
add 873bd644b51 Let a person approve an agent's tool calls before they run
(#73586)
add 66607ac5483 AIP-82: Add KinesisMessageQueueProvider (#73509)
add b357ae24709 Bump the auth-ui-package-updates group across 1 directory
with 8 updates (#73740)
add 455d9581367 UI: Complete Polish translations and unify slot/deferred
wording (#72623)
add 5428b3b995b Secrets backends order updated (#70681)
add 232255e7fa7 Go SDK: add airflow.Dag and dag.Task, the native Dag
constructors (#73767)
add 68693340f67 Add dag_bundle_name option to subprocess coordinators
add b87d2907a24 Document dag_bundle_name option for language-SDK
coordinators
add da37c21686b Harden subprocess coordinator artifact bundle resolution
add 5fa4098e409 Make JavaCoordinator main_class optional in co-located mode
add ed24a7cdcdf Resolve coordinator Dag bundles without importing the task
runner
add 14d5448c276 Read the Dag bundle configuration through a single entry
point
add a59132f973f Preserve custom subprocess coordinator compatibility
add ce617c8474b Make task bundle access dependencies explicit
add 0aec44e8889 Reject concurrent subprocess coordinator execution
consistently
add a481344223b Reject empty subprocess coordinator artifact roots
add 12a840b2d22 Parse files that a Task SDK importer claims
add cf95650ca17 Queue and track files that a Task SDK importer claims
add b051d590807 Read a claimed file's Dag source through its importer
add a7a81df9f58 Claim Dag files by extension and keep .py, .pyc and .zip
legacy
add 1b150318965 Keep claimed files queued when their importer cannot list
them
add 9ff9d0a6da5 Tidy the importer routing helpers and their tests
add 40bf9b36a7c Harden claimed-file discovery errors and archive importers
add 396263ed7f0 Find the coordinators that parse a Dag bundle
add ae498dcc9ec Keep a stub task's preset arg bindings when serializing it
add 7fb00390d88 Rebuild a Lang-SDK Dag as an airflow.sdk.DAG
add 23903ec049f Parse a Dag file with its coordinator's runtime
add ecc19efc4b6 Parse a coordinator's Dag file outside the Dag processor
add 1fe5309883a Import native Dags through their coordinator
add 2eee8648c55 Parse coordinator-claimed Dag files with their runtime
add c39a58eaa2f Kill the Lang-SDK runtime when its parse is interrupted
add a0dfcd23390 Signal a Lang-SDK runtime's whole process tree
add aeb390767e1 Reject a native Dag whose task graph has a cycle
add cd7689b2fdf Keep a native Dag's timezone when rebuilding it
add 63af72aaa72 Name the missing task when a native Dag's edge points
nowhere
add c7007e70d66 Report an invalid frame from a Lang-SDK runtime as an
import error
add f743cc4c9e4 Run the Lang-SDK runtime in its own process group
add 2db7f8f64ad Keep the first parse result from a Lang-SDK runtime
add 0359eab0e99 Start a Lang-SDK parse runtime with default signal handling
add ac74a126a27 Store only native Dags that a Dag bag can rebuild
add 75761970850 Keep a bundle's importers when the coordinator config is
broken
add 8e8c9820d22 Start a coordinator's runtime from a fresh interpreter on
macOS
add 8159ac365b0 Read JAR manifests per the JAR specification
add b5b72f5ae4d Build the JVM command that parses a Dag JAR
add 52b381cc1c2 Embed the Dag source in Java bundle JARs
add ca7dc2a707d Parse native Java Dags with their coordinator
add 12fa0f239a5 Document native Java Dag parsing
add 6ff2da485c9 Treat an unreadable JAR like one without a manifest
add 178e4681803 Test the Java Dag source placeholder for a JAR without a
manifest
add a80facc76d2 Name the JAR manifest attributes the Java coordinator reads
add 91e43c013ae Parse native TypeScript Dags with the Node coordinator
add bf7586d8ff9 Document parsing native TypeScript Dags
add 3ccfffcd4a7 Share the bundle section mutation helper between Node tests
add dd99f04d8c8 TS SDK: default a task id to the handler's name
add cbdbf025ee7 TS SDK: draw order-only edges with before and after
add 1b17839258f TS SDK: add task groups to the native Dag surface
add 828b7963823 TS SDK: reject a Dag whose order-only edges form a cycle
add 54d07512b98 TS SDK: serialize a native Dag to Dag JSON
add b249b3fc2ec TS SDK: answer the Dag-parsing request from bundle.serve
add d8214901e71 TS SDK: add conditional branching with dag.if
add 65bd2e1d6de TS SDK: add multi-way branching with dag.switch
add 36db4e267d5 TS SDK: add triggerDagRun to the native Dag surface
add 4a7d46e61e0 Complete the license header of the TS SDK conformance check
add f7e6dea0a02 Java SDK: Describe native Java Dags without reference to
Python
add 2ae17e0f9ff Java SDK: Generate Dag and task configuration from the
serialization schema
add 715775b0e6f Java SDK: Resolve a task's arguments from the Dag's own
wiring
add 62271005134 Java SDK: Declare a Dag's task graph with @Builder.Deps
add daaccdf3532 Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
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 (a943bc2f31c)
\
N -- N -- N refs/heads/jason/lang-sdk-e2e/07-java-sdk
(daaccdf3532)
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:
.github/actions/install-prek/action.yml | 159 +-
.github/workflows/basic-tests.yml | 41 +-
.github/workflows/ui-e2e-tests.yml | 21 +-
.pre-commit-config.yaml | 4 +-
Dockerfile | 2 +-
Dockerfile.ci | 4 +-
INTHEWILD.md | 1 +
.../0007-taskflow-across-language-boundary.md | 3 +
.../adr/lang-sdk/0008-control-flow-constructs.md | 2 +-
.../0009-provider-operators-as-generated-dsl.md | 4 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/migrations-ref.rst | 6 +-
.../security/secrets/secrets-backend/index.rst | 23 +-
airflow-core/newsfragments/70681.significant.rst | 7 +
airflow-core/pyproject.toml | 4 +-
airflow-core/src/airflow/api/common/delete_dag.py | 7 +-
.../auth/managers/simple/ui/package.json | 16 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 356 +-
.../api_fastapi/core_api/datamodels/dag_sources.py | 1 +
.../api_fastapi/core_api/datamodels/dag_warning.py | 4 +-
.../core_api/datamodels/import_error.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 98 +
.../core_api/openapi/v2-rest-api-generated.yaml | 25 +-
.../core_api/routes/public/dag_sources.py | 1 +
.../core_api/routes/public/dag_warning.py | 6 +-
.../core_api/routes/public/import_error.py | 2 +
.../api_fastapi/core_api/routes/ui/config.py | 45 +-
.../src/airflow/config_templates/config.yml | 34 +
airflow-core/src/airflow/configuration.py | 7 +-
.../src/airflow/dag_processing/collection.py | 2 +
..._3_4_0_add_source_reference_to_import_error.py} | 24 +-
...g.py => 0140_3_4_0_add_language_to_dag_code.py} | 26 +-
airflow-core/src/airflow/models/dagcode.py | 3 +
airflow-core/src/airflow/models/dagwarning.py | 31 +-
airflow-core/src/airflow/models/errors.py | 12 +-
airflow-core/src/airflow/secrets/__init__.py | 4 +-
airflow-core/src/airflow/secrets/base_secrets.py | 5 +-
airflow-core/src/airflow/serialization/schema.json | 2 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 10 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 16 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 16 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 16 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 16 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 36 +-
.../ui/openapi-gen/requests/services.gen.ts | 26 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 37 +-
.../airflow/ui/public/i18n/locales/en/admin.json | 2 +
.../airflow/ui/public/i18n/locales/pl/admin.json | 30 +-
.../airflow/ui/public/i18n/locales/pl/assets.json | 21 +-
.../airflow/ui/public/i18n/locales/pl/browse.json | 38 +
.../airflow/ui/public/i18n/locales/pl/common.json | 103 +-
.../ui/public/i18n/locales/pl/components.json | 29 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 13 +-
.../airflow/ui/public/i18n/locales/pl/dags.json | 30 +-
.../ui/public/i18n/locales/pl/dashboard.json | 6 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 2 +-
.../src/airflow/ui/src/components/StatsCard.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 10 +-
.../BackendsOrderCard.tsx} | 33 +-
.../ui/src/pages/Variables/BackendsOrderModal.tsx | 64 +
.../airflow/ui/src/pages/Variables/Variables.tsx | 2 +
airflow-core/src/airflow/utils/db.py | 2 +-
.../tests/unit/always/test_project_structure.py | 1 -
airflow-core/tests/unit/always/test_secrets.py | 121 +
.../tests/unit/api/common/test_delete_dag.py | 49 +
.../core_api/routes/public/test_dag_sources.py | 4 +
.../core_api/routes/public/test_dag_warning.py | 19 +
.../core_api/routes/public/test_import_error.py | 76 +-
.../api_fastapi/core_api/routes/ui/test_config.py | 62 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 22 +-
airflow-core/tests/unit/models/test_dagcode.py | 8 +
airflow-core/tests/unit/models/test_dagwarning.py | 38 +-
airflow-core/tests/unit/models/test_errors.py | 86 +
airflow-ctl-tests/pyproject.toml | 4 +-
airflow-ctl/pyproject.toml | 4 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 12 +-
.../tests/airflow_ctl/api/test_operations.py | 1 +
airflow-e2e-tests/pyproject.toml | 6 +-
chart/docs/manage-dag-files.rst | 4 +
chart/pyproject.toml | 4 +-
clients/python/pyproject.toml | 4 +-
dev/README_RELEASE_AIRFLOW.md | 6 +-
dev/breeze/doc/08_ci_tasks.rst | 4 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/pyproject.toml | 10 +-
.../src/airflow_breeze/commands/ci_commands.py | 9 +
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 6 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../templates/pyproject_TEMPLATE.toml.jinja2 | 2 +-
dev/breeze/tests/test_ci_upgrade.py | 16 +-
dev/breeze/uv.lock | 160 +-
dev/mypy/pyproject.toml | 4 +-
dev/pyproject.toml | 4 +-
dev/registry/pyproject.toml | 4 +-
devel-common/pyproject.toml | 4 +-
docker-stack-docs/pyproject.toml | 4 +-
docker-tests/pyproject.toml | 4 +-
go-sdk/adr/0008-native-dag-interface.md | 18 +-
go-sdk/airflow/bundle.go | 37 +-
go-sdk/airflow/bundle_test.go | 44 +-
go-sdk/airflow/dag.go | 234 +
go-sdk/airflow/dag_test.go | 461 ++
go-sdk/airflow/serve.go | 2 +-
go-sdk/{pkg/logging/attrs.go => airflow/spec.go} | 17 +-
go-sdk/airflow/task_handler.go | 23 +-
.../foreignitem/main.go => task_option.go} | 25 +-
.../{foreignitem => foreigntaskoption}/main.go | 14 +-
java-sdk/sdk/schema/dag-schema.json | 2 +-
kubernetes-tests/pyproject.toml | 4 +-
.../test_kubernetes_pod_operator.py | 2 +-
performance/pyproject.toml | 2 +-
providers-summary-docs/pyproject.toml | 4 +-
providers/airbyte/pyproject.toml | 2 +-
providers/akeyless/pyproject.toml | 2 +-
providers/alibaba/pyproject.toml | 2 +-
providers/amazon/README.rst | 4 +-
providers/amazon/docs/index.rst | 4 +-
providers/amazon/docs/message-queues/index.rst | 55 +
providers/amazon/provider.yaml | 1 +
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/aws/hooks/eks.py | 6 +-
.../amazon/aws/queues/{sqs.py => kinesis.py} | 32 +-
.../airflow/providers/amazon/get_provider_info.py | 5 +-
.../amazon/aws/example_kinesis_message_queue.py | 98 +
.../amazon/tests/unit/amazon/aws/hooks/test_eks.py | 40 +-
.../tests/unit/amazon/aws/queues/test_kinesis.py | 185 +
providers/anthropic/pyproject.toml | 2 +-
providers/apache/arrow/pyproject.toml | 2 +-
providers/apache/beam/pyproject.toml | 2 +-
providers/apache/cassandra/pyproject.toml | 2 +-
providers/apache/drill/pyproject.toml | 2 +-
providers/apache/druid/pyproject.toml | 2 +-
providers/apache/flink/pyproject.toml | 2 +-
providers/apache/hdfs/pyproject.toml | 2 +-
providers/apache/hive/pyproject.toml | 2 +-
providers/apache/iceberg/pyproject.toml | 2 +-
providers/apache/impala/pyproject.toml | 2 +-
providers/apache/kafka/pyproject.toml | 2 +-
providers/apache/kylin/pyproject.toml | 2 +-
providers/apache/livy/pyproject.toml | 2 +-
providers/apache/pig/pyproject.toml | 2 +-
providers/apache/pinot/pyproject.toml | 2 +-
providers/apache/spark/pyproject.toml | 2 +-
providers/apache/tinkerpop/pyproject.toml | 2 +-
providers/apprise/pyproject.toml | 2 +-
providers/arangodb/pyproject.toml | 2 +-
providers/asana/pyproject.toml | 2 +-
providers/atlassian/jira/pyproject.toml | 2 +-
providers/celery/pyproject.toml | 2 +-
providers/clickhousedb/pyproject.toml | 2 +-
providers/cloudant/pyproject.toml | 2 +-
providers/cncf/kubernetes/pyproject.toml | 2 +-
.../cncf/kubernetes/utils/xcom_sidecar.py | 2 +-
.../system/cncf/kubernetes/example_kubernetes.py | 2 +-
.../cncf/kubernetes/example_kubernetes_async.py | 2 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 6 +-
providers/cohere/pyproject.toml | 2 +-
providers/common/ai/docs/agent_security.rst | 22 +-
providers/common/ai/docs/connections/index.rst | 62 +
providers/common/ai/docs/examples.rst | 3 +
providers/common/ai/docs/features.rst | 9 +-
providers/common/ai/docs/index.rst | 4 +-
providers/common/ai/docs/observability.rst | 4 +-
providers/common/ai/docs/operations.rst | 1 -
providers/common/ai/docs/operators/agent.rst | 4 +-
providers/common/ai/docs/operators/index.rst | 4 +-
providers/common/ai/docs/tool_approval.rst | 144 +
providers/common/ai/pyproject.toml | 4 +-
.../ai/example_dags/example_agent_tool_approval.py | 58 +
.../src/airflow/providers/common/ai/exceptions.py | 32 +-
.../airflow/providers/common/ai/mixins/approval.py | 30 +
.../airflow/providers/common/ai/operators/agent.py | 334 +-
.../airflow/providers/common/ai/operators/llm.py | 24 +-
.../providers/common/ai/toolsets/logging.py | 6 +
.../tests/unit/common/ai/operators/test_agent.py | 6 +-
.../ai/operators/test_agent_tool_approval.py | 556 +++
.../tests/unit/common/ai/toolsets/test_logging.py | 18 +
providers/common/compat/pyproject.toml | 2 +-
providers/common/dataquality/pyproject.toml | 2 +-
providers/common/io/pyproject.toml | 2 +-
providers/common/messaging/pyproject.toml | 2 +-
providers/common/sql/pyproject.toml | 2 +-
providers/databricks/docs/index.rst | 2 +-
providers/databricks/pyproject.toml | 4 +-
providers/datadog/pyproject.toml | 2 +-
providers/dbt/cloud/pyproject.toml | 2 +-
providers/dingding/pyproject.toml | 2 +-
providers/discord/pyproject.toml | 2 +-
providers/docker/pyproject.toml | 2 +-
providers/duckdb/pyproject.toml | 2 +-
providers/edge3/pyproject.toml | 4 +-
providers/elasticsearch/pyproject.toml | 2 +-
providers/exasol/pyproject.toml | 2 +-
providers/fab/pyproject.toml | 4 +-
providers/facebook/pyproject.toml | 2 +-
providers/ftp/pyproject.toml | 2 +-
providers/git/pyproject.toml | 2 +-
.../git/src/airflow/providers/git/hooks/git.py | 31 +-
providers/git/tests/unit/git/hooks/test_git.py | 19 +
providers/github/pyproject.toml | 2 +-
providers/google/README.rst | 80 +-
providers/google/docs/index.rst | 80 +-
providers/google/pyproject.toml | 82 +-
.../unit/google/cloud/links/test_cloud_tasks.py | 155 +
providers/grpc/pyproject.toml | 2 +-
providers/hashicorp/docs/index.rst | 2 +-
providers/hashicorp/pyproject.toml | 4 +-
providers/http/pyproject.toml | 2 +-
providers/ibm/db2/pyproject.toml | 2 +-
providers/ibm/mq/pyproject.toml | 2 +-
providers/imap/pyproject.toml | 2 +-
providers/influxdb/pyproject.toml | 2 +-
providers/informatica/pyproject.toml | 2 +-
providers/jdbc/pyproject.toml | 2 +-
providers/jenkins/pyproject.toml | 2 +-
providers/keycloak/pyproject.toml | 2 +-
providers/microsoft/azure/README.rst | 30 +-
providers/microsoft/azure/docs/index.rst | 30 +-
providers/microsoft/azure/pyproject.toml | 34 +-
providers/microsoft/mssql/pyproject.toml | 2 +-
providers/microsoft/psrp/pyproject.toml | 2 +-
providers/microsoft/winrm/pyproject.toml | 2 +-
providers/mongo/pyproject.toml | 2 +-
providers/mysql/pyproject.toml | 2 +-
providers/neo4j/pyproject.toml | 2 +-
providers/odbc/pyproject.toml | 2 +-
providers/openai/pyproject.toml | 2 +-
providers/openfaas/pyproject.toml | 2 +-
providers/openlineage/pyproject.toml | 2 +-
providers/opensearch/pyproject.toml | 2 +-
providers/opsgenie/pyproject.toml | 2 +-
providers/oracle/pyproject.toml | 2 +-
providers/pagerduty/pyproject.toml | 2 +-
providers/papermill/pyproject.toml | 2 +-
providers/pgvector/pyproject.toml | 2 +-
providers/pinecone/pyproject.toml | 2 +-
providers/postgres/pyproject.toml | 2 +-
providers/presto/pyproject.toml | 2 +-
providers/qdrant/pyproject.toml | 2 +-
providers/redis/pyproject.toml | 2 +-
providers/salesforce/pyproject.toml | 2 +-
providers/samba/pyproject.toml | 2 +-
providers/segment/pyproject.toml | 2 +-
providers/sendgrid/pyproject.toml | 2 +-
providers/sftp/pyproject.toml | 2 +-
providers/singularity/pyproject.toml | 2 +-
providers/slack/pyproject.toml | 2 +-
providers/smtp/pyproject.toml | 2 +-
providers/snowflake/pyproject.toml | 2 +-
providers/sqlite/pyproject.toml | 2 +-
providers/ssh/pyproject.toml | 2 +-
providers/standard/docs/changelog.rst | 2 +-
providers/standard/pyproject.toml | 2 +-
providers/tableau/pyproject.toml | 2 +-
providers/telegram/pyproject.toml | 2 +-
providers/teradata/pyproject.toml | 2 +-
providers/trino/pyproject.toml | 2 +-
providers/vertica/pyproject.toml | 2 +-
providers/vespa/pyproject.toml | 2 +-
providers/weaviate/pyproject.toml | 2 +-
providers/yandex/pyproject.toml | 2 +-
providers/ydb/pyproject.toml | 2 +-
providers/zendesk/pyproject.toml | 2 +-
pyproject.toml | 7 +-
scripts/ci/analyze_ci_job_durations.py | 24 +-
scripts/ci/prek/check_extra_packages_ref.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_provider_conn_fields.py | 123 +-
scripts/ci/prek/download_k8s_schemas.py | 7 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/supported_versions.py | 34 +
scripts/ci/prek_cache_markers.py | 60 +
.../in_container/provider_suspension.py | 40 +-
.../in_container/run_provider_yaml_files_check.py | 89 +-
scripts/pyproject.toml | 4 +-
.../test_check_ui_field_behaviour_matches_hook.py | 130 +
scripts/tests/ci/prek/test_supported_versions.py | 71 +
scripts/tests/ci/test_analyze_ci_job_durations.py | 46 +
scripts/tests/ci/test_prek_cache_optimizations.py | 439 ++
.../tests/in_container/test_provider_suspension.py | 64 +
.../_shared => scripts/tests/tools}/__init__.py | 0
scripts/tests/tools/test_free_up_disk_space.py | 98 +
scripts/tools/free_up_disk_space.sh | 25 +-
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 4 +-
.../configuration/secrets_backends.py | 88 +
shared/dagnode/pyproject.toml | 4 +-
shared/listeners/pyproject.toml | 4 +-
shared/logging/pyproject.toml | 4 +-
shared/module_loading/pyproject.toml | 4 +-
shared/observability/pyproject.toml | 4 +-
shared/plugins_manager/pyproject.toml | 4 +-
shared/providers_discovery/pyproject.toml | 4 +-
shared/secrets_backend/pyproject.toml | 4 +-
shared/secrets_masker/pyproject.toml | 4 +-
shared/serialization/pyproject.toml | 4 +-
shared/state/pyproject.toml | 4 +-
shared/template_rendering/pyproject.toml | 4 +-
shared/timezones/pyproject.toml | 4 +-
task-sdk-integration-tests/pyproject.toml | 4 +-
task-sdk/pyproject.toml | 4 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
task-sdk/src/airflow/sdk/configuration.py | 10 +-
.../airflow/sdk/execution_time/secrets/__init__.py | 9 +-
.../src/airflow/sdk/execution_time/supervisor.py | 3 +-
.../tests/task_sdk/execution_time/test_context.py | 13 +-
.../tests/task_sdk/execution_time/test_secrets.py | 3 +-
ts-sdk/schema/dag-schema.json | 2 +-
uv.lock | 4742 ++++++++++----------
311 files changed, 8577 insertions(+), 3380 deletions(-)
create mode 100644 airflow-core/newsfragments/70681.significant.rst
copy
airflow-core/src/airflow/migrations/versions/{0132_3_4_0_add_team_name_to_log.py
=> 0139_3_4_0_add_source_reference_to_import_error.py} (63%)
copy
airflow-core/src/airflow/migrations/versions/{0132_3_4_0_add_team_name_to_log.py
=> 0140_3_4_0_add_language_to_dag_code.py} (63%)
copy
airflow-core/src/airflow/ui/src/pages/{Asset/AssetStateStore/AddAssetStateStoreButton.tsx
=> Variables/BackendsOrderCard.tsx} (58%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Variables/BackendsOrderModal.tsx
create mode 100644 airflow-core/tests/unit/models/test_errors.py
create mode 100644 go-sdk/airflow/dag.go
create mode 100644 go-sdk/airflow/dag_test.go
copy go-sdk/{pkg/logging/attrs.go => airflow/spec.go} (68%)
copy go-sdk/airflow/{testdata/foreignitem/main.go => task_option.go} (58%)
copy go-sdk/airflow/testdata/{foreignitem => foreigntaskoption}/main.go (68%)
copy providers/amazon/src/airflow/providers/amazon/aws/queues/{sqs.py =>
kinesis.py} (63%)
create mode 100644
providers/amazon/tests/system/amazon/aws/example_kinesis_message_queue.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/queues/test_kinesis.py
create mode 100644 providers/common/ai/docs/connections/index.rst
create mode 100644 providers/common/ai/docs/tool_approval.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_agent_tool_approval.py
create mode 100644
providers/common/ai/tests/unit/common/ai/operators/test_agent_tool_approval.py
create mode 100644
providers/google/tests/unit/google/cloud/links/test_cloud_tasks.py
create mode 100644 scripts/ci/prek_cache_markers.py
copy dev/breeze/src/airflow_breeze/utils/click_utils.py =>
scripts/in_container/provider_suspension.py (50%)
create mode 100644
scripts/tests/ci/prek/test_check_ui_field_behaviour_matches_hook.py
create mode 100644 scripts/tests/ci/prek/test_supported_versions.py
create mode 100644 scripts/tests/ci/test_prek_cache_optimizations.py
create mode 100644 scripts/tests/in_container/test_provider_suspension.py
copy {airflow-core/src/airflow/_shared => scripts/tests/tools}/__init__.py
(100%)
create mode 100644 scripts/tests/tools/test_free_up_disk_space.py
create mode 100644
shared/configuration/src/airflow_shared/configuration/secrets_backends.py