This is an automated email from the ASF dual-hosted git repository. potiuk pushed a change to branch split-tests-to-core-providers-task-sdk in repository https://gitbox.apache.org/repos/asf/airflow.git
omit d653aa8395b Split tests to core/providers/task-sdk/integration/system 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 2fa69076db6 Split tests to core/providers/task-sdk/integration/system 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 (d653aa8395b) \ N -- N -- N refs/heads/split-tests-to-core-providers-task-sdk (2fa69076db6) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: .github/workflows/basic-tests.yml | 17 +- .github/workflows/ci.yml | 6 +- ...tion-tests.yml => integration-system-tests.yml} | 90 +++- Dockerfile | 2 +- Dockerfile.ci | 4 +- airflow/api_connexion/endpoints/asset_endpoint.py | 2 + airflow/api_fastapi/common/parameters.py | 97 +++- airflow/api_fastapi/core_api/datamodels/assets.py | 43 +- .../api_fastapi/core_api/openapi/v1-generated.yaml | 341 ++++++++++-- .../api_fastapi/core_api/routes/public/__init__.py | 44 +- .../api_fastapi/core_api/routes/public/assets.py | 96 +++- airflow/assets/__init__.py | 34 +- airflow/config_templates/config.yml | 18 - airflow/decorators/assets.py | 131 +++++ airflow/example_dags/example_asset_decorator.py | 52 ++ airflow/jobs/scheduler_job_runner.py | 35 +- airflow/metrics/datadog_logger.py | 15 +- airflow/metrics/otel_logger.py | 14 +- airflow/metrics/protocols.py | 16 +- airflow/models/abstractoperator.py | 15 +- airflow/models/asset.py | 22 + airflow/models/baseoperator.py | 5 +- airflow/models/dag.py | 4 +- airflow/models/dagrun.py | 59 +- airflow/models/dagwarning.py | 2 +- airflow/models/taskinstance.py | 20 +- airflow/serialization/enums.py | 1 + airflow/serialization/schema.json | 17 +- airflow/serialization/serialized_objects.py | 9 +- airflow/settings.py | 34 +- airflow/ui/openapi-gen/queries/common.ts | 108 +++- airflow/ui/openapi-gen/queries/prefetch.ts | 122 ++++- airflow/ui/openapi-gen/queries/queries.ts | 169 ++++-- airflow/ui/openapi-gen/queries/suspense.ts | 169 ++++-- airflow/ui/openapi-gen/requests/schemas.gen.ts | 172 +++++- airflow/ui/openapi-gen/requests/services.gen.ts | 140 +++-- airflow/ui/openapi-gen/requests/types.gen.ts | 183 +++++-- airflow/ui/src/components/DagRunInfo.tsx | 12 +- .../components/DataTable/ToggleTableDisplay.tsx | 12 +- airflow/ui/src/components/QuickFilterButton.tsx | 12 +- airflow/ui/src/components/SearchBar.tsx | 3 +- .../{QuickFilterButton.tsx => StateCircle.tsx} | 31 +- airflow/ui/src/components/TimeRangeSelector.tsx | 85 +++ .../components/TriggerDag/TriggerDAGIconButton.tsx | 12 +- airflow/ui/src/components/ui/Select/Trigger.tsx | 49 +- airflow/ui/src/pages/DagsList/DagsFilters.tsx | 67 ++- 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 +- airflow/utils/weight_rule.py | 12 + contributing-docs/testing/system_tests.rst | 97 +++- contributing-docs/testing/unit_tests.rst | 106 ++-- dev/breeze/doc/05_test_commands.rst | 205 +------ dev/breeze/doc/ci/02_images.md | 4 +- .../output_setup_check-all-params-in-groups.svg | 28 +- .../output_setup_check-all-params-in-groups.txt | 2 +- .../output_setup_regenerate-command-images.svg | 36 +- .../output_setup_regenerate-command-images.txt | 2 +- dev/breeze/doc/images/output_testing.svg | 80 +-- dev/breeze/doc/images/output_testing.txt | 2 +- .../doc/images/output_testing_core-db-tests.svg | 436 --------------- .../doc/images/output_testing_core-db-tests.txt | 1 - .../output_testing_core-integration-tests.svg | 268 +++++++++ .../output_testing_core-integration-tests.txt | 1 + .../images/output_testing_core-non-db-tests.svg | 392 -------------- .../images/output_testing_core-non-db-tests.txt | 1 - .../images/output_testing_docker-compose-tests.txt | 2 +- .../doc/images/output_testing_helm-tests.txt | 2 +- .../output_testing_integration-core-tests.svg | 268 --------- .../output_testing_integration-core-tests.txt | 1 - .../output_testing_integration-providers-tests.svg | 272 ---------- .../output_testing_integration-providers-tests.txt | 1 - .../images/output_testing_providers-db-tests.svg | 488 ----------------- .../images/output_testing_providers-db-tests.txt | 1 - .../output_testing_providers-integration-tests.svg | 272 ++++++++++ .../output_testing_providers-integration-tests.txt | 1 + .../output_testing_providers-non-db-tests.svg | 432 --------------- .../output_testing_providers-non-db-tests.txt | 1 - .../images/output_testing_system-core-tests.svg | 252 --------- .../images/output_testing_system-core-tests.txt | 1 - .../output_testing_system-providers-tests.svg | 252 --------- .../output_testing_system-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.txt | 2 +- .../airflow_breeze/commands/testing_commands.py | 366 +------------ .../commands/testing_commands_config.py | 56 +- dev/breeze/src/airflow_breeze/global_constants.py | 7 +- .../src/airflow_breeze/params/shell_params.py | 3 - dev/breeze/src/airflow_breeze/utils/run_tests.py | 12 +- dev/breeze/tests/test_packages.py | 2 + .../tests/test_pytest_args_for_test_types.py | 21 +- dev/breeze/tests/test_shell_params.py | 8 - 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 +- .../priority-weight.rst | 6 + generated/provider_dependencies.json | 5 +- newsfragments/39908.significant.rst | 11 - newsfragments/43611.significant.rst | 6 + 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 + .../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 | 3 +- .../airflow/providers/apache/druid/CHANGELOG.rst | 12 + .../src/airflow/providers/apache/druid/__init__.py | 2 +- .../airflow/providers/apache/druid/provider.yaml | 3 +- .../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 | 3 +- .../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 | 3 +- .../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 | 3 +- .../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 | 75 ++- .../airflow/providers/cncf/kubernetes/__init__.py | 2 +- .../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/databricks/CHANGELOG.rst | 20 + .../src/airflow/providers/databricks/__init__.py | 2 +- .../src/airflow/providers/databricks/provider.yaml | 3 +- .../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 +- .../airflow/providers/elasticsearch/CHANGELOG.rst | 13 + .../airflow/providers/elasticsearch/__init__.py | 2 +- .../airflow/providers/elasticsearch/provider.yaml | 3 +- .../src/airflow/providers/exasol/CHANGELOG.rst | 14 + providers/src/airflow/providers/exasol/__init__.py | 2 +- .../src/airflow/providers/exasol/provider.yaml | 3 +- 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 - .../src/airflow/providers/google/provider.yaml | 3 +- .../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 | 7 +- .../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 | 3 +- .../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 | 3 +- .../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 | 4 +- .../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 | 3 +- .../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/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 | 3 +- .../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 +- .../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 | 4 +- .../src/airflow/providers/presto/CHANGELOG.rst | 13 + providers/src/airflow/providers/presto/__init__.py | 2 +- .../src/airflow/providers/presto/provider.yaml | 3 +- .../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 | 3 +- 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 | 3 +- .../src/airflow/providers/sqlite/CHANGELOG.rst | 14 + providers/src/airflow/providers/sqlite/__init__.py | 2 +- .../src/airflow/providers/sqlite/provider.yaml | 4 +- .../src/airflow/providers/standard/CHANGELOG.rst | 5 +- .../src/airflow/providers/standard/__init__.py | 23 +- .../airflow/providers/standard/operators/python.py | 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 | 3 +- .../src/airflow/providers/trino/CHANGELOG.rst | 14 + providers/src/airflow/providers/trino/__init__.py | 2 +- .../src/airflow/providers/trino/provider.yaml | 3 +- .../src/airflow/providers/vertica/CHANGELOG.rst | 14 + .../src/airflow/providers/vertica/__init__.py | 2 +- .../src/airflow/providers/vertica/provider.yaml | 3 +- .../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 | 3 +- .../providers/zendesk/.latest-doc-only-change.txt | 2 +- .../apache/spark/hooks/test_spark_jdbc_script.py | 4 +- .../google/cloud/hooks/test_bigquery_system.py | 2 +- .../cloud/hooks/test_secret_manager_system.py | 2 +- .../cloud/log/test_gcs_task_handler_system.py | 2 +- .../log/test_stackdriver_task_handler_system.py | 2 +- .../google/cloud/operators/test_datacatalog.py | 4 +- .../transfers/test_facebook_ads_to_gcs_system.py | 2 +- .../transfers/test_salesforce_to_gcs_system.py | 4 +- .../operators/test_display_video_system.py | 2 +- 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/system/amazon/README.md | 19 +- .../amazon/aws/tests/test_aws_auth_manager.py | 2 +- providers/tests/system/google/README.md | 27 +- scripts/ci/docker-compose/devcontainer.env | 2 - scripts/ci/kubernetes/k8s_requirements.txt | 2 +- .../ci/testing/run_integration_tests_with_retry.sh | 8 +- ...ion_tests_with_retry.sh => run_system_tests.sh} | 23 +- scripts/ci/testing/run_unit_tests.sh | 12 +- scripts/docker/entrypoint_ci.sh | 2 +- scripts/docker/install_airflow.sh | 2 +- scripts/in_container/run_system_tests.sh | 4 +- 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 | 224 ++++++++ .../src/airflow/sdk/api/datamodels}/__init__.py | 0 .../src/airflow/sdk/api/datamodels/_generated.py | 148 +++++ .../src/airflow/sdk/api/datamodels/activities.py | 17 +- .../src/airflow/sdk/api/datamodels/ti.py | 18 +- .../airflow/sdk/definitions/abstractoperator.py | 6 + .../src/airflow/sdk/definitions/baseoperator.py | 10 +- .../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 ++ .../core_api/routes/public/test_assets.py | 234 +++++++- 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_example_dags_system.py | 2 +- 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 | 109 ++++ tests/models/test_dag.py | 22 +- tests/models/test_xcom_arg.py | 2 +- tests/system/README.md | 89 --- tests/system/conftest.py | 11 +- tests/timetables/test_assets_timetable.py | 4 +- tests/utils/test_session.py | 12 + tests/utils/test_weight_rule.py | 9 +- tests_common/_internals/forbidden_warnings.py | 5 - tests_common/pytest_plugin.py | 32 +- tests_common/test_utils/azure_system_helpers.py | 2 +- tests_common/test_utils/gcp_system_helpers.py | 2 +- 448 files changed, 8948 insertions(+), 5158 deletions(-) rename .github/workflows/{integration-tests.yml => integration-system-tests.yml} (61%) create mode 100644 airflow/decorators/assets.py create mode 100644 airflow/example_dags/example_asset_decorator.py 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/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 dev/breeze/doc/images/output_testing_core-db-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_core-db-tests.txt 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 delete mode 100644 dev/breeze/doc/images/output_testing_core-non-db-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_core-non-db-tests.txt delete mode 100644 dev/breeze/doc/images/output_testing_integration-core-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_integration-core-tests.txt delete mode 100644 dev/breeze/doc/images/output_testing_integration-providers-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_integration-providers-tests.txt delete mode 100644 dev/breeze/doc/images/output_testing_providers-db-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_providers-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 delete mode 100644 dev/breeze/doc/images/output_testing_providers-non-db-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_providers-non-db-tests.txt delete mode 100644 dev/breeze/doc/images/output_testing_system-core-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_system-core-tests.txt delete mode 100644 dev/breeze/doc/images/output_testing_system-providers-tests.svg delete mode 100644 dev/breeze/doc/images/output_testing_system-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 newsfragments/39908.significant.rst create mode 100644 newsfragments/43611.significant.rst create mode 100644 newsfragments/43975.significant.rst copy providers/src/airflow/providers/standard/{__init__.py => utils/version_references.py} (100%) copy scripts/ci/testing/{run_integration_tests_with_retry.sh => run_system_tests.sh} (61%) 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 providers/src/airflow/providers/standard/__init__.py => task_sdk/src/airflow/sdk/api/datamodels/activities.py (73%) copy providers/src/airflow/providers/standard/__init__.py => task_sdk/src/airflow/sdk/api/datamodels/ti.py (73%) 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/test_routes.py create mode 100644 tests/decorators/test_assets.py delete mode 100644 tests/system/README.md