This is an automated email from the ASF dual-hosted git repository.
mobuchowski pushed a change to branch openlineage-systemtests
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 464e11bc49f add basic system tests for OpenLineage
add 31b10011f64 AIP-84 List Mapped Task Instances (#43642)
add c9d0dbf11d5 Extract OTEL span set attrs logic in one place in the
scheduler (#43787)
add e5020656300 AIP-84 List Task Instances (#43760)
add c63cc69323d AIP-84 Get TI and Mapped TI dependencies (#43788)
add f52c471ed3a AIP-72: Add "Get Connection" endpoint for Execution API
(#43767)
add 5be717cdf65 AIP-82 Create references between triggers and assets
(#43666)
add 24b2369ffe8 Generate `openapi.json` for the Execution API sub-app
(#43796)
add af0837cffab Add clear button to search bar (#43795)
add 80608995b34 Make sure a default sort is persisted through
tableUrlState (#43803)
add 1c38b2a479d Move all scroll logic to page level (#43802)
add f6e0900b9e0 Prevent using trigger_rule="always" in a dynamic mapped
task (#43368)
add 1363cc5f8c1 Fix PostgresHook bug when getting AWS Redshift Serverless
credentials (#43807)
add 80e9a9435f6 Bump minimum version of open-telemetry (#43809)
add 50aabd2a4d3 Improve ExecutionCallableRunner (#43812)
add 6613320c5ad Remove hatch as devel-devscript dependency (#43808)
add 36e716a306d AIP-84 Convert async route to sync routes (#43797)
add cd323e2edc2 Ensure lifespans of mounted FastAPI sub-apps are called
(#43817)
add f57db717a31 AIP-84 Add ability to update dag run note in PATCH dag_run
endpoint (#43508)
add 2b79d18f7ea Rename Fast API serializers/schemas to `datamodels`
(#43823)
add ccb18abdba2 Fix duplicate `TaskInstanceState` entity in FastApi Schema
(#43824)
add 23dfe54bc30 Fix `HttpToS3Operator` throws exception if s3_bucket
parameter is not passed (#43828)
add 0b59ca372f6 bump packaging version to 24.2 (#43827)
add 9a5a80e6df5 Bump UV to 0.5.0 (#43829)
add 053c8a5516f AIP-84 remove remnants of async def (#43831)
add 8906f127fec Bump apache-airflow from 2.10.1 to 2.10.3 in /performance
(#43834)
add a212bf86abb Add basic support for git and local dag bundles (#42689)
add 6c30fc5bff8 Remove `async` keyword for Get Connection (#43836)
add 01302a18229 AIP-72: Add "Get Variable" endpoint for Execution API
(#43832)
add 2a9bded5ac2 Bump `uv` to `0.5.1` (#43838)
add 340a70bfe72 Added condition to check if it is a scheduled save or
rerun (#43453)
add 74bc8728fb5 Fix logs with leading spaces in the Docker operator
(#33692) (#43840)
add 14aa545ad84 chore: add leading underscore (#43843)
add 9bbf6f16f75 Test standard provider with Airflow 2.8 and 2.9 (#43556)
add 229750d8bb8 Fix EdgeExecutor breeze call (#43842)
add 63b2bbd167a Add random_name_suffix to SparkKubernetesOperator (#43800)
(#43847)
add 614f75db705 Contribution Documentation Updates (#43848)
add 9a5f6d61559 fix: replace \s with space (#43849)
add de881827009 #43252 Disable extra links button if link is null or empty
(#43844)
add b9513cc9b94 Fix Power BI trigger testcase (#43494)
add d4541015efd pydocstyle check: add leading underscore (PT004) (#43852)
add 96cd5a91a9a Correct provider path details in docs (#43850)
add b823f944c30 Additional Contribution Documentation Updates (#43856)
add 6d85a0466d9 Remove deprecations cncf.kubernetes (#43689)
add 02217ccf5c6 Fix hatchling to 1.25.0 (#43858)
add cf3f9c7640a bump hatchling to 1.26.1 (#43863)
add c89ab99aced Recommend and use ``uv`` instead of ``pipx`` in a few
remaining places (#43866)
add 19b73982d85 fix(scheulder_job_runner): remove the to-write warnings
that already exists in the db instead of those that does not exist (#43693)
add 12c7dd429c4 [Edge]Worker UI link beautification (#43869)
add 3f6f04868d0 Further make sure graphviz is truly optional feature on
MacOS (#43867)
add 084e29e9e28 Add documentation to standard provider operators (#43716)
add c82a76e2e35 Remove deprecated trigger rule (#43349)
add 606ef453a1c Provide option to `force_delete` for
`GCSToBigQueryOperator` (#43785)
add 564139d616a ci(github-actions): add uv to news-fragment action (#43878)
add bec090ceb85 Include unit test to Legacy UI/API Selective Check in
Breeze (#43719)
add ddbdf2e3537 Add global events page to browse along with support to
display only events for the dag. (#43793)
add c269be90c9a Change check for SQLite for FastAPI tests (#43884)
add 02003219d69 Use updated data from Dags API for Dag with recent DagRun.
(#43857)
add f757b87581d update how to guide section with doc references (#43889)
add 41d073e060d disable aip 44 for lessthan airlfow 3 version (#43818)
add 2105c94854a Fix breeze panel to start EdgeWorker when EdgeExecutor is
selected in breeze (#43864)
add 9ee9e52dc6e Add backport action to workflow (#43886)
add 18ef6875663 Added notion of dialects into ProvidersManager (#43726)
add 57b61f8a2ef Move Annotated import to `typing` module (#43887)
add 3be0b6c427b Change Airflow Backcompat provider tests to 2.10.3 (#43898)
add 45cbad79bd5 Correct mime-type (#43879)
add 4bc1257df4b Fix duplication of Task tries in the UI (#43891)
add 0360b992daa Upgrade tomli as build dependency (#43900)
add 52b960b5509 Add `pdbr` as devel debuggers (#43904)
add 23243b7bd3e Bump ruff to `0.7.3` (#43903)
add 28d0a7e90a5 Fix CI ruff format static checks (#43908)
add d07ff507b78 Allow setting run_id in xcom_pull method (#41343)
add 5bb922172ba Migrate public xcom endpoint get entry to fastapi (#43521)
add 03b34005d14 Revert "Add backport action to workflow (#43886)" (#43914)
add f71df97e6cd Fix prepare-provider-packages for fab and standard
providers (#43913)
add 3b146841dd8 Fix Mypy errors in main after recent changes (#43920)
add cf3d55d8ed7 Migrate YDB Operator to new DBAPI (#43784)
add 8e005ab1622 Remove strict_asset_uri_validation (#43915)
add 33dfb73a98e Fix main pre-commit (#43923)
add 86aa5ef27be Fix completion/linting/type checking with VSCode/pyright
(#43899)
add 5de2e73cc3b Redirect old location module imports to standard provider
(#43610)
add d8bd9993de6 Add support for IAM database authentication for CloudSQL
connection (#43631)
add ac4dec163c5 terminate kubernetes watch in case of unknown error
(#43645)
add e7b493712d4 Added support for job_parameters and dbt_commands in
DatabricksRunNowOperator (#43895)
add 320e4295b33 AIP-72: Add "XCom" GET endpoint for Execution API (#43894)
add 88d3c357c51 Combine fab, standard and sql providers into one step in
Breeze (#43925)
add 0d891b833a3 Skip DB tests, Task SDK tests and constraints generation
for PRs with only new UI changes. (#43926)
add c047c87aed0 Expand and improve the kerberos api authentication
documentation (#43682)
add 5241132a914 Remove missed DAG pickling code (#43907)
add 7509edea858 Minor Improvements to public FastAPI XCom endpoint (#43928)
add d23fe09ab1d [Edge]Add child processes to separate process group than
main (#43927)
add 32175768c1e AIP-84 Migrating GET ASSETS Legacy API to fastAPI (#43783)
add ed31b02ce15 Fix pre-commit selective checks (#43931)
add f924ecb6e3d AIP-84 Migrate test a connection to FastAPI API (#43766)
add edb3fe08f28 Update the "legacy command" help text for backfill (#43764)
add bb234dc316f Remove sending of task logs in otel traces (#43943)
add aa2a937e5c5 Allow Databricks SQL hook to cancel timed out queries
(#42668)
add 807fd6df6b9 Revert "Redirect old location module imports to standard
provider (#43610)" (#43946)
add a15a0c9a59b Upgrade hatchling to 1.26.3 (#43945)
add 6519657ed06 Migrate public endpoint Get Task to FastAPI (#43718)
add be870f6843d Remove Airflow 2.1 compat code in Google provider (#43952)
add 27b975807d5 Remove duplicate routers from the FastAPI app (#43962)
add 72d0b15304e Add missing test for apache cassandra hooks (#43951)
add e7194dff6a8 Add support for semicolon stripping to DbApiHook,
PrestoHook, and TrinoHook (#41916)
add 1f3e56500ce fix(dag_warning): rename argument error_type as
warning_type (#43877)
add 00ef9404452 [edge] Fixed UnicodeDecodeError during log file upload of
Edge worker (#43954)
add 981ecefd540 AIP-84 Improve doc for backfill API (#43937)
add 8d1abf74825 Add `source_tag` to PineconeHook (#43960)
add 52b12ad222c Add Trigger DAG UI with advance options (#43367)
add 1bd061df6e4 Refactor & rename `metrics_consistency_on` conf to
`timer_unit_consistency` (#43966)
add 267a332f198 ISSUE-43043 | AIP-38 | Add more sort options to Dags List
(#43231)
add 26e8063e7cc Remove references to logical date in new UI (#43974)
add 951b3a13bb3 adding deprications for core operators (#43972)
add 9564923f7bc Add queued_at to dag run response (#43976)
add 046e57c1390 Refactor span attribute setting with `span.set_attributes`
(#43982)
add 0d49535e33e Consolidate HTTP 401/403 Responses for Public API Routes
(#43932)
add 517132d60ba Readd state to DagRunInfo (#43987)
add a7137d7d5cb Stop passing "context" dict in OTel traces (#43991)
add edcb48a5f91 Fix parsing of development dependencies for airflow
version (#43995)
add e7a0dddc09c Limit temporarily aiohttp to < 3.11.0 (#44006)
add 4af2c27656f Refactor DagRun tracing into `_trace_dagrun` helper method
(#44008)
add c84d35622cc AIP 84: Migrate GET one ASSET legacy API to fast API
(#43825)
add c94715fdc6b fix(scheduler_job_runner/asset): fix how asset dag warning
is added (#43873)
add e4426c3d361 Remove non-existing field from the
ListCustomTrainingJobOperator's template_fields (#43924)
add 66d86f51663 Update 'namespace' priority for 'find_pod' function
(#43762)
add b3362f841f3 Add "@asset" to decorate a function as a DAG and an asset
(#41325)
add 9a364acc1b8 AIP 84: Migrate GET ASSET EVENTS legacy API to fast API
(#43881)
add b00a81000b1 Remove ORM references from datamodels for assets (#44010)
add 2ef8438eecb move version imports to inside utils (#44018)
add de15523d7c7 fix openlineage tests (#44025)
add 75de1d87710 Start building the replacement task runner for Task
Execution SDK (#43893)
add 339bc774815 Standardize timer metrics to milliseconds and remove
config (#43975)
add 77281399de2 Fix side effect of bad grpc.Chanel mocking (#44029)
add f60886cf368 add ProcessingEngineRunFacet to OL DAG Start event (#43213)
add 61076f0ab57 Improve ability to see and clear dags list filters (#43981)
add 40b33892c40 Separate Public Router for Auth-Free Endpoints (#43990)
add a53d9f6d257 Prepare docs for Nov 1st wave of providers (#44011)
add 87445bf385c Add dag run and task instance metrics to dashboard.
(#43888)
add 4b491ef9e76 Pass last_dag_run_state to recent dagruns API to fetch
only dagruns with given state. (#44035)
add 060f75f2b80 Fix Google Cloud Datacatalog test (#44037)
add cc7b7a2795b Apply suggestions from code review (#44036)
add fe4aafe5bed Improve error handling in Task SDK api client (#44044)
add ab529d13042 Ensure priority weight is capped at 32-bit integer to
prevent roll-over (#43611)
add 0393c1ffc8b Add basic asyncio support (#43944)
add 19303ca655a Give log event a name in a test (#44046)
add c3aabba0488 AIP-84 Migrate Clear Dag Run public endpoint to FastAPI
(#42975)
add 36e267d1d70 Split tests to core/providers/task-sdk/integration/system
(#43979)
add 123dadda0e0 Rename execution_date to logical_date across codebase
(#43902)
new 651b265f3cb add basic system tests for OpenLineage
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 (464e11bc49f)
\
N -- N -- N refs/heads/openlineage-systemtests (651b265f3cb)
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 1 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:
.github/workflows/basic-tests.yml | 35 +-
.github/workflows/check-providers.yml | 22 +-
.github/workflows/ci.yml | 184 +-
.github/workflows/helm-tests.yml | 2 +-
.github/workflows/integration-system-tests.yml | 200 ++
.github/workflows/integration-tests.yml | 103 -
.github/workflows/news-fragment.yml | 3 +-
.github/workflows/run-unit-tests.yml | 53 +-
.github/workflows/special-tests.yml | 43 +-
.github/workflows/task-sdk-tests.yml | 4 +-
.pre-commit-config.yaml | 13 +-
Dockerfile | 4 +-
Dockerfile.ci | 46 +-
INSTALL | 142 +-
README.md | 4 +-
airflow/api/client/local_client.py | 4 +-
airflow/api/common/mark_tasks.py | 122 +-
airflow/api/common/trigger_dag.py | 36 +-
airflow/api_connexion/endpoints/asset_endpoint.py | 4 +
.../api_connexion/endpoints/connection_endpoint.py | 1 +
.../api_connexion/endpoints/dag_run_endpoint.py | 19 +-
airflow/api_connexion/endpoints/task_endpoint.py | 2 +
.../endpoints/task_instance_endpoint.py | 30 +-
airflow/api_connexion/endpoints/xcom_endpoint.py | 2 +
airflow/api_connexion/openapi/v1.yaml | 37 +-
airflow/api_connexion/schemas/asset_schema.py | 2 +-
airflow/api_connexion/schemas/dag_run_schema.py | 26 +-
airflow/api_connexion/schemas/event_log_schema.py | 2 +-
.../api_connexion/schemas/task_instance_schema.py | 10 +-
airflow/api_connexion/schemas/xcom_schema.py | 2 +-
airflow/api_fastapi/app.py | 15 +
airflow/api_fastapi/common/parameters.py | 295 +-
airflow/api_fastapi/common/types.py | 65 +-
.../{serializers => datamodels}/__init__.py | 0
airflow/api_fastapi/core_api/datamodels/assets.py | 101 +
.../{serializers => datamodels}/backfills.py | 0
.../{serializers => datamodels}/connections.py | 7 +
.../{serializers => datamodels}/dag_run.py | 10 +-
.../{serializers => datamodels}/dag_sources.py | 0
.../{serializers => datamodels}/dag_stats.py | 0
.../{serializers => datamodels}/dag_warning.py | 0
.../core_api/{serializers => datamodels}/dags.py | 0
.../{serializers => datamodels}/event_logs.py | 2 +-
.../{serializers => datamodels}/import_error.py | 0
.../core_api/{serializers => datamodels}/job.py | 0
.../{serializers => datamodels}/monitor.py | 0
.../{serializers => datamodels}/plugins.py | 3 +-
.../core_api/{serializers => datamodels}/pools.py | 0
.../{serializers => datamodels}/providers.py | 0
.../{serializers => datamodels}/task_instances.py | 19 +-
airflow/api_fastapi/core_api/datamodels/tasks.py | 83 +
.../{serializers => datamodels}/trigger.py | 2 +-
.../{serializers => datamodels}/ui/__init__.py | 0
.../{serializers => datamodels}/ui/dags.py | 4 +-
.../{serializers => datamodels}/ui/dashboard.py | 4 +-
.../{serializers => datamodels}/variables.py | 2 +-
.../{serializers => datamodels}/version.py | 0
.../dag_warning.py => datamodels/xcom.py} | 35 +-
.../api_fastapi/core_api/openapi/v1-generated.yaml | 3516 ++++++++++++++-----
.../api_fastapi/core_api/routes/public/__init__.py | 48 +-
.../api_fastapi/core_api/routes/public/assets.py | 155 +
.../core_api/routes/public/backfills.py | 42 +-
.../core_api/routes/public/connections.py | 81 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 102 +-
.../core_api/routes/public/dag_sources.py | 9 +-
.../core_api/routes/public/dag_stats.py | 11 +-
.../core_api/routes/public/dag_warning.py | 11 +-
airflow/api_fastapi/core_api/routes/public/dags.py | 34 +-
.../core_api/routes/public/event_logs.py | 17 +-
.../core_api/routes/public/import_error.py | 16 +-
.../api_fastapi/core_api/routes/public/monitor.py | 4 +-
.../api_fastapi/core_api/routes/public/plugins.py | 4 +-
.../api_fastapi/core_api/routes/public/pools.py | 19 +-
.../core_api/routes/public/providers.py | 4 +-
.../core_api/routes/public/task_instances.py | 256 +-
.../api_fastapi/core_api/routes/public/tasks.py | 56 +
.../core_api/routes/public/variables.py | 29 +-
.../api_fastapi/core_api/routes/public/version.py | 4 +-
airflow/api_fastapi/core_api/routes/public/xcom.py | 94 +
airflow/api_fastapi/core_api/routes/ui/assets.py | 9 +-
airflow/api_fastapi/core_api/routes/ui/dags.py | 27 +-
.../api_fastapi/core_api/routes/ui/dashboard.py | 7 +-
airflow/api_fastapi/execution_api/app.py | 11 +-
.../execution_api/{schemas.py => datamodels.py} | 39 +-
.../providers.py => execution_api/deps.py} | 17 +-
.../api_fastapi/execution_api/routes/__init__.py | 10 +-
.../execution_api/routes/connections.py | 80 +
airflow/api_fastapi/execution_api/routes/health.py | 6 +-
.../routes/{task_instance.py => task_instances.py} | 27 +-
.../api_fastapi/execution_api/routes/variables.py | 81 +
airflow/api_fastapi/execution_api/routes/xcoms.py | 116 +
airflow/assets/__init__.py | 51 +-
airflow/cli/cli_config.py | 48 +-
airflow/cli/commands/dag_command.py | 22 +-
airflow/cli/commands/kubernetes_command.py | 12 +-
airflow/cli/commands/legacy_commands.py | 11 +-
airflow/cli/commands/provider_command.py | 13 +
airflow/cli/commands/task_command.py | 58 +-
airflow/config_templates/config.yml | 34 +-
airflow/configuration.py | 2 +-
.../bundles}/__init__.py | 0
airflow/dag_processing/bundles/base.py | 82 +
airflow/dag_processing/bundles/git.py | 115 +
.../bundles/local.py} | 34 +-
airflow/dag_processing/collection.py | 10 +-
airflow/dag_processing/manager.py | 42 +-
airflow/dag_processing/processor.py | 2 +-
airflow/decorators/assets.py | 131 +
.../example_dags/example_asset_decorator.py | 44 +-
.../example_branch_python_dop_operator_3.py | 8 +-
airflow/example_dags/tutorial_objectstorage.py | 6 +-
airflow/exceptions.py | 10 +-
airflow/executors/base_executor.py | 44 +-
airflow/executors/local_executor.py | 14 +-
airflow/executors/sequential_executor.py | 14 +-
airflow/hooks/__init__.py | 17 +
airflow/jobs/scheduler_job_runner.py | 209 +-
airflow/jobs/triggerer_job_runner.py | 10 +-
airflow/metrics/datadog_logger.py | 15 +-
airflow/metrics/otel_logger.py | 14 +-
airflow/metrics/protocols.py | 16 +-
.../0048_3_0_0_add_trigger_asset_reference.py | 63 +
airflow/models/abstractoperator.py | 15 +-
airflow/models/asset.py | 38 +-
airflow/models/backfill.py | 4 +-
airflow/models/baseoperator.py | 31 +-
airflow/models/dag.py | 212 +-
airflow/models/dagrun.py | 155 +-
airflow/models/dagwarning.py | 6 +-
airflow/models/log.py | 12 +-
airflow/models/renderedtifields.py | 8 +-
airflow/models/taskinstance.py | 197 +-
airflow/models/taskreschedule.py | 2 +-
airflow/models/trigger.py | 3 +
airflow/models/variable.py | 5 +
airflow/models/xcom.py | 10 +-
airflow/operators/__init__.py | 30 +
airflow/operators/trigger_dagrun.py | 8 +-
airflow/policies.py | 2 +-
airflow/provider.yaml.schema.json | 21 +
airflow/providers_manager.py | 33 +
airflow/sensors/__init__.py | 29 +
airflow/sensors/external_task.py | 24 +-
airflow/sentry.py | 2 +-
airflow/serialization/enums.py | 1 +
airflow/serialization/pydantic/dag.py | 3 +-
airflow/serialization/pydantic/dag_run.py | 6 +-
airflow/serialization/pydantic/taskinstance.py | 17 +-
airflow/serialization/schema.json | 17 +-
airflow/serialization/serialized_objects.py | 9 +-
airflow/settings.py | 42 +-
airflow/task/standard_task_runner.py | 2 +-
airflow/ti_deps/dep_context.py | 2 +-
.../ti_deps/deps/exec_date_after_start_date_dep.py | 12 +-
airflow/ti_deps/deps/prev_dagrun_dep.py | 4 +-
airflow/ti_deps/deps/runnable_exec_date_dep.py | 10 +-
airflow/timetables/base.py | 2 +-
airflow/timetables/simple.py | 2 +-
airflow/triggers/external_task.py | 24 +-
airflow/ui/dev/index.html | 6 +-
airflow/ui/index.html | 6 +-
airflow/ui/openapi-gen/queries/common.ts | 653 +++-
airflow/ui/openapi-gen/queries/prefetch.ts | 887 ++++-
airflow/ui/openapi-gen/queries/queries.ts | 1476 +++++---
airflow/ui/openapi-gen/queries/suspense.ts | 1116 ++++--
airflow/ui/openapi-gen/requests/schemas.gen.ts | 1231 ++++++-
airflow/ui/openapi-gen/requests/services.gen.ts | 1081 ++++--
airflow/ui/openapi-gen/requests/types.gen.ts | 1189 +++++--
airflow/ui/package.json | 4 +
airflow/ui/pnpm-lock.yaml | 718 +++-
airflow/ui/src/components/DagRunInfo.tsx | 48 +-
airflow/ui/src/components/DataTable/CardList.tsx | 38 +-
airflow/ui/src/components/DataTable/TableList.tsx | 7 +-
.../components/DataTable/ToggleTableDisplay.tsx | 12 +-
.../src/components/DataTable/searchParams.test.ts | 19 +
.../ui/src/components/DataTable/searchParams.ts | 4 +-
airflow/ui/src/components/QuickFilterButton.tsx | 12 +-
airflow/ui/src/components/SearchBar.test.tsx | 51 +
airflow/ui/src/components/SearchBar.tsx | 74 +-
.../{QuickFilterButton.tsx => StateCircle.tsx} | 31 +-
airflow/ui/src/components/TimeRangeSelector.tsx | 85 +
.../src/components/TriggerDag/TriggerDAGForm.tsx | 233 ++
.../components/TriggerDag/TriggerDAGIconButton.tsx | 57 +
.../src/components/TriggerDag/TriggerDAGModal.tsx | 104 +
.../TriggerDag/TriggerDAGTextButton.tsx} | 45 +-
.../TriggerDag/TriggerDag.tsx} | 43 +-
.../ui/{index.ts => Accordion/ItemContent.tsx} | 23 +-
.../ui/src/components/ui/Accordion/ItemTrigger.tsx | 50 +
.../ui/Accordion/index.tsx} | 19 +-
airflow/ui/src/components/ui/Select/Trigger.tsx | 49 +-
airflow/ui/src/components/ui/index.ts | 1 +
airflow/ui/src/constants/sortParams.ts | 38 +
airflow/ui/src/layouts/BaseLayout.tsx | 6 +-
.../{BaseLayout.tsx => Nav/BrowseButton.tsx} | 38 +-
airflow/ui/src/layouts/Nav/Nav.tsx | 16 +-
airflow/ui/src/pages/DagsList/Dag/Dag.tsx | 6 +-
airflow/ui/src/pages/DagsList/Dag/Header.tsx | 13 +-
airflow/ui/src/pages/DagsList/DagCard.tsx | 4 +-
airflow/ui/src/pages/DagsList/DagsFilters.tsx | 67 +-
airflow/ui/src/pages/DagsList/DagsList.tsx | 63 +-
airflow/ui/src/pages/DagsList/RecentRuns.tsx | 2 +-
airflow/ui/src/pages/Dashboard/Dashboard.tsx | 5 +-
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 52 +
.../HistoricalMetrics/HistoricalMetrics.tsx | 95 +
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 73 +
.../MetricSectionSkeleton.tsx} | 17 +-
.../Dashboard/HistoricalMetrics/MetricsBadge.tsx} | 38 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 57 +
.../{Dashboard.tsx => HistoricalMetrics/index.ts} | 13 +-
airflow/ui/src/pages/Events/Events.tsx | 143 +
.../{Dashboard/Dashboard.tsx => Events/index.tsx} | 13 +-
airflow/ui/src/queries/useDags.tsx | 8 +-
airflow/ui/src/router.tsx | 7 +-
.../advancedSelectStyles.ts} | 13 -
airflow/utils/cli.py | 6 +-
airflow/utils/cli_action_loggers.py | 8 +-
airflow/utils/context.py | 48 +-
airflow/utils/context.pyi | 12 -
airflow/utils/dates.py | 6 +-
airflow/utils/db.py | 4 +-
airflow/utils/file.py | 4 +-
airflow/utils/helpers.py | 4 +-
airflow/utils/log/file_task_handler.py | 2 +-
airflow/utils/net.py | 4 +-
airflow/utils/operator_helpers.py | 88 +-
airflow/utils/sensor_helper.py | 10 +-
airflow/utils/timezone.py | 2 +-
airflow/utils/trigger_rule.py | 1 -
airflow/utils/weight_rule.py | 12 +
airflow/www/decorators.py | 10 +-
airflow/www/forms.py | 6 +-
airflow/www/static/js/api/useClearTask.ts | 6 +-
airflow/www/static/js/api/useClearTaskDryRun.ts | 6 +-
airflow/www/static/js/api/useExtraLinks.ts | 10 +-
airflow/www/static/js/api/useGridData.test.ts | 2 +-
airflow/www/static/js/api/useGridData.ts | 4 +-
airflow/www/static/js/dag/details/index.tsx | 4 +-
.../static/js/dag/details/task/TaskDuration.tsx | 2 +-
.../js/dag/details/taskInstance/ExtraLinks.tsx | 8 +-
.../dag/details/taskInstance/Logs/LogLink.test.tsx | 8 +-
.../js/dag/details/taskInstance/Logs/LogLink.tsx | 8 +-
.../dag/details/taskInstance/Logs/index.test.tsx | 8 +-
.../js/dag/details/taskInstance/Logs/index.tsx | 10 +-
.../www/static/js/dag/details/taskInstance/Nav.tsx | 8 +-
.../static/js/dag/details/taskInstance/index.tsx | 8 +-
.../taskInstance/taskActions/ClearInstance.tsx | 12 +-
.../www/static/js/dag/grid/dagRuns/index.test.tsx | 8 +-
airflow/www/static/js/dag/grid/index.test.tsx | 2 +-
airflow/www/static/js/dag/useFilters.tsx | 6 +-
airflow/www/static/js/dags.js | 6 +-
airflow/www/static/js/task_instances.js | 4 +-
airflow/www/static/js/ti_log.js | 8 +-
airflow/www/static/js/types/api-generated.ts | 34 +-
airflow/www/static/js/types/index.ts | 8 +-
airflow/www/static/js/utils/index.test.ts | 4 +-
airflow/www/static/js/utils/index.ts | 2 +-
airflow/www/templates/airflow/dag.html | 6 +-
airflow/www/templates/airflow/task_instance.html | 6 +-
airflow/www/templates/airflow/ti_log.html | 2 +-
airflow/www/templates/airflow/trigger.html | 8 +-
airflow/www/utils.py | 26 +-
airflow/www/views.py | 251 +-
clients/python/pyproject.toml | 2 +-
contributing-docs/03_contributors_quick_start.rst | 103 +-
contributing-docs/09_testing.rst | 9 +-
contributing-docs/10_working_with_git.rst | 19 +-
contributing-docs/16_contribution_workflow.rst | 8 +-
contributing-docs/README.rst | 60 +-
.../contributors_quick_start_gitpod.rst | 18 +-
contributing-docs/testing/helm_unit_tests.rst | 2 +-
contributing-docs/testing/system_tests.rst | 134 +-
contributing-docs/testing/unit_tests.rst | 116 +-
dev/README_RELEASE_AIRFLOW.md | 42 +-
dev/breeze/README.md | 18 +-
dev/breeze/doc/01_installation.rst | 61 +-
dev/breeze/doc/04_troubleshooting.rst | 19 +-
dev/breeze/doc/05_test_commands.rst | 181 +-
dev/breeze/doc/10_advanced_breeze_topics.rst | 13 +-
.../doc/adr/0016-use-uv-tool-to-install-breeze.md | 56 +
dev/breeze/doc/ci/02_images.md | 6 +-
dev/breeze/doc/ci/04_selective_checks.md | 152 +-
dev/breeze/doc/ci/05_workflows.md | 2 +-
dev/breeze/doc/ci/08_running_ci_locally.md | 2 +-
dev/breeze/doc/images/output-commands.svg | 2 +-
.../output_setup_check-all-params-in-groups.svg | 26 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 30 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 114 +-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 2 +-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
dev/breeze/doc/images/output_testing.svg | 40 +-
dev/breeze/doc/images/output_testing.txt | 2 +-
.../output_testing_core-integration-tests.svg | 268 ++
.../output_testing_core-integration-tests.txt | 1 +
.../doc/images/output_testing_core-tests.svg | 476 +++
.../doc/images/output_testing_core-tests.txt | 1 +
dev/breeze/doc/images/output_testing_db-tests.svg | 520 ---
dev/breeze/doc/images/output_testing_db-tests.txt | 1 -
.../images/output_testing_docker-compose-tests.txt | 2 +-
.../doc/images/output_testing_helm-tests.svg | 54 +-
.../doc/images/output_testing_helm-tests.txt | 2 +-
.../images/output_testing_integration-tests.svg | 256 --
.../images/output_testing_integration-tests.txt | 1 -
.../doc/images/output_testing_non-db-tests.svg | 476 ---
.../doc/images/output_testing_non-db-tests.txt | 1 -
.../output_testing_providers-integration-tests.svg | 272 ++
.../output_testing_providers-integration-tests.txt | 1 +
.../doc/images/output_testing_providers-tests.svg | 532 +++
.../doc/images/output_testing_providers-tests.txt | 1 +
.../doc/images/output_testing_system-tests.svg | 252 ++
.../doc/images/output_testing_system-tests.txt | 1 +
.../doc/images/output_testing_task-sdk-tests.svg | 146 +-
.../doc/images/output_testing_task-sdk-tests.txt | 2 +-
dev/breeze/doc/images/output_testing_tests.svg | 592 ----
dev/breeze/doc/images/output_testing_tests.txt | 1 -
dev/breeze/pyproject.toml | 1 -
.../src/airflow_breeze/commands/common_options.py | 23 +-
.../airflow_breeze/commands/developer_commands.py | 10 +-
.../commands/developer_commands_config.py | 1 -
.../src/airflow_breeze/commands/main_command.py | 4 +-
.../commands/release_management_commands.py | 4 +-
.../airflow_breeze/commands/testing_commands.py | 694 ++--
.../commands/testing_commands_config.py | 512 ++-
.../src/airflow_breeze/configure_rich_click.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 123 +-
.../src/airflow_breeze/params/shell_params.py | 39 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 8 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 223 +-
dev/breeze/src/airflow_breeze/utils/run_utils.py | 4 +-
.../src/airflow_breeze/utils/selective_checks.py | 225 +-
dev/breeze/tests/test_packages.py | 6 +-
.../tests/test_pytest_args_for_test_types.py | 286 +-
dev/breeze/tests/test_run_test_args.py | 16 +-
dev/breeze/tests/test_selective_checks.py | 586 ++--
dev/breeze/tests/test_shell_params.py | 8 -
dev/breeze/uv.lock | 28 -
dev/perf/dags/sql_perf_dag.py | 4 +-
dev/perf/scheduler_dag_execution_timing.py | 12 +-
dev/sign.sh | 2 +-
docker_tests/requirements.txt | 2 +-
docs/apache-airflow-providers-amazon/commits.rst | 25 +-
docs/apache-airflow-providers-amazon/index.rst | 2 +-
.../commits.rst | 42 +-
.../apache-airflow-providers-apache-beam/index.rst | 19 +-
.../commits.rst | 41 +-
.../index.rst | 8 +-
.../commits.rst | 32 +-
.../index.rst | 8 +-
.../commits.rst | 52 +-
.../apache-airflow-providers-apache-hive/index.rst | 8 +-
.../commits.rst | 28 +-
.../index.rst | 8 +-
.../commits.rst | 30 +-
.../index.rst | 8 +-
.../commits.rst | 46 +-
.../index.rst | 7 +-
docs/apache-airflow-providers-apprise/commits.rst | 24 +-
docs/apache-airflow-providers-apprise/index.rst | 2 +-
.../commits.rst | 26 +-
.../index.rst | 2 +-
docs/apache-airflow-providers-celery/commits.rst | 36 +-
docs/apache-airflow-providers-celery/index.rst | 7 +-
docs/apache-airflow-providers-cloudant/commits.rst | 28 +-
docs/apache-airflow-providers-cloudant/index.rst | 3 +-
.../commits.rst | 52 +-
.../index.rst | 2 +-
.../operators.rst | 2 +-
.../commits.rst | 17 +-
.../index.rst | 7 +-
.../commits.rst | 32 +-
docs/apache-airflow-providers-common-sql/index.rst | 8 +-
.../commits.rst | 60 +-
docs/apache-airflow-providers-databricks/index.rst | 8 +-
.../apache-airflow-providers-dbt-cloud/commits.rst | 51 +-
docs/apache-airflow-providers-dbt-cloud/index.rst | 6 +-
docs/apache-airflow-providers-docker/commits.rst | 40 +-
docs/apache-airflow-providers-docker/index.rst | 30 +-
.../edge_executor.rst | 1 -
.../commits.rst | 37 +-
.../index.rst | 8 +-
docs/apache-airflow-providers-exasol/commits.rst | 30 +-
docs/apache-airflow-providers-exasol/index.rst | 8 +-
.../auth-manager/api-authentication.rst | 26 +-
docs/apache-airflow-providers-fab/commits.rst | 15 +-
docs/apache-airflow-providers-fab/index.rst | 6 +-
docs/apache-airflow-providers-google/commits.rst | 122 +-
.../connections/gcp_sql.rst | 37 +
docs/apache-airflow-providers-google/index.rst | 10 +-
docs/apache-airflow-providers-http/commits.rst | 47 +-
docs/apache-airflow-providers-http/index.rst | 10 +-
docs/apache-airflow-providers-jdbc/commits.rst | 41 +-
docs/apache-airflow-providers-jdbc/index.rst | 8 +-
.../commits.rst | 78 +-
.../index.rst | 6 +-
.../commits.rst | 41 +-
.../index.rst | 8 +-
.../commits.rst | 48 +-
.../index.rst | 2 +-
docs/apache-airflow-providers-mysql/commits.rst | 54 +-
docs/apache-airflow-providers-mysql/index.rst | 16 +-
docs/apache-airflow-providers-odbc/commits.rst | 45 +-
docs/apache-airflow-providers-odbc/index.rst | 8 +-
.../commits.rst | 40 +-
.../apache-airflow-providers-openlineage/index.rst | 20 +-
docs/apache-airflow-providers-oracle/commits.rst | 36 +-
docs/apache-airflow-providers-oracle/index.rst | 8 +-
.../apache-airflow-providers-pagerduty/commits.rst | 32 +-
docs/apache-airflow-providers-pagerduty/index.rst | 2 +-
.../apache-airflow-providers-papermill/commits.rst | 33 +-
docs/apache-airflow-providers-papermill/index.rst | 6 +-
docs/apache-airflow-providers-pinecone/commits.rst | 16 +-
docs/apache-airflow-providers-pinecone/index.rst | 2 +-
docs/apache-airflow-providers-postgres/commits.rst | 51 +-
docs/apache-airflow-providers-postgres/index.rst | 8 +-
docs/apache-airflow-providers-presto/commits.rst | 39 +-
docs/apache-airflow-providers-presto/index.rst | 8 +-
docs/apache-airflow-providers-slack/commits.rst | 35 +-
docs/apache-airflow-providers-slack/index.rst | 8 +-
docs/apache-airflow-providers-smtp/commits.rst | 32 +-
docs/apache-airflow-providers-smtp/index.rst | 2 +-
.../apache-airflow-providers-snowflake/commits.rst | 44 +-
docs/apache-airflow-providers-snowflake/index.rst | 8 +-
docs/apache-airflow-providers-sqlite/commits.rst | 41 +-
docs/apache-airflow-providers-sqlite/index.rst | 8 +-
.../changelog.rst | 7 +
docs/apache-airflow-providers-standard/commits.rst | 48 +-
docs/apache-airflow-providers-standard/index.rst | 19 +-
.../operators}/bash.rst | 15 -
.../{operators.rst => operators/datetime.rst} | 16 +-
.../{changelog.rst => operators/index.rst} | 9 +-
.../operators}/python.rst | 36 +-
.../sensors/bash.rst} | 23 +-
.../{sensors.rst => sensors/datetime.rst} | 16 +-
.../{changelog.rst => sensors/index.rst} | 9 +-
.../sensors/python.rst | 50 +
docs/apache-airflow-providers-teradata/commits.rst | 16 +-
docs/apache-airflow-providers-teradata/index.rst | 8 +-
docs/apache-airflow-providers-trino/commits.rst | 41 +-
docs/apache-airflow-providers-trino/index.rst | 8 +-
docs/apache-airflow-providers-vertica/commits.rst | 30 +-
docs/apache-airflow-providers-vertica/index.rst | 8 +-
docs/apache-airflow-providers-ydb/commits.rst | 16 +-
docs/apache-airflow-providers-ydb/index.rst | 11 +-
.../operators/ydb_operator_howto_guide.rst | 24 +-
.../priority-weight.rst | 6 +
.../dynamic-task-mapping.rst | 5 +
docs/apache-airflow/faq.rst | 2 +-
docs/apache-airflow/howto/operator/index.rst | 2 -
docs/apache-airflow/img/airflow_erd.sha256 | 2 +-
docs/apache-airflow/img/airflow_erd.svg | 3654 ++++++++++----------
.../installation/installing-from-pypi.rst | 4 +-
docs/apache-airflow/migrations-ref.rst | 4 +-
docs/apache-airflow/operators-and-hooks-ref.rst | 15 -
docs/apache-airflow/templates-ref.rst | 29 -
docs/conf.py | 1 +
docs/docker-stack/changelog.rst | 3 +
generated/PYPI_README.md | 4 +-
generated/provider_dependencies.json | 62 +-
hatch_build.py | 18 +-
kubernetes_tests/test_base.py | 12 +-
kubernetes_tests/test_kubernetes_executor.py | 10 +-
kubernetes_tests/test_kubernetes_pod_operator.py | 26 +-
kubernetes_tests/test_other_executors.py | 10 +-
newsfragments/39908.significant.rst | 1 -
newsfragments/41348.significant.rst | 2 +-
newsfragments/43368.significant.rst | 5 +
newsfragments/43611.significant.rst | 6 +
newsfragments/43902.significant.rst | 6 +
newsfragments/43915.significant.rst | 4 +
newsfragments/43943.significant.rst | 5 +
newsfragments/43975.significant.rst | 8 +
performance/requirements.txt | 2 +-
providers/pyproject.toml | 6 -
.../src/airflow}/__init__.py | 8 +-
.../providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 81 +-
providers/src/airflow/providers/__init__.py | 11 +-
.../providers/airbyte/.latest-doc-only-change.txt | 2 +-
.../providers/alibaba/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/amazon/CHANGELOG.rst | 13 +
.../src/airflow/providers/amazon/aws/hooks/eks.py | 4 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 4 +-
.../airflow/providers/amazon/aws/operators/eks.py | 6 +-
.../src/airflow/providers/amazon/provider.yaml | 2 +-
.../airflow/providers/apache/beam/CHANGELOG.rst | 12 +
.../src/airflow/providers/apache/beam/__init__.py | 2 +-
.../airflow/providers/apache/beam/provider.yaml | 3 +-
.../apache/cassandra/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/apache/drill/CHANGELOG.rst | 14 +
.../src/airflow/providers/apache/drill/__init__.py | 2 +-
.../airflow/providers/apache/drill/provider.yaml | 5 +-
.../airflow/providers/apache/druid/CHANGELOG.rst | 12 +
.../src/airflow/providers/apache/druid/__init__.py | 2 +-
.../airflow/providers/apache/druid/provider.yaml | 5 +-
.../apache/druid/transfers/hive_to_druid.py | 2 +-
.../apache/flink/.latest-doc-only-change.txt | 2 +-
.../apache/hdfs/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/apache/hdfs/sensors/hdfs.py | 4 +-
.../airflow/providers/apache/hive/CHANGELOG.rst | 15 +
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
.../providers/apache/hive/operators/hive.py | 8 +-
.../airflow/providers/apache/hive/provider.yaml | 5 +-
.../apache/iceberg/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/apache/impala/CHANGELOG.rst | 13 +
.../airflow/providers/apache/impala/__init__.py | 2 +-
.../airflow/providers/apache/impala/provider.yaml | 5 +-
.../apache/kafka/.latest-doc-only-change.txt | 2 +-
.../apache/kylin/.latest-doc-only-change.txt | 2 +-
.../apache/pig/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/apache/pinot/CHANGELOG.rst | 13 +
.../src/airflow/providers/apache/pinot/__init__.py | 2 +-
.../airflow/providers/apache/pinot/provider.yaml | 5 +-
.../airflow/providers/apache/spark/CHANGELOG.rst | 12 +
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../airflow/providers/apache/spark/provider.yaml | 3 +-
.../src/airflow/providers/apprise/CHANGELOG.rst | 14 +
.../src/airflow/providers/apprise/__init__.py | 2 +-
.../src/airflow/providers/apprise/provider.yaml | 3 +-
.../providers/arangodb/.latest-doc-only-change.txt | 2 +-
.../providers/asana/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/atlassian/jira/CHANGELOG.rst | 13 +
.../airflow/providers/atlassian/jira/__init__.py | 2 +-
.../airflow/providers/atlassian/jira/provider.yaml | 3 +-
.../src/airflow/providers/celery/CHANGELOG.rst | 14 +
providers/src/airflow/providers/celery/__init__.py | 2 +-
.../src/airflow/providers/celery/provider.yaml | 3 +-
.../src/airflow/providers/cloudant/CHANGELOG.rst | 12 +
.../src/airflow/providers/cloudant/__init__.py | 2 +-
.../src/airflow/providers/cloudant/provider.yaml | 3 +-
.../providers/cncf/kubernetes/CHANGELOG.rst | 55 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../cncf/kubernetes/backcompat/__init__.py | 17 +
.../cncf/kubernetes/cli/kubernetes_command.py | 16 +-
.../kubernetes/executors/kubernetes_executor.py | 16 +-
.../executors/kubernetes_executor_utils.py | 4 +-
.../cncf/kubernetes/kubernetes_helper_functions.py | 50 +-
.../cncf/kubernetes/operators/kubernetes_pod.py | 31 -
.../providers/cncf/kubernetes/operators/pod.py | 34 +-
.../cncf/kubernetes/operators/spark_kubernetes.py | 13 +-
.../providers/cncf/kubernetes/pod_generator.py | 133 +-
.../cncf/kubernetes/pod_launcher_deprecated.py | 320 --
.../cncf/kubernetes/triggers/kubernetes_pod.py | 31 -
.../providers/cncf/kubernetes/triggers/pod.py | 23 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 23 +-
.../providers/cohere/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/common/compat/CHANGELOG.rst | 14 +
.../airflow/providers/common/compat/__init__.py | 2 +-
.../airflow/providers/common/compat/provider.yaml | 3 +-
.../common/io/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/common/sql/CHANGELOG.rst | 13 +
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 15 +-
.../src/airflow/providers/common/sql/hooks/sql.pyi | 3 +-
.../src/airflow/providers/common/sql/provider.yaml | 3 +-
.../src/airflow/providers/databricks/CHANGELOG.rst | 20 +
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../src/airflow/providers/databricks/exceptions.py | 19 +-
.../providers/databricks/hooks/databricks_sql.py | 41 +-
.../providers/databricks/operators/databricks.py | 31 +-
.../databricks/operators/databricks_sql.py | 5 +
.../databricks/plugins/databricks_workflow.py | 5 +-
.../src/airflow/providers/databricks/provider.yaml | 5 +-
.../providers/datadog/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/dbt/cloud/CHANGELOG.rst | 12 +
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 4 +-
.../src/airflow/providers/dbt/cloud/provider.yaml | 3 +-
.../providers/dbt/cloud/utils/openlineage.py | 20 +-
.../providers/dingding/.latest-doc-only-change.txt | 2 +-
.../providers/discord/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/docker/CHANGELOG.rst | 18 +
providers/src/airflow/providers/docker/__init__.py | 2 +-
.../airflow/providers/docker/operators/docker.py | 21 +-
.../src/airflow/providers/docker/provider.yaml | 3 +-
providers/src/airflow/providers/edge/CHANGELOG.rst | 25 +
providers/src/airflow/providers/edge/__init__.py | 2 +-
.../src/airflow/providers/edge/cli/edge_command.py | 24 +-
.../edge/plugins/templates/edge_worker_hosts.html | 12 +-
.../edge/plugins/templates/edge_worker_jobs.html | 14 +-
providers/src/airflow/providers/edge/provider.yaml | 2 +-
.../airflow/providers/elasticsearch/CHANGELOG.rst | 13 +
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../providers/elasticsearch/log/es_task_handler.py | 22 +-
.../airflow/providers/elasticsearch/provider.yaml | 5 +-
.../src/airflow/providers/exasol/CHANGELOG.rst | 14 +
providers/src/airflow/providers/exasol/__init__.py | 2 +-
.../src/airflow/providers/exasol/provider.yaml | 5 +-
providers/src/airflow/providers/fab/CHANGELOG.rst | 13 +
providers/src/airflow/providers/fab/__init__.py | 2 +-
providers/src/airflow/providers/fab/provider.yaml | 3 +-
.../providers/facebook/.latest-doc-only-change.txt | 2 +-
.../providers/ftp/.latest-doc-only-change.txt | 2 +-
.../providers/github/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/google/CHANGELOG.rst | 30 +
providers/src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/hooks/bigquery.py | 2 +-
.../providers/google/cloud/hooks/cloud_sql.py | 41 +-
.../google/cloud/log/stackdriver_task_handler.py | 11 +-
.../providers/google/cloud/operators/gcs.py | 6 +-
.../google/cloud/operators/vertex_ai/custom_job.py | 1 -
.../providers/google/cloud/operators/workflows.py | 2 +-
.../google/cloud/sensors/cloud_composer.py | 8 +-
.../airflow/providers/google/cloud/sensors/gcs.py | 19 +-
.../google/cloud/transfers/gcs_to_bigquery.py | 9 +-
.../google/cloud/triggers/cloud_composer.py | 2 +-
.../src/airflow/providers/google/provider.yaml | 5 +-
.../providers/grpc/.latest-doc-only-change.txt | 2 +-
.../hashicorp/.latest-doc-only-change.txt | 2 +-
providers/src/airflow/providers/http/CHANGELOG.rst | 17 +
providers/src/airflow/providers/http/__init__.py | 2 +-
providers/src/airflow/providers/http/provider.yaml | 6 +-
.../src/airflow/providers/http/sensors/http.py | 2 +-
.../providers/imap/.latest-doc-only-change.txt | 2 +-
.../providers/influxdb/.latest-doc-only-change.txt | 2 +-
providers/src/airflow/providers/jdbc/CHANGELOG.rst | 14 +
providers/src/airflow/providers/jdbc/__init__.py | 2 +-
providers/src/airflow/providers/jdbc/provider.yaml | 5 +-
.../providers/microsoft/azure/CHANGELOG.rst | 22 +
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/provider.yaml | 3 +-
.../providers/microsoft/azure/triggers/powerbi.py | 19 +-
.../providers/microsoft/mssql/CHANGELOG.rst | 14 +
.../airflow/providers/microsoft/mssql/__init__.py | 2 +-
.../providers/microsoft/mssql/provider.yaml | 5 +-
.../microsoft/psrp/.latest-doc-only-change.txt | 2 +-
.../providers/microsoft/winrm/CHANGELOG.rst | 13 +
.../airflow/providers/microsoft/winrm/__init__.py | 2 +-
.../providers/microsoft/winrm/provider.yaml | 3 +-
.../src/airflow/providers/mysql/CHANGELOG.rst | 14 +
providers/src/airflow/providers/mysql/__init__.py | 2 +-
.../src/airflow/providers/mysql/provider.yaml | 6 +-
.../providers/neo4j/.latest-doc-only-change.txt | 2 +-
providers/src/airflow/providers/odbc/CHANGELOG.rst | 12 +
providers/src/airflow/providers/odbc/__init__.py | 2 +-
providers/src/airflow/providers/odbc/provider.yaml | 5 +-
.../providers/openai/.latest-doc-only-change.txt | 2 +-
.../providers/openfaas/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/openlineage/CHANGELOG.rst | 21 +
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../providers/openlineage/plugins/adapter.py | 24 +-
.../providers/openlineage/plugins/listener.py | 26 +-
.../providers/openlineage/plugins/macros.py | 6 +-
.../airflow/providers/openlineage/provider.yaml | 3 +-
.../src/airflow/providers/openlineage/sqlparser.py | 7 +-
.../providers/openlineage/transport/variable.py | 22 +-
.../providers/openlineage/utils/operator.py | 43 +-
.../airflow/providers/openlineage/utils/utils.py | 16 +-
.../opensearch/.latest-doc-only-change.txt | 2 +-
.../providers/opensearch/log/os_task_handler.py | 23 +-
.../providers/opsgenie/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/oracle/CHANGELOG.rst | 18 +
providers/src/airflow/providers/oracle/__init__.py | 2 +-
.../src/airflow/providers/oracle/provider.yaml | 5 +-
.../src/airflow/providers/pagerduty/CHANGELOG.rst | 14 +
.../src/airflow/providers/pagerduty/__init__.py | 2 +-
.../src/airflow/providers/pagerduty/provider.yaml | 3 +-
.../src/airflow/providers/papermill/CHANGELOG.rst | 13 +
.../src/airflow/providers/papermill/__init__.py | 2 +-
.../src/airflow/providers/papermill/provider.yaml | 3 +-
.../providers/pgvector/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/pinecone/CHANGELOG.rst | 13 +
.../src/airflow/providers/pinecone/__init__.py | 2 +-
.../airflow/providers/pinecone/hooks/pinecone.py | 7 +-
.../src/airflow/providers/pinecone/provider.yaml | 3 +-
.../src/airflow/providers/postgres/CHANGELOG.rst | 25 +
.../src/airflow/providers/postgres/__init__.py | 2 +-
.../airflow/providers/postgres/hooks/postgres.py | 4 +-
.../src/airflow/providers/postgres/provider.yaml | 6 +-
.../src/airflow/providers/presto/CHANGELOG.rst | 13 +
providers/src/airflow/providers/presto/__init__.py | 2 +-
.../src/airflow/providers/presto/hooks/presto.py | 11 +-
.../src/airflow/providers/presto/provider.yaml | 5 +-
.../providers/qdrant/.latest-doc-only-change.txt | 2 +-
.../providers/redis/.latest-doc-only-change.txt | 2 +-
.../salesforce/.latest-doc-only-change.txt | 2 +-
.../providers/samba/.latest-doc-only-change.txt | 2 +-
.../providers/segment/.latest-doc-only-change.txt | 2 +-
.../providers/sendgrid/.latest-doc-only-change.txt | 2 +-
.../providers/sftp/.latest-doc-only-change.txt | 2 +-
.../singularity/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/slack/CHANGELOG.rst | 12 +
providers/src/airflow/providers/slack/__init__.py | 2 +-
.../src/airflow/providers/slack/provider.yaml | 5 +-
providers/src/airflow/providers/smtp/CHANGELOG.rst | 15 +
providers/src/airflow/providers/smtp/__init__.py | 2 +-
providers/src/airflow/providers/smtp/provider.yaml | 3 +-
.../src/airflow/providers/snowflake/CHANGELOG.rst | 15 +
.../src/airflow/providers/snowflake/__init__.py | 2 +-
.../src/airflow/providers/snowflake/provider.yaml | 5 +-
.../src/airflow/providers/sqlite/CHANGELOG.rst | 14 +
providers/src/airflow/providers/sqlite/__init__.py | 2 +-
.../src/airflow/providers/sqlite/provider.yaml | 6 +-
.../src/airflow/providers/standard/CHANGELOG.rst | 5 +-
.../src/airflow/providers/standard/__init__.py | 24 +-
.../airflow/providers/standard/operators/bash.py | 2 +-
.../providers/standard/operators/datetime.py | 2 +-
.../airflow/providers/standard/operators/python.py | 117 +-
.../src/airflow/providers/standard/provider.yaml | 6 +-
.../providers/standard/sensors/date_time.py | 27 +-
.../src/airflow/providers/standard/sensors/time.py | 23 +-
.../providers/standard/sensors/time_delta.py | 10 +-
.../providers/standard/utils/version_references.py | 11 +-
.../providers/tableau/.latest-doc-only-change.txt | 2 +-
.../providers/telegram/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/teradata/CHANGELOG.rst | 14 +
.../src/airflow/providers/teradata/__init__.py | 2 +-
.../src/airflow/providers/teradata/provider.yaml | 5 +-
.../src/airflow/providers/trino/CHANGELOG.rst | 14 +
providers/src/airflow/providers/trino/__init__.py | 2 +-
.../src/airflow/providers/trino/hooks/trino.py | 11 +-
.../src/airflow/providers/trino/provider.yaml | 5 +-
.../src/airflow/providers/vertica/CHANGELOG.rst | 14 +
.../src/airflow/providers/vertica/__init__.py | 2 +-
.../src/airflow/providers/vertica/provider.yaml | 5 +-
.../providers/weaviate/.latest-doc-only-change.txt | 2 +-
.../providers/yandex/.latest-doc-only-change.txt | 2 +-
providers/src/airflow/providers/ydb/CHANGELOG.rst | 21 +
providers/src/airflow/providers/ydb/__init__.py | 2 +-
.../providers/ydb/hooks/_vendor/__init__.py | 16 -
.../providers/ydb/hooks/_vendor/dbapi/__init__.py | 43 -
.../ydb/hooks/_vendor/dbapi/connection.py | 194 --
.../providers/ydb/hooks/_vendor/dbapi/constants.py | 218 --
.../providers/ydb/hooks/_vendor/dbapi/cursor.py | 389 ---
.../providers/ydb/hooks/_vendor/dbapi/errors.py | 103 -
.../airflow/providers/ydb/hooks/_vendor/readme.md | 3 -
providers/src/airflow/providers/ydb/hooks/ydb.py | 40 +-
.../src/airflow/providers/ydb/operators/ydb.py | 30 -
providers/src/airflow/providers/ydb/provider.yaml | 12 +-
.../providers/zendesk/.latest-doc-only-change.txt | 2 +-
.../alibaba/cloud/log/test_oss_task_handler.py | 2 +-
.../aws/executors/batch/test_batch_executor.py | 4 +-
.../amazon/aws/executors/ecs/test_ecs_executor.py | 4 +-
providers/tests/amazon/aws/hooks/test_s3.py | 6 +
providers/tests/amazon/aws/links/test_base_aws.py | 4 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 11 +-
.../tests/amazon/aws/log/test_s3_task_handler.py | 6 +-
.../tests/amazon/aws/operators/test_athena.py | 23 +-
.../tests/amazon/aws/operators/test_base_aws.py | 7 +-
.../tests/amazon/aws/operators/test_datasync.py | 101 +-
providers/tests/amazon/aws/operators/test_dms.py | 21 +-
providers/tests/amazon/aws/operators/test_ecs.py | 2 +-
.../amazon/aws/operators/test_emr_add_steps.py | 38 +-
.../aws/operators/test_emr_create_job_flow.py | 41 +-
.../tests/amazon/aws/operators/test_glacier.py | 4 +-
providers/tests/amazon/aws/operators/test_s3.py | 14 +-
.../amazon/aws/operators/test_sagemaker_base.py | 16 +-
providers/tests/amazon/aws/operators/test_sns.py | 2 +-
providers/tests/amazon/aws/operators/test_sqs.py | 2 +-
.../amazon/aws/operators/test_step_function.py | 4 +-
.../tests/amazon/aws/sensors/test_base_aws.py | 7 +-
providers/tests/amazon/aws/sensors/test_ecs.py | 4 +-
providers/tests/amazon/aws/sensors/test_eks.py | 6 +-
providers/tests/amazon/aws/sensors/test_s3.py | 33 +-
providers/tests/amazon/aws/sensors/test_sqs.py | 2 +-
providers/tests/amazon/aws/transfers/test_base.py | 22 +-
.../amazon/aws/transfers/test_dynamodb_to_s3.py | 22 +-
.../tests/amazon/aws/transfers/test_mongo_to_s3.py | 22 +-
providers/tests/amazon/aws/triggers/test_sqs.py | 2 +-
providers/tests/amazon/aws/waiters/test_batch.py | 2 +-
providers/tests/amazon/aws/waiters/test_dynamo.py | 2 +-
providers/tests/amazon/aws/waiters/test_ecs.py | 2 +-
providers/tests/amazon/aws/waiters/test_emr.py | 2 +-
.../tests/amazon/aws/waiters/test_glue_databrew.py | 2 +-
providers/tests/amazon/aws/waiters/test_neptune.py | 2 +-
.../tests/apache/cassandra/hooks}/__init__.py | 0
.../tests/apache/cassandra/hooks/test_cassandra.py | 188 +
providers/tests/apache/hive/hooks/test_hive.py | 69 +-
providers/tests/apache/hive/operators/test_hive.py | 14 +-
.../apache/hive/transfers/test_hive_to_mysql.py | 2 +-
.../apache/hive/transfers/test_mysql_to_hive.py | 2 +-
.../apache/kylin/operators/test_kylin_cube.py | 22 +-
providers/tests/apache/livy/operators/test_livy.py | 1 -
.../tests/apache/spark/decorators/test_pyspark.py | 8 +-
.../apache/spark/hooks/test_spark_jdbc_script.py | 4 +-
.../apache/spark/operators/test_spark_jdbc.py | 1 -
.../tests/apache/spark/operators/test_spark_sql.py | 1 -
.../apache/spark/operators/test_spark_submit.py | 23 +-
.../tests/celery/log_handlers/test_log_handlers.py | 7 +-
.../executors/test_kubernetes_executor.py | 15 +-
.../kubernetes/log_handlers/test_log_handlers.py | 25 +-
.../tests/cncf/kubernetes/models/test_secret.py | 5 +-
.../tests/cncf/kubernetes/operators/test_pod.py | 35 -
.../kubernetes/operators/test_spark_kubernetes.py | 66 +-
.../kubernetes/test_kubernetes_helper_functions.py | 21 +-
.../tests/cncf/kubernetes/test_pod_generator.py | 138 +-
.../cncf/kubernetes/test_template_rendering.py | 2 +-
.../tests/cncf/kubernetes/triggers/test_pod.py | 1 -
.../cncf/kubernetes/utils/test_pod_manager.py | 16 -
providers/tests/common/io/xcom/test_backend.py | 2 +-
providers/tests/common/sql/operators/test_sql.py | 186 +-
.../tests/databricks/hooks/test_databricks_sql.py | 231 +-
.../tests/databricks/operators/test_databricks.py | 5 +
.../databricks/operators/test_databricks_copy.py | 2 -
.../tests/databricks/test_exceptions.py | 18 +-
providers/tests/dbt/cloud/operators/test_dbt.py | 79 +-
providers/tests/docker/decorators/test_docker.py | 14 +-
providers/tests/docker/operators/test_docker.py | 32 +-
providers/tests/edge/cli/test_edge_command.py | 7 +-
providers/tests/edge/executors/__init__.py | 1 -
.../elasticsearch/log/test_es_task_handler.py | 24 +-
.../api_endpoints/test_asset_endpoint.py | 6 +-
.../api_endpoints/test_dag_endpoint.py | 2 +-
.../api_endpoints/test_dag_run_endpoint.py | 8 +-
.../api_endpoints/test_event_log_endpoint.py | 2 +-
.../api_endpoints/test_task_instance_endpoint.py | 14 +-
.../api_endpoints/test_xcom_endpoint.py | 112 +-
.../google/cloud/hooks/test_bigquery_system.py | 2 +-
.../cloud/hooks/test_secret_manager_system.py | 2 +-
.../google/cloud/log/test_gcs_task_handler.py | 2 +-
.../cloud/log/test_gcs_task_handler_system.py | 2 +-
.../cloud/log/test_stackdriver_task_handler.py | 107 +-
.../log/test_stackdriver_task_handler_system.py | 2 +-
.../tests/google/cloud/operators/test_automl.py | 14 -
.../tests/google/cloud/operators/test_bigquery.py | 6 +-
.../google/cloud/operators/test_bigquery_dts.py | 1 -
.../google/cloud/operators/test_cloud_build.py | 36 +-
.../tests/google/cloud/operators/test_compute.py | 2 +-
.../google/cloud/operators/test_datacatalog.py | 4 +-
.../tests/google/cloud/operators/test_dataproc.py | 7 -
providers/tests/google/cloud/operators/test_gcs.py | 4 +-
.../tests/google/cloud/operators/test_mlengine.py | 126 +-
.../tests/google/cloud/operators/test_vertex_ai.py | 3 -
.../google/cloud/sensors/test_cloud_composer.py | 2 +-
providers/tests/google/cloud/sensors/test_gcs.py | 25 -
.../transfers/test_facebook_ads_to_gcs_system.py | 2 +-
.../google/cloud/transfers/test_gcs_to_bigquery.py | 194 +-
.../transfers/test_salesforce_to_gcs_system.py | 4 +-
.../cloud/triggers/test_kubernetes_engine.py | 8 +-
providers/tests/google/cloud/utils/airflow_util.py | 15 +-
.../operators/test_display_video_system.py | 2 +-
providers/tests/grpc/hooks/test_grpc.py | 74 +-
providers/tests/http/sensors/test_http.py | 1 -
.../apache/kafka/operators/test_consume.py | 2 +-
.../apache/kafka/operators/test_produce.py | 2 +-
.../apache/kafka/triggers/test_await_message.py | 2 +-
.../microsoft/azure/log/test_wasb_task_handler.py | 2 +-
.../tests/microsoft/azure/operators/test_adx.py | 2 -
.../microsoft/azure/operators/test_data_factory.py | 92 +-
.../microsoft/azure/operators/test_powerbi.py | 1 -
.../microsoft/azure/operators/test_synapse.py | 1 -
.../tests/microsoft/azure/sensors/test_wasb.py | 88 +-
.../tests/microsoft/azure/triggers/test_powerbi.py | 19 +-
providers/tests/microsoft/conftest.py | 1 +
.../tests/openlineage/plugins/test_adapter.py | 79 +-
.../tests/openlineage/plugins/test_listener.py | 58 +-
providers/tests/openlineage/plugins/test_macros.py | 12 +-
providers/tests/openlineage/plugins/test_utils.py | 35 +-
providers/tests/openlineage/utils/test_utils.py | 5 +-
.../tests/opensearch/log/test_os_task_handler.py | 18 +-
.../tests/papermill/operators/test_papermill.py | 1 -
providers/tests/postgres/hooks/test_postgres.py | 8 +-
providers/tests/presto/hooks/test_presto.py | 21 +-
.../tests/redis/log/test_redis_task_handler.py | 6 +-
.../tests/sftp/decorators/sensors/test_sftp.py | 8 +-
providers/tests/sftp/operators/test_sftp.py | 102 +-
providers/tests/smtp/notifications/test_smtp.py | 4 +-
.../tests/snowflake/operators/test_snowflake.py | 29 +-
providers/tests/standard/operators/test_bash.py | 37 +-
.../tests/standard/operators/test_datetime.py | 54 +-
providers/tests/standard/operators/test_python.py | 268 +-
providers/tests/standard/operators/test_weekday.py | 107 +-
.../tests/standard/utils/test_python_virtualenv.py | 6 +-
providers/tests/system/amazon/README.md | 19 +-
.../amazon/aws/tests/test_aws_auth_manager.py | 2 +-
{tests => providers/tests}/system/conftest.py | 11 +-
{tests => providers/tests}/system/example_empty.py | 0
providers/tests/system/google/README.md | 27 +-
.../cloud/cloud_sql/example_cloud_sql_query_iam.py | 442 +++
.../tests/system/openlineage}/conftest.py | 22 +-
.../{event.json => example_openlineage.json} | 26 +-
.../system/openlineage/example_openlineage.py | 6 +-
.../example_openlineage_mapped_sensor.json | 75 +
.../example_openlineage_mapped_sensor.py | 78 +
.../tests/system/papermill/example_papermill.py | 2 +-
.../papermill/example_papermill_remote_verify.py | 2 +-
.../system/papermill/example_papermill_verify.py | 14 +-
.../system/snowflake/example_snowpark_decorator.py | 2 +-
providers/tests/system/ydb/example_ydb.py | 11 +-
.../tests/telegram/operators/test_telegram.py | 6 +-
providers/tests/trino/hooks/test_trino.py | 15 +-
providers/tests/ydb/hooks/test_ydb.py | 13 +-
providers/tests/ydb/operators/test_ydb.py | 34 +-
pyproject.toml | 39 +-
scripts/ci/docker-compose/devcontainer.env | 2 -
scripts/ci/install_breeze.sh | 10 +-
scripts/ci/kubernetes/k8s_requirements.txt | 2 +-
.../ci/pre_commit/check_ti_vs_tis_attributes.py | 2 +-
scripts/ci/pre_commit/generate_airflow_diagrams.py | 14 +-
scripts/ci/pre_commit/update_installers.py | 9 +
.../ci/testing/run_integration_tests_with_retry.sh | 15 +-
.../ci/testing/run_system_tests.sh | 21 +-
scripts/ci/testing/run_unit_tests.sh | 121 +
scripts/docker/entrypoint_ci.sh | 8 +-
scripts/docker/install_airflow.sh | 2 +-
scripts/docker/install_pipx_tools.sh | 43 -
scripts/in_container/bin/run_tmux | 2 +-
scripts/in_container/install_devel_deps.py | 3 +-
scripts/in_container/run_prepare_er_diagram.py | 15 +-
.../in_container/run_provider_yaml_files_check.py | 2 -
scripts/in_container/run_system_tests.sh | 4 +-
scripts/tools/setup_breeze | 30 +-
task_sdk/pyproject.toml | 62 +-
.../operators => task_sdk/src/airflow}/__init__.py | 8 +-
task_sdk/src/airflow/sdk/__init__.py | 3 +
.../src/airflow/sdk/api}/__init__.py | 0
task_sdk/src/airflow/sdk/api/client.py | 224 ++
.../src/airflow/sdk/api/datamodels}/__init__.py | 0
.../src/airflow/sdk/api/datamodels/_generated.py | 148 +
.../src/airflow/sdk/api/datamodels/activities.py | 12 +-
.../src/airflow/sdk/api/datamodels/ti.py | 13 +-
.../airflow/sdk/definitions/abstractoperator.py | 6 +
.../src/airflow/sdk/definitions/baseoperator.py | 20 +-
task_sdk/src/airflow/sdk/definitions/dag.py | 3 +-
task_sdk/src/airflow/sdk/definitions/taskgroup.py | 22 +-
.../src/airflow/sdk/execution_time}/__init__.py | 0
task_sdk/src/airflow/sdk/execution_time/comms.py | 120 +
.../src/airflow/sdk/execution_time/supervisor.py | 599 ++++
.../src/airflow/sdk/execution_time/task_runner.py | 191 +
task_sdk/src/airflow/sdk/log.py | 372 ++
task_sdk/src/airflow/sdk/types.py | 2 +-
.../tests/api}/__init__.py | 0
task_sdk/tests/api/test_client.py | 76 +
task_sdk/tests/conftest.py | 58 +
.../tests/defintions}/__init__.py | 0
task_sdk/tests/defintions/test_baseoperator.py | 19 +
.../tests/execution_time}/__init__.py | 0
task_sdk/tests/{ => execution_time}/conftest.py | 18 +-
task_sdk/tests/execution_time/test_supervisor.py | 150 +
task_sdk/tests/execution_time/test_task_runner.py | 56 +
tests/always/test_pandas.py | 4 +-
tests/always/test_project_structure.py | 5 -
tests/always/test_providers_manager.py | 32 +
.../api_connexion/endpoints/test_asset_endpoint.py | 6 +-
.../endpoints/test_connection_endpoint.py | 6 +-
tests/api_connexion/endpoints/test_dag_endpoint.py | 12 +-
.../endpoints/test_dag_run_endpoint.py | 105 +-
.../endpoints/test_dag_stats_endpoint.py | 8 +-
.../endpoints/test_event_log_endpoint.py | 16 +-
.../endpoints/test_extra_link_endpoint.py | 2 +-
tests/api_connexion/endpoints/test_log_endpoint.py | 4 +-
.../test_mapped_task_instance_endpoint.py | 4 +-
.../api_connexion/endpoints/test_pool_endpoint.py | 10 +-
.../endpoints/test_task_instance_endpoint.py | 293 +-
.../endpoints/test_variable_endpoint.py | 12 +-
.../api_connexion/endpoints/test_xcom_endpoint.py | 154 +-
tests/api_connexion/schemas/test_dag_run_schema.py | 29 +-
.../api_connexion/schemas/test_event_log_schema.py | 8 +-
.../schemas/test_task_instance_schema.py | 13 +-
tests/api_connexion/schemas/test_xcom_schema.py | 34 +-
.../core_api/routes/public/test_assets.py | 461 +++
.../core_api/routes/public/test_connections.py | 75 +-
.../core_api/routes/public/test_dag_run.py | 145 +-
.../core_api/routes/public/test_dag_stats.py | 8 +-
.../core_api/routes/public/test_dags.py | 10 +-
.../core_api/routes/public/test_event_logs.py | 8 +-
.../core_api/routes/public/test_task_instances.py | 712 +++-
.../core_api/routes/public/test_tasks.py | 294 ++
.../core_api/routes/public/test_xcom.py | 226 ++
tests/api_fastapi/core_api/routes/test_routes.py | 52 +
.../api_fastapi/core_api/routes/ui/test_assets.py | 2 +-
tests/api_fastapi/core_api/routes/ui/test_dags.py | 11 +-
.../core_api/routes/ui/test_dashboard.py | 6 +-
.../execution_api/routes/test_connections.py | 107 +
...est_task_instance.py => test_task_instances.py} | 20 +-
.../execution_api/routes/test_variables.py | 77 +
.../api_fastapi/execution_api/routes/test_xcoms.py | 83 +
tests/api_fastapi/test_app.py | 19 +
tests/assets/test_manager.py | 2 +-
tests/cli/commands/test_celery_command.py | 1 +
tests/cli/commands/test_dag_command.py | 22 +-
tests/cli/commands/test_legacy_commands.py | 21 +-
tests/cli/commands/test_task_command.py | 134 +-
tests/core/test_core.py | 27 -
tests/core/test_example_dags_system.py | 4 +-
tests/core/test_logging_config.py | 2 +-
tests/core/test_otel_logger.py | 56 +-
tests/core/test_sentry.py | 8 +-
tests/core/test_sqlalchemy_config.py | 4 +-
tests/core/test_stats.py | 25 +-
tests/dag_processing/test_collection.py | 4 +-
tests/dag_processing/test_dag_bundles.py | 178 +
tests/dag_processing/test_processor.py | 8 +-
tests/dags/test_cli_triggered_dags.py | 2 +-
tests/decorators/test_assets.py | 177 +
tests/decorators/test_branch_external_python.py | 8 +-
tests/decorators/test_branch_python.py | 8 +-
tests/decorators/test_branch_virtualenv.py | 8 +-
tests/decorators/test_external_python.py | 2 +-
tests/decorators/test_python.py | 4 +-
tests/decorators/test_python_virtualenv.py | 2 +-
tests/decorators/test_sensor.py | 16 +-
tests/decorators/test_task_group.py | 25 +-
tests/executors/test_base_executor.py | 2 +-
tests/executors/test_local_executor.py | 8 +-
tests/jobs/test_local_task_job.py | 38 +-
tests/jobs/test_scheduler_job.py | 257 +-
tests/jobs/test_triggerer_job.py | 6 +-
tests/lineage/test_lineage.py | 4 +-
tests/listeners/test_listeners.py | 6 +-
tests/models/test_backfill.py | 18 +-
tests/models/test_baseoperator.py | 20 +-
tests/models/test_cleartasks.py | 2 +-
tests/models/test_dag.py | 114 +-
tests/models/test_dagrun.py | 72 +-
tests/models/test_param.py | 6 +-
tests/models/test_renderedtifields.py | 10 +-
tests/models/test_skipmixin.py | 2 +-
tests/models/test_taskinstance.py | 227 +-
tests/models/test_trigger.py | 42 +-
tests/models/test_xcom.py | 24 +-
tests/models/test_xcom_arg.py | 2 +-
tests/operators/test_branch_operator.py | 20 +-
tests/operators/test_latest_only_operator.py | 32 +-
tests/operators/test_trigger_dagrun.py | 28 +-
tests/sensors/test_external_task_sensor.py | 90 +-
tests/serialization/test_dag_serialization.py | 50 +-
tests/serialization/test_pydantic_models.py | 8 +-
tests/serialization/test_serialized_objects.py | 4 +-
tests/system/README.md | 89 -
tests/system/conftest.py | 11 +-
.../deps/test_not_previously_skipped_dep.py | 2 +-
tests/ti_deps/deps/test_prev_dagrun_dep.py | 10 +-
tests/ti_deps/deps/test_ready_to_reschedule_dep.py | 4 +-
tests/ti_deps/deps/test_runnable_exec_date_dep.py | 35 +-
tests/ti_deps/deps/test_task_concurrency.py | 2 +-
tests/timetables/test_assets_timetable.py | 4 +-
tests/triggers/test_external_task.py | 22 +-
tests/utils/log/test_log_reader.py | 8 +-
tests/utils/test_cli_util.py | 6 +-
tests/utils/test_dot_renderer.py | 4 +-
tests/utils/test_helpers.py | 4 +-
tests/utils/test_log_handlers.py | 34 +-
tests/utils/test_operator_helpers.py | 62 +-
tests/utils/test_session.py | 12 +
tests/utils/test_sqlalchemy.py | 12 +-
tests/utils/test_state.py | 2 +-
tests/utils/test_task_group.py | 80 +-
.../test_task_handler_with_custom_formatter.py | 2 +-
tests/utils/test_trigger_rule.py | 3 +-
tests/utils/test_types.py | 2 +-
tests/utils/test_weight_rule.py | 9 +-
tests/www/test_utils.py | 12 +-
tests/www/views/test_views.py | 27 +-
tests/www/views/test_views_acl.py | 14 +-
tests/www/views/test_views_cluster_activity.py | 6 +-
tests/www/views/test_views_connection.py | 4 +-
tests/www/views/test_views_dagrun.py | 20 +-
tests/www/views/test_views_decorators.py | 14 +-
tests/www/views/test_views_extra_links.py | 26 +-
tests/www/views/test_views_grid.py | 14 +-
tests/www/views/test_views_log.py | 34 +-
tests/www/views/test_views_rendered.py | 34 +-
tests/www/views/test_views_task_norun.py | 4 +-
tests/www/views/test_views_tasks.py | 80 +-
tests/www/views/test_views_trigger_dag.py | 12 +-
tests/www/views/test_views_variable.py | 6 +-
tests_common/_internals/forbidden_warnings.py | 5 -
tests_common/pytest_plugin.py | 145 +-
tests_common/test_utils/azure_system_helpers.py | 2 +-
tests_common/test_utils/compat.py | 6 +
tests_common/test_utils/gcp_system_helpers.py | 2 +-
tests_common/test_utils/www.py | 18 +-
1063 files changed, 33752 insertions(+), 16738 deletions(-)
create mode 100644 .github/workflows/integration-system-tests.yml
delete mode 100644 .github/workflows/integration-tests.yml
rename airflow/api_fastapi/core_api/{serializers => datamodels}/__init__.py
(100%)
create mode 100644 airflow/api_fastapi/core_api/datamodels/assets.py
rename airflow/api_fastapi/core_api/{serializers => datamodels}/backfills.py
(100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/connections.py
(95%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/dag_run.py
(88%)
copy airflow/api_fastapi/core_api/{serializers => datamodels}/dag_sources.py
(100%)
copy airflow/api_fastapi/core_api/{serializers => datamodels}/dag_stats.py
(100%)
copy airflow/api_fastapi/core_api/{serializers => datamodels}/dag_warning.py
(100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/dags.py (100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/event_logs.py
(95%)
rename airflow/api_fastapi/core_api/{serializers =>
datamodels}/import_error.py (100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/job.py (100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/monitor.py
(100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/plugins.py
(97%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/pools.py (100%)
copy airflow/api_fastapi/core_api/{serializers => datamodels}/providers.py
(100%)
rename airflow/api_fastapi/core_api/{serializers =>
datamodels}/task_instances.py (82%)
create mode 100644 airflow/api_fastapi/core_api/datamodels/tasks.py
rename airflow/api_fastapi/core_api/{serializers => datamodels}/trigger.py
(96%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/ui/__init__.py
(100%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/ui/dags.py
(89%)
rename airflow/api_fastapi/core_api/{serializers =>
datamodels}/ui/dashboard.py (94%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/variables.py
(98%)
rename airflow/api_fastapi/core_api/{serializers => datamodels}/version.py
(100%)
rename airflow/api_fastapi/core_api/{serializers/dag_warning.py =>
datamodels/xcom.py} (60%)
create mode 100644 airflow/api_fastapi/core_api/routes/public/assets.py
create mode 100644 airflow/api_fastapi/core_api/routes/public/tasks.py
create mode 100644 airflow/api_fastapi/core_api/routes/public/xcom.py
rename airflow/api_fastapi/execution_api/{schemas.py => datamodels.py} (80%)
rename airflow/api_fastapi/{core_api/serializers/providers.py =>
execution_api/deps.py} (67%)
create mode 100644 airflow/api_fastapi/execution_api/routes/connections.py
rename airflow/api_fastapi/execution_api/routes/{task_instance.py =>
task_instances.py} (92%)
create mode 100644 airflow/api_fastapi/execution_api/routes/variables.py
create mode 100644 airflow/api_fastapi/execution_api/routes/xcoms.py
copy airflow/{api_connexion => dag_processing/bundles}/__init__.py (100%)
create mode 100644 airflow/dag_processing/bundles/base.py
create mode 100644 airflow/dag_processing/bundles/git.py
rename airflow/{api_fastapi/core_api/serializers/dag_stats.py =>
dag_processing/bundles/local.py} (52%)
create mode 100644 airflow/decorators/assets.py
copy providers/tests/system/openlineage/example_openlineage.py =>
airflow/example_dags/example_asset_decorator.py (50%)
create mode 100644
airflow/migrations/versions/0048_3_0_0_add_trigger_asset_reference.py
create mode 100644 airflow/ui/src/components/SearchBar.test.tsx
copy airflow/ui/src/components/{QuickFilterButton.tsx => StateCircle.tsx} (68%)
create mode 100644 airflow/ui/src/components/TimeRangeSelector.tsx
create mode 100644 airflow/ui/src/components/TriggerDag/TriggerDAGForm.tsx
create mode 100644
airflow/ui/src/components/TriggerDag/TriggerDAGIconButton.tsx
create mode 100644 airflow/ui/src/components/TriggerDag/TriggerDAGModal.tsx
copy airflow/ui/src/{pages/DagsList/LatestRun.tsx =>
components/TriggerDag/TriggerDAGTextButton.tsx} (52%)
rename airflow/ui/src/{pages/DagsList/LatestRun.tsx =>
components/TriggerDag/TriggerDag.tsx} (52%)
copy airflow/ui/src/components/ui/{index.ts => Accordion/ItemContent.tsx} (69%)
create mode 100644 airflow/ui/src/components/ui/Accordion/ItemTrigger.tsx
copy airflow/ui/src/{pages/Dashboard/Dashboard.tsx =>
components/ui/Accordion/index.tsx} (77%)
create mode 100644 airflow/ui/src/constants/sortParams.ts
copy airflow/ui/src/layouts/{BaseLayout.tsx => Nav/BrowseButton.tsx} (52%)
create mode 100644
airflow/ui/src/pages/Dashboard/HistoricalMetrics/DagRunMetrics.tsx
create mode 100644
airflow/ui/src/pages/Dashboard/HistoricalMetrics/HistoricalMetrics.tsx
create mode 100644
airflow/ui/src/pages/Dashboard/HistoricalMetrics/MetricSection.tsx
copy airflow/ui/src/pages/Dashboard/{Dashboard.tsx =>
HistoricalMetrics/MetricSectionSkeleton.tsx} (79%)
copy airflow/ui/src/{components/QuickFilterButton.tsx =>
pages/Dashboard/HistoricalMetrics/MetricsBadge.tsx} (64%)
create mode 100644
airflow/ui/src/pages/Dashboard/HistoricalMetrics/TaskInstanceMetrics.tsx
copy airflow/ui/src/pages/Dashboard/{Dashboard.tsx =>
HistoricalMetrics/index.ts} (79%)
create mode 100644 airflow/ui/src/pages/Events/Events.tsx
copy airflow/ui/src/pages/{Dashboard/Dashboard.tsx => Events/index.tsx} (79%)
copy airflow/ui/src/{pages/Dashboard/Dashboard.tsx =>
utils/advancedSelectStyles.ts} (78%)
create mode 100644 dev/breeze/doc/adr/0016-use-uv-tool-to-install-breeze.md
create mode 100644
dev/breeze/doc/images/output_testing_core-integration-tests.svg
create mode 100644
dev/breeze/doc/images/output_testing_core-integration-tests.txt
create mode 100644 dev/breeze/doc/images/output_testing_core-tests.svg
create mode 100644 dev/breeze/doc/images/output_testing_core-tests.txt
delete mode 100644 dev/breeze/doc/images/output_testing_db-tests.svg
delete mode 100644 dev/breeze/doc/images/output_testing_db-tests.txt
delete mode 100644 dev/breeze/doc/images/output_testing_integration-tests.svg
delete mode 100644 dev/breeze/doc/images/output_testing_integration-tests.txt
delete mode 100644 dev/breeze/doc/images/output_testing_non-db-tests.svg
delete mode 100644 dev/breeze/doc/images/output_testing_non-db-tests.txt
create mode 100644
dev/breeze/doc/images/output_testing_providers-integration-tests.svg
create mode 100644
dev/breeze/doc/images/output_testing_providers-integration-tests.txt
create mode 100644 dev/breeze/doc/images/output_testing_providers-tests.svg
create mode 100644 dev/breeze/doc/images/output_testing_providers-tests.txt
create mode 100644 dev/breeze/doc/images/output_testing_system-tests.svg
create mode 100644 dev/breeze/doc/images/output_testing_system-tests.txt
delete mode 100644 dev/breeze/doc/images/output_testing_tests.svg
delete mode 100644 dev/breeze/doc/images/output_testing_tests.txt
rename docs/{apache-airflow/howto/operator =>
apache-airflow-providers-standard/operators}/bash.rst (96%)
rename docs/apache-airflow-providers-standard/{operators.rst =>
operators/datetime.rst} (89%)
copy docs/apache-airflow-providers-standard/{changelog.rst =>
operators/index.rst} (89%)
rename docs/{apache-airflow/howto/operator =>
apache-airflow-providers-standard/operators}/python.rst (95%)
copy docs/{apache-airflow/howto/operator/index.rst =>
apache-airflow-providers-standard/sensors/bash.rst} (65%)
rename docs/apache-airflow-providers-standard/{sensors.rst =>
sensors/datetime.rst} (85%)
copy docs/apache-airflow-providers-standard/{changelog.rst =>
sensors/index.rst} (90%)
create mode 100644 docs/apache-airflow-providers-standard/sensors/python.rst
delete mode 100644 newsfragments/39908.significant.rst
create mode 100644 newsfragments/43368.significant.rst
create mode 100644 newsfragments/43611.significant.rst
create mode 100644 newsfragments/43902.significant.rst
create mode 100644 newsfragments/43915.significant.rst
create mode 100644 newsfragments/43943.significant.rst
create mode 100644 newsfragments/43975.significant.rst
copy {airflow/operators => providers/src/airflow}/__init__.py (75%)
delete mode 100644
providers/src/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
delete mode 100644
providers/src/airflow/providers/cncf/kubernetes/pod_launcher_deprecated.py
delete mode 100644
providers/src/airflow/providers/cncf/kubernetes/triggers/kubernetes_pod.py
copy task_sdk/tests/conftest.py =>
providers/src/airflow/providers/databricks/exceptions.py (65%)
copy airflow/api_fastapi/core_api/serializers/dag_sources.py =>
providers/src/airflow/providers/standard/utils/version_references.py (73%)
delete mode 100644
providers/src/airflow/providers/ydb/hooks/_vendor/__init__.py
delete mode 100644
providers/src/airflow/providers/ydb/hooks/_vendor/dbapi/__init__.py
delete mode 100644
providers/src/airflow/providers/ydb/hooks/_vendor/dbapi/connection.py
delete mode 100644
providers/src/airflow/providers/ydb/hooks/_vendor/dbapi/constants.py
delete mode 100644
providers/src/airflow/providers/ydb/hooks/_vendor/dbapi/cursor.py
delete mode 100644
providers/src/airflow/providers/ydb/hooks/_vendor/dbapi/errors.py
delete mode 100644 providers/src/airflow/providers/ydb/hooks/_vendor/readme.md
copy {airflow/api/auth => providers/tests/apache/cassandra/hooks}/__init__.py
(100%)
create mode 100644 providers/tests/apache/cassandra/hooks/test_cassandra.py
copy task_sdk/tests/conftest.py =>
providers/tests/databricks/test_exceptions.py (56%)
copy {tests => providers/tests}/system/conftest.py (83%)
copy {tests => providers/tests}/system/example_empty.py (100%)
create mode 100644
providers/tests/system/google/cloud/cloud_sql/example_cloud_sql_query_iam.py
copy {task_sdk/tests => providers/tests/system/openlineage}/conftest.py (59%)
rename providers/tests/system/openlineage/{event.json =>
example_openlineage.json} (56%)
create mode 100644
providers/tests/system/openlineage/example_openlineage_mapped_sensor.json
create mode 100644
providers/tests/system/openlineage/example_openlineage_mapped_sensor.py
copy airflow/api_fastapi/core_api/serializers/dag_sources.py =>
scripts/ci/testing/run_system_tests.sh (70%)
mode change 100644 => 100755
create mode 100755 scripts/ci/testing/run_unit_tests.sh
delete mode 100644 scripts/docker/install_pipx_tools.sh
copy {airflow/operators => task_sdk/src/airflow}/__init__.py (75%)
copy {airflow/api_connexion => task_sdk/src/airflow/sdk/api}/__init__.py (100%)
create mode 100644 task_sdk/src/airflow/sdk/api/client.py
copy {airflow/api_connexion =>
task_sdk/src/airflow/sdk/api/datamodels}/__init__.py (100%)
create mode 100644 task_sdk/src/airflow/sdk/api/datamodels/_generated.py
copy airflow/api_fastapi/core_api/serializers/dag_sources.py =>
task_sdk/src/airflow/sdk/api/datamodels/activities.py (79%)
rename airflow/api_fastapi/core_api/serializers/dag_sources.py =>
task_sdk/src/airflow/sdk/api/datamodels/ti.py (83%)
copy {airflow/api/auth => task_sdk/src/airflow/sdk/execution_time}/__init__.py
(100%)
create mode 100644 task_sdk/src/airflow/sdk/execution_time/comms.py
create mode 100644 task_sdk/src/airflow/sdk/execution_time/supervisor.py
create mode 100644 task_sdk/src/airflow/sdk/execution_time/task_runner.py
create mode 100644 task_sdk/src/airflow/sdk/log.py
copy {airflow/api_connexion => task_sdk/tests/api}/__init__.py (100%)
create mode 100644 task_sdk/tests/api/test_client.py
copy {airflow/api_connexion => task_sdk/tests/defintions}/__init__.py (100%)
copy {airflow/api_connexion => task_sdk/tests/execution_time}/__init__.py
(100%)
copy task_sdk/tests/{ => execution_time}/conftest.py (73%)
create mode 100644 task_sdk/tests/execution_time/test_supervisor.py
create mode 100644 task_sdk/tests/execution_time/test_task_runner.py
create mode 100644 tests/api_fastapi/core_api/routes/public/test_assets.py
create mode 100644 tests/api_fastapi/core_api/routes/public/test_tasks.py
create mode 100644 tests/api_fastapi/core_api/routes/public/test_xcom.py
create mode 100644 tests/api_fastapi/core_api/routes/test_routes.py
create mode 100644 tests/api_fastapi/execution_api/routes/test_connections.py
rename tests/api_fastapi/execution_api/routes/{test_task_instance.py =>
test_task_instances.py} (94%)
create mode 100644 tests/api_fastapi/execution_api/routes/test_variables.py
create mode 100644 tests/api_fastapi/execution_api/routes/test_xcoms.py
create mode 100644 tests/dag_processing/test_dag_bundles.py
create mode 100644 tests/decorators/test_assets.py
delete mode 100644 tests/system/README.md