This is an automated email from the ASF dual-hosted git repository.
dstandish pushed a change to branch handle-stuck-in-queue
in repository https://gitbox.apache.org/repos/asf/airflow.git
from b62eeb99006 don't create an executor event; just fail the task
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 5dce100ce74 Merge branch 'main' into handle-stuck-in-queue
add c4f42044b57 Change this from "clean up stuck queued" to "revoke_task"
add 4bd5dbe727e update tests
No new revisions were added by this update.
Summary of changes:
.pre-commit-config.yaml | 6 +-
Dockerfile | 2 +-
Dockerfile.ci | 2 +-
airflow/__init__.py | 38 -
airflow/api_connexion/endpoints/asset_endpoint.py | 2 +
airflow/api_connexion/endpoints/task_endpoint.py | 2 +
airflow/api_fastapi/common/parameters.py | 97 +-
airflow/api_fastapi/common/types.py | 62 +-
airflow/api_fastapi/core_api/datamodels/assets.py | 43 +-
airflow/api_fastapi/core_api/datamodels/dag_run.py | 1 +
airflow/api_fastapi/core_api/datamodels/tasks.py | 83 +
.../api_fastapi/core_api/openapi/v1-generated.yaml | 2030 +++++++++++++-------
.../api_fastapi/core_api/routes/public/__init__.py | 48 +-
.../api_fastapi/core_api/routes/public/assets.py | 96 +-
.../core_api/routes/public/backfills.py | 25 +-
.../core_api/routes/public/connections.py | 18 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 6 -
.../core_api/routes/public/dag_sources.py | 2 -
.../core_api/routes/public/dag_stats.py | 2 -
.../core_api/routes/public/dag_warning.py | 4 +-
airflow/api_fastapi/core_api/routes/public/dags.py | 11 -
.../core_api/routes/public/event_logs.py | 4 +-
.../core_api/routes/public/import_error.py | 5 +-
.../api_fastapi/core_api/routes/public/pools.py | 2 -
.../core_api/routes/public/task_instances.py | 4 +-
.../api_fastapi/core_api/routes/public/tasks.py | 56 +
.../core_api/routes/public/variables.py | 12 +-
airflow/api_fastapi/core_api/routes/public/xcom.py | 2 -
airflow/assets/__init__.py | 34 +-
airflow/config_templates/config.yml | 19 -
airflow/dag_processing/manager.py | 42 +-
airflow/decorators/assets.py | 131 ++
airflow/example_dags/example_asset_decorator.py | 52 +
airflow/executors/base_executor.py | 63 +-
airflow/executors/local_executor.py | 14 +-
airflow/executors/sequential_executor.py | 14 +-
airflow/hooks/__init__.py | 17 +
airflow/jobs/scheduler_job_runner.py | 256 +--
airflow/jobs/triggerer_job_runner.py | 10 +-
airflow/metrics/datadog_logger.py | 15 +-
airflow/metrics/otel_logger.py | 14 +-
airflow/metrics/protocols.py | 16 +-
airflow/models/asset.py | 22 +
airflow/models/dag.py | 4 +-
airflow/models/dagrun.py | 59 +-
airflow/models/dagwarning.py | 6 +-
airflow/models/taskinstance.py | 58 +-
airflow/operators/__init__.py | 30 +
airflow/sensors/__init__.py | 29 +
airflow/serialization/enums.py | 1 +
airflow/serialization/schema.json | 17 +-
airflow/serialization/serialized_objects.py | 9 +-
airflow/ui/openapi-gen/queries/common.ts | 401 ++--
airflow/ui/openapi-gen/queries/prefetch.ts | 476 +++--
airflow/ui/openapi-gen/queries/queries.ts | 885 +++++----
airflow/ui/openapi-gen/queries/suspense.ts | 637 +++---
airflow/ui/openapi-gen/requests/schemas.gen.ts | 623 +++++-
airflow/ui/openapi-gen/requests/services.gen.ts | 809 ++++----
airflow/ui/openapi-gen/requests/types.gen.ts | 769 +++++---
airflow/ui/package.json | 4 +
airflow/ui/pnpm-lock.yaml | 718 ++++++-
airflow/ui/src/components/DagRunInfo.tsx | 48 +-
.../components/DataTable/ToggleTableDisplay.tsx | 12 +-
airflow/ui/src/components/QuickFilterButton.tsx | 12 +-
airflow/ui/src/components/SearchBar.tsx | 3 +-
.../LatestRun.tsx => components/StateCircle.tsx} | 37 +-
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/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 | 20 +-
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/queries/useDags.tsx | 2 +-
.../advancedSelectStyles.ts} | 13 -
airflow/utils/context.py | 21 +-
airflow/utils/file.py | 4 +-
airflow/utils/net.py | 4 +-
clients/python/pyproject.toml | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
dev/breeze/tests/test_packages.py | 4 +-
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 +-
.../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 +-
.../commits.rst | 37 +-
.../index.rst | 8 +-
docs/apache-airflow-providers-exasol/commits.rst | 30 +-
docs/apache-airflow-providers-exasol/index.rst | 8 +-
docs/apache-airflow-providers-fab/commits.rst | 15 +-
docs/apache-airflow-providers-fab/index.rst | 6 +-
docs/apache-airflow-providers-google/commits.rst | 122 +-
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 | 12 +-
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 | 15 +-
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 | 8 +-
generated/provider_dependencies.json | 56 +-
newsfragments/39908.significant.rst | 1 -
newsfragments/43943.significant.rst | 5 +
newsfragments/43975.significant.rst | 8 +
.../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/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/flink/.latest-doc-only-change.txt | 2 +-
.../apache/hdfs/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/apache/hive/CHANGELOG.rst | 15 +
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
.../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 +-
.../providers/celery/executors/celery_executor.py | 34 +-
.../celery/executors/celery_kubernetes_executor.py | 41 +-
.../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 | 75 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../kubernetes/executors/kubernetes_executor.py | 59 +-
.../executors/kubernetes_executor_types.py | 11 +-
.../executors/kubernetes_executor_utils.py | 21 +-
.../executors/local_kubernetes_executor.py | 12 +-
.../providers/cncf/kubernetes/operators/pod.py | 2 +-
.../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 +-
.../databricks/operators/databricks_sql.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 +-
.../src/airflow/providers/dbt/cloud/provider.yaml | 3 +-
.../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 +-
.../src/airflow/providers/docker/provider.yaml | 3 +-
providers/src/airflow/providers/edge/CHANGELOG.rst | 9 +-
providers/src/airflow/providers/edge/__init__.py | 2 +-
.../src/airflow/providers/edge/cli/edge_command.py | 15 +-
providers/src/airflow/providers/edge/provider.yaml | 2 +-
.../airflow/providers/elasticsearch/CHANGELOG.rst | 13 +
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../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 +-
.../google/cloud/operators/vertex_ai/custom_job.py | 1 -
.../airflow/providers/google/cloud/sensors/gcs.py | 17 +-
.../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 +-
.../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/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 | 5 +-
.../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 | 14 +-
.../airflow/providers/openlineage/provider.yaml | 3 +-
.../src/airflow/providers/openlineage/sqlparser.py | 7 +-
.../airflow/providers/openlineage/utils/utils.py | 16 +-
.../opensearch/.latest-doc-only-change.txt | 2 +-
.../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 +-
.../src/airflow/providers/postgres/provider.yaml | 5 +-
.../src/airflow/providers/presto/CHANGELOG.rst | 13 +
providers/src/airflow/providers/presto/__init__.py | 2 +-
.../src/airflow/providers/presto/hooks/presto.py | 1 +
.../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 | 5 +-
.../src/airflow/providers/standard/CHANGELOG.rst | 5 +-
.../src/airflow/providers/standard/__init__.py | 23 +-
.../airflow/providers/standard/operators/python.py | 2 +-
.../src/airflow/providers/standard/provider.yaml | 2 +-
.../providers/standard/sensors/date_time.py | 2 +-
.../src/airflow/providers/standard/sensors/time.py | 2 +-
.../providers/standard/sensors/time_delta.py | 2 +-
.../{__init__.py => utils/version_references.py} | 0
.../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 | 1 +
.../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 | 17 +
providers/src/airflow/providers/ydb/__init__.py | 2 +-
providers/src/airflow/providers/ydb/provider.yaml | 5 +-
.../providers/zendesk/.latest-doc-only-change.txt | 2 +-
.../tests/apache/cassandra/hooks}/__init__.py | 0
.../tests/apache/cassandra/hooks/test_cassandra.py | 188 ++
.../tests/celery/executors/test_celery_executor.py | 34 +-
.../executors/test_kubernetes_executor.py | 64 +-
.../tests/databricks/hooks/test_databricks_sql.py | 231 ++-
.../tests/databricks/test_exceptions.py | 18 +-
providers/tests/edge/cli/test_edge_command.py | 7 +-
providers/tests/edge/executors/__init__.py | 1 -
.../google/cloud/operators/test_datacatalog.py | 4 +-
providers/tests/google/cloud/sensors/test_gcs.py | 25 -
providers/tests/grpc/hooks/test_grpc.py | 74 +-
.../tests/openlineage/plugins/test_adapter.py | 3 +
providers/tests/openlineage/plugins/test_utils.py | 23 +-
providers/tests/presto/hooks/test_presto.py | 10 +
.../tests/standard/test_module_redirect_finder.py | 51 -
providers/tests/trino/hooks/test_trino.py | 10 +
pyproject.toml | 2 +-
scripts/docker/install_airflow.sh | 2 +-
scripts/in_container/install_devel_deps.py | 3 +-
task_sdk/pyproject.toml | 59 +-
task_sdk/src/airflow/sdk/__init__.py | 3 +
.../src/airflow/sdk/api}/__init__.py | 0
task_sdk/src/airflow/sdk/api/client.py | 216 +++
.../src/airflow/sdk/api/datamodels}/__init__.py | 0
.../src/airflow/sdk/api/datamodels/_generated.py | 148 ++
.../src/airflow/sdk/api/datamodels/activities.py | 15 +-
.../src/airflow/sdk/api/datamodels/ti.py | 21 +-
.../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 | 62 +
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_project_structure.py | 1 -
.../core_api/routes/public/test_assets.py | 234 ++-
.../core_api/routes/public/test_dags.py | 6 +-
.../core_api/routes/public/test_tasks.py | 294 +++
tests/api_fastapi/core_api/routes/test_routes.py | 52 +
.../api_fastapi/core_api/routes/ui/test_assets.py | 2 +-
tests/cli/commands/test_celery_command.py | 1 +
tests/core/test_otel_logger.py | 56 +-
tests/core/test_stats.py | 25 +-
tests/decorators/test_assets.py | 177 ++
tests/jobs/test_scheduler_job.py | 237 ++-
tests/models/test_dag.py | 22 +-
tests/timetables/test_assets_timetable.py | 4 +-
tests_common/_internals/forbidden_warnings.py | 5 -
456 files changed, 13772 insertions(+), 4149 deletions(-)
create mode 100644 airflow/api_fastapi/core_api/datamodels/tasks.py
create mode 100644 airflow/api_fastapi/core_api/routes/public/tasks.py
create mode 100644 airflow/decorators/assets.py
create mode 100644 airflow/example_dags/example_asset_decorator.py
copy airflow/ui/src/{pages/DagsList/LatestRun.tsx =>
components/StateCircle.tsx} (59%)
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
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%)
copy airflow/ui/src/{pages/Dashboard/Dashboard.tsx =>
utils/advancedSelectStyles.ts} (78%)
delete mode 100644 newsfragments/39908.significant.rst
create mode 100644 newsfragments/43943.significant.rst
create mode 100644 newsfragments/43975.significant.rst
copy task_sdk/tests/conftest.py =>
providers/src/airflow/providers/databricks/exceptions.py (65%)
copy providers/src/airflow/providers/standard/{__init__.py =>
utils/version_references.py} (100%)
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%)
delete mode 100644 providers/tests/standard/test_module_redirect_finder.py
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/common/types.py =>
task_sdk/src/airflow/sdk/api/datamodels/activities.py (75%)
copy airflow/sensors/__init__.py =>
task_sdk/src/airflow/sdk/api/datamodels/ti.py (77%)
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_tasks.py
create mode 100644 tests/api_fastapi/core_api/routes/test_routes.py
create mode 100644 tests/decorators/test_assets.py