This is an automated email from the ASF dual-hosted git repository.
utkarsharma pushed a change to branch v2-10-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 002a0753a2 Regenerate command images
omit 95cdc05be6 Update RELEASE_NOTES.rst
omit 56b7cf2522 Update version to 2.10.0
omit 6d401f1ca0 Update default branches for 2-10
add 9129730fa7 Skip cli tests from database isolation tests (#41174)
add e3824eaaba Install AWS CLI for docs build on self-hosted ASF runners
(#41168)
add 18e725afbe Enable scrolling on legend with high number of elements.
(#41187)
add 7fe573317e Fix AWS Redshift operators and sensors (#41191)
add d36cf052d6 Use Task Tries rest API and not viewspy endpoint (#41196)
add 7751594c31 feat: add dag_stats rest api endpoint (#41017)
add 9fbaca0ab0 Remove API/CLI commends from db isolation mode tests
(#41197)
add 5922d9c625 Fix MRO in operators without `__init__` (#41086)
add 85f0cb020f Add description in docker image changelog about upgraded
FAB (#41205)
add 4d849e87ec Add common-compat to boring-cyborg.yml (#41180)
add a9baf71304 Adjust gantt width based on task history dates (#41192)
add 82c4ae283f Bugfix query count statistics when parsing DAF file (#41149)
add ed3a0e49bf Fix the right affected provider version (#41215)
add 4d27069d9c Adjust default extractor's on_failure detection for airflow
2.10 fix (#41094)
add f5836bcb7d Revert "Adjust gantt width based on task history dates
(#41192)" (#41216)
add f9c1c61537 Pass content of kube/config file to triggerer as a
dictionary (#41178)
add 8facce407f Fixing a bug in marking a commit as MISC while releasing
providers (#41213)
add 82d817dc7e Adjust gantt width based on task history dates (#41218)
add bc0967ed1a chore(INTHEWILD.md): update list of organizations using
airflow (#41118)
add 588054519f fix: update updated_at when saving to db as session.merge
does not trigger onupdate (#40782)
add 2dbb15c1f7 Fix Callback Test for Dataset Isolation Mode (#41227)
add c31069d23a Only orphan non-orphaned Datasets (#40806)
add a5743ff826 Upgrade UV to 0.2.33 (#41228)
add e3525cf4aa Improve docs build speed in canary runs (#41226)
add 8884166def collapse docs when click and folded (#41214)
add 8560e9a8e3 Fix Example DAGs Test by adding one more internal API
method for DatasetAlias resolution (#41233)
add 5147028758 Fix tests/always/test_secrets_backends.py by adding
test_utils/db.py to accepted DB access (#41234)
add d23881c648 Prepare docs for Aug 1st wave of providers (#41230)
add 85d48bb85c bump ruff to 0.5.5 (#41032)
add e2cc315bf3 Disable internal RPC API tests in isolation mode (#41236)
add bfcf3c35ce Fix pydantic dataset serialization test in Database
Isolation Mode (#41238)
add ff631bf6be Exclude testing pydantic serialization from DB isolation
mode (#41240)
add bbc685fe07 Improve serialization for Database Isolation Mode (#41239)
add 57d091ac58 Fix all provider tests for database isolation mode (#41242)
add 3c066a22e5 Fix after 41238: Left 2 print statements in code (#41245)
add 181c1c3a63 Limit moto temporarily - 5.0.12 is breaking our tests
(#41244)
add 36efcff72b Clean up the exception handler when run_as_user is the
airflow user (#41241)
add 1302e64e31 Make all google iprovider tests pass Database Isolation
mode tests (#41250)
add f69d0087a8 Fix all smaller providers to work with DB isolation mode
(#41251)
add 9ab60f4b02 Fix all AWS provider tests for database isolation (#41253)
add 0edcf06ddf Add missing serializations found during provider tests
fixing (#41252)
add 2daa5bd01a providers/yandex: fix typing (#40997)
add a86f1b8114 allow empty list in triggerDagrun failed_state (#41249)
add 0783ded3c5 enable AIRFLOW__CELERY__BROKER_URL_CMD when
passwordSecretName is true (#40270)
add 1546d7fafd Disable DAG Stats API Endpoint test in Database Isolation
Mode (#41258)
add 03263b68db Add exporting of dependency information from SBOM to CSV
file (#41254)
add b4b8a31df0 Bugfix/41067 fix tests operators test python (#41257)
add b2effc6278 feat: `run_if` & `skip_if` decorators (#41116)
add ad3224cc61 Added support for additional sql alchemy session args
(#41048)
add cd69f8efc0 Added `output_processor` parameter to `BashProcessor`
(#40843)
add cc16f48171 fix(triggered-dag-runs): refactor how triggered dag run url
is replaced (#41259)
add d6bc1f69a3 Add button to toggle datasets on/off in dag graph (#41200)
add a7353d200e fix: return empty data instead of None when OpenLineage
on_start method is missing (#41268)
add 7c14f20a87 Disable most irrelevant "core" tests in database isolation
mode (#41266)
add c55438d9b2 Fix latest botocore tests conflicting dependencies (#41267)
add fdda4478e5 Fix check served logs logic (#41272)
add 133cc6174c Fix tests/operators/test_email.py for Database Isolation
Tests (#41274)
add 6229c1c98a Fix DateTimeOperator tests in Database Isolation Mode
(#41271)
new d61b5bb8b9 Update default branches for 2-10
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 (002a0753a2)
\
N -- N -- N refs/heads/v2-10-stable (d61b5bb8b9)
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/ISSUE_TEMPLATE/airflow_bug_report.yml | 1 +
.github/boring-cyborg.yml | 5 +
.github/workflows/static-checks-mypy-docs.yml | 73 +++--
.pre-commit-config.yaml | 4 +-
.rat-excludes | 3 +
Dockerfile | 2 +-
Dockerfile.ci | 11 +-
INTHEWILD.md | 1 +
README.md | 24 +-
RELEASE_NOTES.rst | 306 --------------------
airflow/__init__.py | 2 +-
.../api_connexion/endpoints/dag_stats_endpoint.py | 62 ++++
airflow/api_connexion/openapi/v1.yaml | 68 ++++-
.../{variable_schema.py => dag_stats_schema.py} | 29 +-
airflow/api_internal/endpoints/rpc_api_endpoint.py | 8 +
airflow/api_internal/internal_api_call.py | 5 +-
airflow/config_templates/config.yml | 11 +
airflow/dag_processing/processor.py | 318 +++++++++++----------
airflow/datasets/__init__.py | 2 +
airflow/decorators/__init__.py | 3 +
airflow/decorators/__init__.pyi | 23 +-
airflow/decorators/condition.py | 116 ++++++++
airflow/exceptions.py | 18 +-
airflow/jobs/local_task_job_runner.py | 8 +-
airflow/jobs/scheduler_job_runner.py | 1 +
airflow/models/abstractoperator.py | 6 +-
airflow/models/baseoperator.py | 6 +-
airflow/models/dag.py | 2 +-
airflow/models/expandinput.py | 2 +-
airflow/models/taskinstance.py | 1 +
airflow/models/taskinstancekey.py | 5 +
airflow/models/trigger.py | 4 +-
airflow/models/xcom_arg.py | 2 +-
airflow/operators/bash.py | 13 +-
airflow/operators/trigger_dagrun.py | 2 +-
airflow/providers/amazon/CHANGELOG.rst | 5 +-
.../amazon/aws/operators/redshift_cluster.py | 118 ++++----
airflow/providers/amazon/provider.yaml | 4 +-
airflow/providers/apache/drill/CHANGELOG.rst | 8 +
airflow/providers/apache/drill/__init__.py | 2 +-
airflow/providers/apache/drill/provider.yaml | 3 +-
airflow/providers/apache/druid/CHANGELOG.rst | 14 +
airflow/providers/apache/druid/__init__.py | 2 +-
airflow/providers/apache/druid/provider.yaml | 3 +-
.../apache/hdfs/.latest-doc-only-change.txt | 2 +-
.../apache/hive/.latest-doc-only-change.txt | 2 +-
.../apache/iceberg/.latest-doc-only-change.txt | 2 +-
airflow/providers/apache/impala/CHANGELOG.rst | 12 +
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/livy/.latest-doc-only-change.txt | 2 +-
.../apache/pig/.latest-doc-only-change.txt | 2 +-
airflow/providers/apache/pinot/CHANGELOG.rst | 12 +
airflow/providers/apache/pinot/__init__.py | 2 +-
airflow/providers/apache/pinot/provider.yaml | 3 +-
airflow/providers/apprise/CHANGELOG.rst | 12 +
airflow/providers/apprise/__init__.py | 2 +-
airflow/providers/apprise/provider.yaml | 3 +-
.../atlassian/jira/.latest-doc-only-change.txt | 2 +-
airflow/providers/celery/CHANGELOG.rst | 14 +
airflow/providers/celery/__init__.py | 2 +-
airflow/providers/celery/provider.yaml | 3 +-
airflow/providers/cncf/kubernetes/CHANGELOG.rst | 14 +
airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 18 +-
airflow/providers/cncf/kubernetes/operators/pod.py | 13 +-
airflow/providers/cncf/kubernetes/provider.yaml | 3 +-
airflow/providers/cncf/kubernetes/triggers/pod.py | 10 +-
.../providers/cohere/.latest-doc-only-change.txt | 2 +-
airflow/providers/common/compat/CHANGELOG.rst | 14 +
airflow/providers/common/io/CHANGELOG.rst | 21 ++
airflow/providers/common/io/__init__.py | 2 +-
airflow/providers/common/io/provider.yaml | 3 +-
airflow/providers/common/sql/CHANGELOG.rst | 12 +
airflow/providers/common/sql/__init__.py | 2 +-
airflow/providers/common/sql/provider.yaml | 3 +-
airflow/providers/databricks/CHANGELOG.rst | 28 ++
airflow/providers/databricks/__init__.py | 2 +-
airflow/providers/databricks/provider.yaml | 3 +-
.../dbt/cloud/.latest-doc-only-change.txt | 2 +-
.../providers/dingding/.latest-doc-only-change.txt | 2 +-
airflow/providers/docker/CHANGELOG.rst | 12 +
airflow/providers/docker/__init__.py | 2 +-
airflow/providers/docker/provider.yaml | 3 +-
airflow/providers/elasticsearch/CHANGELOG.rst | 14 +
airflow/providers/elasticsearch/__init__.py | 2 +-
airflow/providers/elasticsearch/provider.yaml | 3 +-
airflow/providers/exasol/CHANGELOG.rst | 14 +
airflow/providers/exasol/__init__.py | 2 +-
airflow/providers/exasol/provider.yaml | 3 +-
.../providers/facebook/.latest-doc-only-change.txt | 2 +-
airflow/providers/ftp/CHANGELOG.rst | 12 +
airflow/providers/ftp/__init__.py | 2 +-
airflow/providers/ftp/provider.yaml | 3 +-
.../providers/github/.latest-doc-only-change.txt | 2 +-
airflow/providers/google/CHANGELOG.rst | 2 +
airflow/providers/http/.latest-doc-only-change.txt | 2 +-
airflow/providers/jdbc/CHANGELOG.rst | 19 ++
airflow/providers/jdbc/__init__.py | 2 +-
airflow/providers/jdbc/provider.yaml | 3 +-
.../providers/jenkins/.latest-doc-only-change.txt | 2 +-
airflow/providers/microsoft/azure/CHANGELOG.rst | 17 ++
airflow/providers/microsoft/azure/__init__.py | 2 +-
airflow/providers/microsoft/azure/provider.yaml | 3 +-
airflow/providers/microsoft/mssql/CHANGELOG.rst | 17 ++
airflow/providers/microsoft/mssql/__init__.py | 2 +-
airflow/providers/microsoft/mssql/provider.yaml | 3 +-
.../microsoft/psrp/.latest-doc-only-change.txt | 2 +-
airflow/providers/mysql/CHANGELOG.rst | 12 +
airflow/providers/mysql/__init__.py | 2 +-
airflow/providers/mysql/provider.yaml | 3 +-
airflow/providers/odbc/CHANGELOG.rst | 14 +
airflow/providers/odbc/__init__.py | 2 +-
airflow/providers/odbc/provider.yaml | 3 +-
airflow/providers/openlineage/CHANGELOG.rst | 36 +++
airflow/providers/openlineage/__init__.py | 2 +-
airflow/providers/openlineage/extractors/base.py | 12 +-
airflow/providers/openlineage/plugins/listener.py | 9 +-
airflow/providers/openlineage/provider.yaml | 3 +-
airflow/providers/openlineage/utils/utils.py | 4 +-
airflow/providers/pgvector/CHANGELOG.rst | 12 +
airflow/providers/pgvector/__init__.py | 2 +-
airflow/providers/pgvector/provider.yaml | 3 +-
airflow/providers/postgres/CHANGELOG.rst | 14 +
airflow/providers/postgres/__init__.py | 2 +-
airflow/providers/postgres/provider.yaml | 3 +-
airflow/providers/qdrant/CHANGELOG.rst | 12 +
airflow/providers/qdrant/__init__.py | 2 +-
airflow/providers/qdrant/provider.yaml | 3 +-
.../providers/samba/.latest-doc-only-change.txt | 2 +-
airflow/providers/sftp/CHANGELOG.rst | 14 +
airflow/providers/sftp/__init__.py | 2 +-
airflow/providers/sftp/provider.yaml | 3 +-
airflow/providers/slack/CHANGELOG.rst | 19 ++
airflow/providers/slack/__init__.py | 2 +-
airflow/providers/slack/provider.yaml | 3 +-
airflow/providers/smtp/.latest-doc-only-change.txt | 2 +-
airflow/providers/snowflake/CHANGELOG.rst | 13 +
airflow/providers/snowflake/__init__.py | 2 +-
airflow/providers/snowflake/provider.yaml | 3 +-
airflow/providers/sqlite/CHANGELOG.rst | 12 +
airflow/providers/sqlite/__init__.py | 2 +-
airflow/providers/sqlite/provider.yaml | 3 +-
airflow/providers/ssh/CHANGELOG.rst | 14 +
airflow/providers/ssh/__init__.py | 2 +-
airflow/providers/ssh/provider.yaml | 3 +-
.../providers/tableau/.latest-doc-only-change.txt | 2 +-
airflow/providers/teradata/CHANGELOG.rst | 17 ++
airflow/providers/teradata/__init__.py | 2 +-
airflow/providers/teradata/provider.yaml | 3 +-
.../providers/yandex/.latest-doc-only-change.txt | 2 +-
airflow/providers/yandex/hooks/dataproc.py | 22 +-
airflow/providers/yandex/hooks/yandex.py | 10 +-
airflow/providers/yandex/hooks/yq.py | 5 +-
airflow/providers/yandex/operators/dataproc.py | 27 +-
airflow/providers/yandex/provider.yaml | 7 +-
airflow/providers/yandex/secrets/lockbox.py | 2 +-
airflow/providers/yandex/utils/credentials.py | 11 +-
airflow/providers/ydb/CHANGELOG.rst | 17 ++
airflow/providers/ydb/__init__.py | 2 +-
airflow/providers/ydb/provider.yaml | 3 +-
airflow/reproducible_build.yaml | 4 +-
airflow/serialization/enums.py | 2 +
airflow/serialization/pydantic/trigger.py | 62 ++++
airflow/serialization/serialized_objects.py | 29 +-
airflow/settings.py | 46 ++-
airflow/ti_deps/deps/task_not_running_dep.py | 2 +-
airflow/utils/log/file_task_handler.py | 18 +-
airflow/www/static/js/api/useTIHistory.ts | 46 ++-
.../www/static/js/components/TriggeredDagRuns.tsx | 10 +-
airflow/www/static/js/dag/details/gantt/Row.tsx | 27 +-
airflow/www/static/js/dag/details/gantt/index.tsx | 67 +++--
airflow/www/static/js/dag/details/graph/index.tsx | 135 +++++----
.../static/js/dag/details/task/AllTaskDuration.tsx | 1 +
.../static/js/dag/details/taskInstance/Details.tsx | 8 +-
.../dag/details/taskInstance/Logs/index.test.tsx | 38 +--
.../js/dag/details/taskInstance/TrySelector.tsx | 8 +-
airflow/www/static/js/types/api-generated.ts | 50 ++++
airflow/www/templates/airflow/dag.html | 2 +-
airflow/www/templates/appbuilder/dag_docs.html | 4 +-
airflow/www/views.py | 35 ---
chart/templates/check-values.yaml | 14 +-
dev/breeze/doc/09_release_management_tasks.rst | 12 +
dev/breeze/doc/images/output_ci-image_build.svg | 92 +++---
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
.../doc/images/output_ci_selective-check.svg | 24 +-
.../doc/images/output_ci_selective-check.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 118 ++++----
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
...elease-management_install-provider-packages.svg | 52 ++--
...elease-management_install-provider-packages.txt | 2 +-
...release-management_verify-provider-packages.svg | 44 +--
...release-management_verify-provider-packages.txt | 2 +-
dev/breeze/doc/images/output_sbom.svg | 20 +-
dev/breeze/doc/images/output_sbom.txt | 2 +-
.../output_sbom_export-dependency-information.svg | 134 +++++++++
.../output_sbom_export-dependency-information.txt | 1 +
.../output_setup_check-all-params-in-groups.svg | 32 ++-
.../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_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 98 +++----
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
dev/breeze/doc/images/output_testing_db-tests.txt | 2 +-
.../doc/images/output_testing_non-db-tests.txt | 2 +-
dev/breeze/doc/images/output_testing_tests.txt | 2 +-
.../src/airflow_breeze/commands/common_options.py | 8 +
.../src/airflow_breeze/commands/sbom_commands.py | 86 ++++++
.../commands/sbom_commands_config.py | 11 +
dev/breeze/src/airflow_breeze/global_constants.py | 2 +
.../prepare_providers/provider_documentation.py | 3 +-
dev/breeze/src/airflow_breeze/utils/cdxgen.py | 132 ++++++++-
.../cloud_base.py => dev/get_devel_deps.sh | 33 +--
docs/apache-airflow-providers-amazon/commits.rst | 6 +-
.../commits.rst | 20 +-
.../index.rst | 8 +-
.../commits.rst | 16 +-
.../index.rst | 8 +-
.../commits.rst | 14 +-
.../index.rst | 19 +-
.../commits.rst | 14 +-
.../index.rst | 8 +-
docs/apache-airflow-providers-apprise/commits.rst | 14 +-
docs/apache-airflow-providers-apprise/index.rst | 2 +-
docs/apache-airflow-providers-celery/commits.rst | 14 +
docs/apache-airflow-providers-celery/index.rst | 6 +-
.../commits.rst | 16 +-
.../index.rst | 2 +-
.../commits.rst | 20 +-
.../index.rst | 2 +-
.../apache-airflow-providers-common-io/commits.rst | 19 +-
docs/apache-airflow-providers-common-io/index.rst | 19 +-
.../commits.rst | 14 +-
docs/apache-airflow-providers-common-sql/index.rst | 6 +-
.../commits.rst | 19 +-
docs/apache-airflow-providers-databricks/index.rst | 6 +-
docs/apache-airflow-providers-docker/commits.rst | 14 +-
docs/apache-airflow-providers-docker/index.rst | 2 +-
.../commits.rst | 16 +-
.../index.rst | 8 +-
docs/apache-airflow-providers-exasol/commits.rst | 16 +-
docs/apache-airflow-providers-exasol/index.rst | 8 +-
docs/apache-airflow-providers-ftp/commits.rst | 14 +-
docs/apache-airflow-providers-ftp/index.rst | 19 +-
docs/apache-airflow-providers-google/commits.rst | 4 +-
docs/apache-airflow-providers-jdbc/commits.rst | 17 +-
docs/apache-airflow-providers-jdbc/index.rst | 8 +-
.../commits.rst | 15 +-
.../index.rst | 8 +-
.../commits.rst | 15 +-
.../index.rst | 8 +-
docs/apache-airflow-providers-mysql/commits.rst | 14 +-
docs/apache-airflow-providers-mysql/index.rst | 8 +-
docs/apache-airflow-providers-odbc/commits.rst | 16 +-
docs/apache-airflow-providers-odbc/index.rst | 8 +-
.../commits.rst | 30 +-
.../apache-airflow-providers-openlineage/index.rst | 6 +-
docs/apache-airflow-providers-pgvector/commits.rst | 14 +-
docs/apache-airflow-providers-pgvector/index.rst | 8 +-
docs/apache-airflow-providers-postgres/commits.rst | 16 +-
docs/apache-airflow-providers-postgres/index.rst | 8 +-
docs/apache-airflow-providers-qdrant/commits.rst | 14 +-
docs/apache-airflow-providers-qdrant/index.rst | 4 +-
docs/apache-airflow-providers-sftp/commits.rst | 16 +-
docs/apache-airflow-providers-sftp/index.rst | 21 +-
docs/apache-airflow-providers-slack/commits.rst | 17 +-
docs/apache-airflow-providers-slack/index.rst | 6 +-
.../apache-airflow-providers-snowflake/commits.rst | 15 +-
docs/apache-airflow-providers-snowflake/index.rst | 44 +--
docs/apache-airflow-providers-sqlite/commits.rst | 14 +-
docs/apache-airflow-providers-sqlite/index.rst | 8 +-
docs/apache-airflow-providers-ssh/commits.rst | 16 +-
docs/apache-airflow-providers-ssh/index.rst | 2 +-
docs/apache-airflow-providers-teradata/commits.rst | 15 +-
docs/apache-airflow-providers-teradata/index.rst | 8 +-
docs/apache-airflow-providers-ydb/commits.rst | 15 +-
docs/apache-airflow-providers-ydb/index.rst | 8 +-
docs/apache-airflow/howto/operator/bash.rst | 42 +++
.../installation/supported-versions.rst | 2 +-
docs/apache-airflow/tutorial/taskflow.rst | 54 ++++
docs/docker-stack/README.md | 10 +-
docs/docker-stack/changelog.rst | 19 +-
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../extending/add-apt-packages/Dockerfile | 2 +-
.../add-build-essential-extend/Dockerfile | 2 +-
.../extending/add-providers/Dockerfile | 2 +-
.../add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../extending/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docs/docker-stack/entrypoint.rst | 14 +-
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 22 +-
generated/README.md | 3 +
generated/devel_deps.txt | 105 +++++++
generated/provider_dependencies.json | 4 +-
hatch_build.py | 2 +-
helm_tests/other/test_redis.py | 28 +-
newsfragments/37948.feature.rst | 1 +
newsfragments/38891.significant.rst | 10 +
newsfragments/39336.significant.rst | 7 +
newsfragments/39823.bugfix.rst | 1 +
newsfragments/40145.significant.rst | 5 +
newsfragments/40379.improvement.rst | 1 +
newsfragments/40701.feature.rst | 1 +
newsfragments/40874.significant.rst | 1 +
newsfragments/41116.feature.rst | 1 +
pyproject.toml | 1 +
scripts/ci/pre_commit/supported_versions.py | 2 +-
scripts/docker/entrypoint_ci.sh | 7 +-
tests/always/test_example_dags.py | 12 +
.../endpoints/test_dag_stats_endpoint.py | 186 ++++++++++++
.../api_connexion/schemas/test_dag_stats_schema.py | 87 ++++++
tests/api_experimental/client/test_json_client.py | 2 +-
tests/api_experimental/client/test_local_client.py | 2 +-
.../common/experimental/test_pool.py | 2 +-
tests/api_experimental/common/test_delete_dag.py | 2 +-
tests/api_experimental/common/test_trigger_dag.py | 2 +-
.../endpoints/test_rpc_api_endpoint.py | 5 +-
tests/callbacks/test_callback_requests.py | 18 +-
tests/cli/commands/test_celery_command.py | 2 +-
tests/cli/commands/test_connection_command.py | 2 +-
tests/cli/commands/test_db_command.py | 2 +-
tests/cli/commands/test_jobs_command.py | 1 +
tests/cli/commands/test_kerberos_command.py | 2 +-
tests/cli/commands/test_kubernetes_command.py | 2 +-
tests/cli/commands/test_plugins_command.py | 2 +-
tests/cli/commands/test_pool_command.py | 2 +-
.../cli/commands/test_rotate_fernet_key_command.py | 2 +-
tests/cli/commands/test_scheduler_command.py | 2 +-
tests/cli/commands/test_task_command.py | 2 +-
tests/cli/commands/test_triggerer_command.py | 2 +-
tests/cli/commands/test_variable_command.py | 2 +-
tests/conftest.py | 38 +++
tests/core/test_configuration.py | 8 +-
tests/core/test_core.py | 2 +-
tests/core/test_sentry.py | 2 +
tests/core/test_sqlalchemy_config.py | 2 +-
tests/core/test_stats.py | 4 +-
tests/datasets/test_dataset.py | 2 +-
tests/decorators/test_condition.py | 123 ++++++++
tests/decorators/test_python.py | 87 +++---
tests/decorators/test_task_group.py | 2 +-
tests/executors/test_base_executor.py | 2 +
tests/executors/test_executor_loader.py | 2 +
tests/executors/test_local_executor.py | 2 +-
tests/jobs/test_scheduler_job.py | 44 ++-
tests/models/test_base.py | 2 +-
tests/models/test_baseoperator.py | 21 ++
tests/models/test_cleartasks.py | 2 +-
tests/models/test_dag.py | 2 +-
tests/models/test_dagcode.py | 2 +-
tests/models/test_dagrun.py | 2 +-
tests/models/test_dagwarning.py | 2 +-
tests/models/test_pool.py | 2 +-
tests/operators/test_bash.py | 11 +
tests/operators/test_datetime.py | 41 ++-
tests/operators/test_email.py | 41 ++-
tests/operators/test_python.py | 86 ++++--
tests/operators/test_trigger_dagrun.py | 14 +
tests/providers/airbyte/hooks/test_airbyte.py | 3 +-
.../alibaba/cloud/log/test_oss_task_handler.py | 4 +-
.../aws/auth_manager/cli/test_avp_commands.py | 5 +-
.../aws/auth_manager/cli/test_idc_commands.py | 5 +-
.../amazon/aws/auth_manager/views/test_auth.py | 5 +-
.../amazon/aws/deferrable/hooks/test_base_aws.py | 2 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 14 +-
.../amazon/aws/log/test_s3_task_handler.py | 17 +-
.../providers/amazon/aws/operators/test_appflow.py | 4 +-
.../providers/amazon/aws/operators/test_athena.py | 15 +-
.../amazon/aws/operators/test_datasync.py | 56 +++-
tests/providers/amazon/aws/operators/test_dms.py | 12 +-
.../amazon/aws/operators/test_emr_add_steps.py | 20 +-
.../aws/operators/test_emr_create_job_flow.py | 23 +-
tests/providers/amazon/aws/operators/test_glue.py | 4 +-
.../amazon/aws/operators/test_redshift_cluster.py | 25 +-
.../amazon/aws/operators/test_redshift_sql.py | 2 +-
.../amazon/aws/operators/test_sagemaker_base.py | 9 +-
tests/providers/amazon/aws/sensors/test_ecs.py | 15 +-
tests/providers/amazon/aws/sensors/test_s3.py | 27 +-
tests/providers/amazon/aws/transfers/test_base.py | 12 +-
.../amazon/aws/transfers/test_dynamodb_to_s3.py | 10 +-
.../amazon/aws/transfers/test_google_api_to_s3.py | 3 +-
.../amazon/aws/transfers/test_mongo_to_s3.py | 12 +-
tests/providers/apache/druid/hooks/test_druid.py | 3 +
.../providers/apache/druid/operators/test_druid.py | 7 +-
.../apache/kylin/operators/test_kylin_cube.py | 12 +-
tests/providers/apache/livy/operators/test_livy.py | 4 +-
.../apache/spark/decorators/test_pyspark.py | 3 +
.../apache/spark/operators/test_spark_jdbc.py | 6 +-
.../apache/spark/operators/test_spark_sql.py | 4 +-
.../apache/spark/operators/test_spark_submit.py | 19 +-
tests/providers/arangodb/sensors/test_arangodb.py | 3 +-
tests/providers/asana/hooks/test_asana.py | 2 +-
.../providers/asana/operators/test_asana_tasks.py | 3 +-
.../cncf/kubernetes/decorators/test_kubernetes.py | 8 +-
.../executors/test_kubernetes_executor.py | 2 +
.../cncf/kubernetes/operators/test_pod.py | 8 +-
.../providers/cncf/kubernetes/triggers/test_pod.py | 6 +-
.../cncf/kubernetes/utils/test_pod_manager.py | 8 +-
.../databricks/operators/test_databricks_copy.py | 2 +-
.../providers/google/cloud/links/test_translate.py | 20 +-
.../google/cloud/log/test_gcs_task_handler.py | 8 +-
.../google/cloud/operators/test_automl.py | 36 ++-
.../google/cloud/operators/test_bigquery.py | 16 +-
.../test_cloud_storage_transfer_service.py | 44 ++-
.../google/cloud/operators/test_compute.py | 12 +-
.../google/cloud/operators/test_dataprep.py | 13 +-
.../cloud/operators/test_kubernetes_engine.py | 6 +-
.../google/cloud/operators/test_mlengine.py | 48 +++-
.../google/cloud/operators/test_vertex_ai.py | 8 +-
.../common/auth_backend/test_google_openid.py | 1 +
.../operators/test_campaign_manager.py | 1 +
.../operators/test_display_video.py | 1 +
.../operators/test_search_ads.py | 1 +
.../providers/openlineage/extractors/test_base.py | 44 ++-
tests/providers/yandex/hooks/test_dataproc.py | 16 +-
tests/providers/yandex/hooks/test_yandex.py | 2 +
tests/providers/yandex/hooks/test_yq.py | 4 +
tests/providers/yandex/links/test_yq.py | 4 +
tests/providers/yandex/operators/test_dataproc.py | 4 +
tests/providers/yandex/operators/test_yq.py | 3 +
tests/providers/yandex/secrets/test_lockbox.py | 3 +
tests/providers/yandex/utils/test_user_agent.py | 4 +
tests/sensors/test_python.py | 2 +-
tests/serialization/test_pydantic_models.py | 6 +-
tests/serialization/test_serialized_objects.py | 23 +-
.../providers/amazon/aws/example_redshift.py | 4 +-
.../system/providers/yandex/example_yandexcloud.py | 19 +-
tests/task/task_runner/test_base_task_runner.py | 8 +-
.../deps/test_dag_ti_slots_available_dep.py | 2 +-
tests/ti_deps/deps/test_dag_unpaused_dep.py | 2 +-
tests/ti_deps/deps/test_dagrun_exists_dep.py | 2 +-
tests/ti_deps/deps/test_dagrun_id_dep.py | 2 +-
.../ti_deps/deps/test_mapped_task_upstream_dep.py | 2 +-
tests/ti_deps/deps/test_not_in_retry_period_dep.py | 2 +-
.../deps/test_not_previously_skipped_dep.py | 2 +-
.../ti_deps/deps/test_pool_slots_available_dep.py | 2 +-
tests/ti_deps/deps/test_prev_dagrun_dep.py | 2 +-
tests/ti_deps/deps/test_ready_to_reschedule_dep.py | 2 +-
tests/ti_deps/deps/test_runnable_exec_date_dep.py | 2 +-
tests/ti_deps/deps/test_task_concurrency.py | 2 +-
tests/ti_deps/deps/test_task_not_running_dep.py | 2 +-
tests/ti_deps/deps/test_trigger_rule_dep.py | 2 +-
tests/ti_deps/deps/test_valid_state_dep.py | 2 +-
tests/utils/log/test_colored_log.py | 2 +-
tests/utils/log/test_log_reader.py | 2 +-
tests/utils/log/test_task_context_logger.py | 7 +
tests/utils/test_cli_util.py | 5 +-
tests/utils/test_db.py | 2 +-
tests/utils/test_db_cleanup.py | 2 +-
tests/utils/test_dot_renderer.py | 2 +-
tests/utils/test_email.py | 2 +
tests/utils/test_helpers.py | 2 +
tests/utils/test_log_handlers.py | 48 +---
tests/utils/test_process_utils.py | 4 +
tests/utils/test_retries.py | 2 +
tests/utils/test_session.py | 2 +-
tests/utils/test_sqlalchemy.py | 2 +-
tests/utils/test_state.py | 2 +-
tests/utils/test_types.py | 2 +-
tests/utils/test_usage_data_collection.py | 1 +
tests/www/views/test_views_ti_history.py | 44 ---
469 files changed, 4766 insertions(+), 1874 deletions(-)
create mode 100644 airflow/api_connexion/endpoints/dag_stats_endpoint.py
copy airflow/api_connexion/schemas/{variable_schema.py => dag_stats_schema.py}
(58%)
create mode 100644 airflow/decorators/condition.py
create mode 100644 airflow/serialization/pydantic/trigger.py
create mode 100644
dev/breeze/doc/images/output_sbom_export-dependency-information.svg
create mode 100644
dev/breeze/doc/images/output_sbom_export-dependency-information.txt
copy airflow/providers/google/cloud/operators/cloud_base.py =>
dev/get_devel_deps.sh (55%)
mode change 100644 => 100755
create mode 100644 generated/devel_deps.txt
create mode 100644 newsfragments/37948.feature.rst
create mode 100644 newsfragments/38891.significant.rst
create mode 100644 newsfragments/39336.significant.rst
create mode 100644 newsfragments/39823.bugfix.rst
create mode 100644 newsfragments/40145.significant.rst
create mode 100644 newsfragments/40379.improvement.rst
create mode 100644 newsfragments/40701.feature.rst
create mode 100644 newsfragments/40874.significant.rst
create mode 100644 newsfragments/41116.feature.rst
create mode 100644 tests/api_connexion/endpoints/test_dag_stats_endpoint.py
create mode 100644 tests/api_connexion/schemas/test_dag_stats_schema.py
create mode 100644 tests/decorators/test_condition.py
delete mode 100644 tests/www/views/test_views_ti_history.py