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
from 91f8265b68 Sync v2-10-stable with v2-10-test to release python client
v2.10.0 (#41610)
add 6f2121a32f Fix try selector refresh (#41483) (#41503)
add 29270afefa Remove debian bullseye support (#41568) (#41569)
add 0d6d1e1316 Field Deletion Warning when editing Connections (#41144)
(#41504)
add 9a32f7ddde [Backport] Deprecate implicit default DAG schedule (#41469)
add 29f61a0d03 Fix UI rendering when XCom is INT, FLOAT, BOOL or NULL
(#41516) (#41605)
add 36ea9e7fb0 Fix InletEventsAccessors type stub (#41572) (#41607)
add 8ffe7d67f8 Set better logging level for path wrapper (#41615) (#41668)
add 400dddca90 Change confirmation text (#41650) (#41679)
add ceb605191b Adding url sanitisation for extra links (#41665) (#41680)
add 03e01e76d2 Splitting syspath preparation into stages (#41672) (#41694)
add 9deba7b9a2 fix log for notifier(instance) without __name__ (#41591)
(#41699)
add e8f981131b Adding rel property to hyperlinks in logs (#41696) (#41783)
add da1820b1f7 Bump micromatch from 4.0.5 to 4.0.8 in /airflow/www (#41755)
add af3566f907 chore(docs): add an example for auth with keycloak (#41687)
(#41791)
add 991906c2d0 Remove deprecation warning for cgitb in Plugins Manager
(#41732) (#41793)
add 4a346a07ae Don't Fail LocalTaskJob on heartbeat (#41704) (#41810)
add 556552940c Keep FAB compatibility for versions before 1.3.0 in 2.10
(#41549) (#41809)
add f986fdb6b5 Pin universal-pathlib to 0.2.2 as 0.2.3 generates static
code check errors (#41715) (#41820)
add 1bcf94bdc3 Fix: DAGs are not marked as stale if the dags folder change
(#41433) (#41829)
add 56990073a5 Set end_date and duration for triggers completed with
end_from_trigger as True. (#41834)
add bf2efaa646 logout link in no roles error page fix (#41813) (#41845)
add 6fb6fdb80a Handle Example dags case when checking for missing files
(#41856) (#41874)
add a6dfae313f Bump webpack from 5.76.0 to 5.94.0 in /airflow/www (#41864)
(#41879)
add 09ec261656 Adding tojson filter to example_inlet_event_extra example
dag (#41873) (#41890)
add fa03a32120 Skip test_scan_stale_dags_when_dag_folder_change in DB
isolation mode (#41893) (#41895)
add aafad2aeee Make Scarf usage reporting in major+minor versions and
counters in buckets (#41900)
add d4c2dd0f41 Update release command for Airflow 2 (#41907)
add d17797896c Upgrade UV to 0.4.1 (#41925) (#41926)
add 6d8e88c0cd Add backcompat check for executors that don't inherit
BaseExecutor (#41906) (#41927)
add 4cd17c0d60 Update version to 2.10.1.
add 3273171c70 Update RELEASE_NOTES.rst
add 3304c2a548 Protect against None components of universal pathlib xcom
backend (#41921) (#41938)
add 854173176f Lower down universal-pathlib minimum to 0.2.2 (#41939)
(#41943)
No new revisions were added by this update.
Summary of changes:
.github/workflows/basic-tests.yml | 3 +-
.github/workflows/ci-image-build.yml | 2 +-
.github/workflows/prod-image-build.yml | 2 +-
.github/workflows/prod-image-extra-checks.yml | 21 -
.github/workflows/push-image-cache.yml | 2 +-
Dockerfile | 21 +-
Dockerfile.ci | 23 +-
README.md | 36 +-
RELEASE_NOTES.rst | 42 ++
airflow/__init__.py | 2 +-
airflow/api_connexion/openapi/v1.yaml | 3 +-
airflow/dag_processing/manager.py | 15 +-
.../example_dags/example_dynamic_task_mapping.py | 2 +-
...amic_task_mapping_with_no_taskflow_operators.py | 1 +
airflow/example_dags/example_inlet_event_extra.py | 2 +-
airflow/example_dags/example_setup_teardown.py | 1 +
.../example_setup_teardown_taskflow.py | 1 +
.../example_short_circuit_decorator.py | 2 +-
.../example_dags/example_short_circuit_operator.py | 1 +
airflow/example_dags/example_skip_dag.py | 2 +
airflow/example_dags/example_task_group.py | 1 +
.../example_dags/example_task_group_decorator.py | 1 +
airflow/io/path.py | 4 +-
airflow/jobs/local_task_job_runner.py | 11 +-
airflow/jobs/scheduler_job_runner.py | 3 +
airflow/models/dag.py | 38 +-
airflow/models/taskinstance.py | 15 +-
airflow/plugins_manager.py | 3 +-
airflow/providers/common/io/xcom/backend.py | 7 +-
airflow/reproducible_build.yaml | 4 +-
airflow/serialization/serialized_objects.py | 2 +-
airflow/settings.py | 17 +-
airflow/triggers/base.py | 2 +-
airflow/utils/context.pyi | 2 +-
airflow/utils/usage_data_collection.py | 18 +-
airflow/www/package.json | 2 +-
.../www/static/js/components/RenderedJsonField.tsx | 21 +-
airflow/www/static/js/components/utils.test.ts | 84 ++++
.../utils.ts} | 29 +-
airflow/www/static/js/connection_form.js | 15 +-
.../js/dag/details/taskInstance/ExtraLinks.tsx | 10 +-
.../dag/details/taskInstance/Logs/utils.test.tsx | 4 +-
.../js/dag/details/taskInstance/Logs/utils.ts | 2 +-
.../js/dag/details/taskInstance/TrySelector.tsx | 92 ++--
.../js/dag/details/taskInstance/Xcom/XcomEntry.tsx | 9 +-
airflow/www/static/js/types/api-generated.ts | 2 +-
airflow/www/templates/airflow/confirm.html | 2 +-
.../templates/airflow/no_roles_permissions.html | 7 +-
airflow/www/views.py | 7 +-
airflow/www/yarn.lock | 459 ++++++++++----------
dev/README_RELEASE_AIRFLOW.md | 49 +--
dev/breeze/doc/ci/05_workflows.md | 1 -
dev/breeze/doc/ci/06_diagrams.md | 1 -
dev/breeze/doc/images/output_ci-image_build.svg | 116 +++--
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 146 +++----
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
.../output_release-management_start-rc-process.svg | 26 +-
.../output_release-management_start-rc-process.txt | 2 +-
.../commands/release_candidate_command.py | 10 +-
.../commands/release_management_commands_config.py | 1 +
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../auth-manager/webserver-authentication.rst | 91 ++++
docs/apache-airflow/howto/docker-compose/index.rst | 2 +-
docs/apache-airflow/installation/dependencies.rst | 20 -
docs/apache-airflow/installation/prerequisites.rst | 3 +-
.../installation/supported-versions.rst | 2 +-
docs/docker-stack/README.md | 10 +-
docs/docker-stack/build.rst | 21 -
docs/docker-stack/changelog.rst | 4 +
.../docker-examples/customizing/debian-bullseye.sh | 37 --
.../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 | 26 +-
hatch_build.py | 1 -
kubernetes_tests/test_kubernetes_pod_operator.py | 2 +-
scripts/ci/pre_commit/supported_versions.py | 2 +-
scripts/docker/install_os_dependencies.sh | 19 +-
tests/api_connexion/endpoints/test_dag_endpoint.py | 37 +-
.../endpoints/test_extra_link_endpoint.py | 2 +-
tests/api_connexion/endpoints/test_log_endpoint.py | 2 +-
.../api_connexion/endpoints/test_task_endpoint.py | 4 +-
tests/api_connexion/schemas/test_dag_schema.py | 3 +-
tests/api_experimental/common/test_delete_dag.py | 6 +-
tests/api_experimental/common/test_trigger_dag.py | 16 +-
tests/callbacks/test_callback_requests.py | 5 +-
tests/conftest.py | 8 +
tests/core/test_settings.py | 33 +-
tests/dag_processing/test_job_runner.py | 84 +++-
tests/dags/test_cli_triggered_dags.py | 4 +-
tests/dags/test_dagrun_fast_follow.py | 2 +-
tests/dags/test_default_impersonation.py | 2 +-
tests/dags/test_double_trigger.py | 2 +-
.../test_external_task_sensor_check_existense.py | 12 +-
tests/dags/test_heartbeat_failed_fast.py | 2 +-
tests/dags/test_impersonation.py | 2 +-
tests/dags/test_impersonation_subdag.py | 4 +-
tests/dags/test_issue_1225.py | 42 +-
tests/dags/test_latest_runs.py | 2 +-
tests/dags/test_mapped_classic.py | 2 +-
tests/dags/test_mapped_taskflow.py | 6 +-
tests/dags/test_mark_state.py | 2 +-
tests/dags/test_no_impersonation.py | 2 +-
tests/dags/test_on_failure_callback.py | 2 +-
tests/dags/test_on_kill.py | 2 +-
tests/dags/test_parsing_context.py | 2 +-
tests/dags/test_prev_dagrun_dep.py | 6 +-
tests/dags/test_scheduler_dags.py | 12 +-
tests/dags/test_task_view_type_check.py | 2 +-
tests/dags/test_zip.zip | Bin 2285 -> 1999 bytes
tests/dags_corrupted/test_impersonation_custom.py | 4 +-
tests/dags_with_system_exit/a_system_exit.py | 4 +-
.../dags_with_system_exit/b_test_scheduler_dags.py | 4 +-
tests/dags_with_system_exit/c_system_exit.py | 4 +-
tests/decorators/test_mapped.py | 2 +-
tests/decorators/test_python.py | 4 +-
tests/decorators/test_task_group.py | 16 +-
.../integration/executors/test_celery_executor.py | 10 +-
.../redis/operators/test_redis_publish.py | 2 +-
tests/jobs/test_scheduler_job.py | 1 +
tests/jobs/test_triggerer_job.py | 2 +-
tests/models/test_baseoperator.py | 48 +-
tests/models/test_cleartasks.py | 1 +
tests/models/test_dag.py | 482 ++++++++++++---------
tests/models/test_dagbag.py | 54 ++-
tests/models/test_dagrun.py | 82 +++-
tests/models/test_mappedoperator.py | 16 +-
tests/models/test_serialized_dag.py | 6 +-
tests/models/test_taskinstance.py | 35 +-
tests/models/test_trigger.py | 10 +-
tests/operators/test_generic_transfer.py | 2 +-
tests/operators/test_subdag_operator.py | 40 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 2 +-
.../amazon/aws/log/test_s3_task_handler.py | 2 +-
.../amazon/aws/operators/test_cloud_formation.py | 4 +-
.../amazon/aws/operators/test_emr_add_steps.py | 13 +-
.../aws/operators/test_emr_create_job_flow.py | 1 +
.../aws/operators/test_emr_modify_cluster.py | 2 +-
tests/providers/amazon/aws/operators/test_rds.py | 72 ++-
.../amazon/aws/operators/test_sagemaker_base.py | 2 +-
tests/providers/amazon/aws/sensors/test_rds.py | 24 +-
tests/providers/amazon/aws/sensors/test_s3.py | 4 +-
tests/providers/amazon/aws/transfers/test_base.py | 2 +-
.../amazon/aws/transfers/test_dynamodb_to_s3.py | 2 +-
.../amazon/aws/transfers/test_hive_to_dynamodb.py | 2 +-
.../amazon/aws/transfers/test_http_to_s3.py | 2 +-
.../amazon/aws/transfers/test_local_to_s3.py | 2 +-
.../amazon/aws/transfers/test_mongo_to_s3.py | 2 +-
.../apache/druid/transfers/test_hive_to_druid.py | 2 +-
.../flink/operators/test_flink_kubernetes.py | 2 +-
.../apache/flink/sensors/test_flink_kubernetes.py | 2 +-
tests/providers/apache/hive/__init__.py | 2 +-
tests/providers/apache/hive/hooks/test_hive.py | 2 +-
.../hive/sensors/test_named_hive_partition.py | 2 +-
.../apache/hive/transfers/test_vertica_to_hive.py | 2 +-
.../apache/kylin/operators/test_kylin_cube.py | 2 +-
tests/providers/apache/livy/operators/test_livy.py | 2 +-
tests/providers/apache/livy/sensors/test_livy.py | 2 +-
.../apache/spark/operators/test_spark_jdbc.py | 2 +-
.../apache/spark/operators/test_spark_sql.py | 2 +-
.../apache/spark/operators/test_spark_submit.py | 2 +-
tests/providers/arangodb/sensors/test_arangodb.py | 2 +-
.../providers/asana/operators/test_asana_tasks.py | 3 +-
.../celery/executors/test_celery_executor.py | 6 +-
.../cncf/kubernetes/operators/test_job.py | 4 +-
.../cncf/kubernetes/operators/test_pod.py | 7 +-
.../cncf/kubernetes/operators/test_resource.py | 2 +-
.../kubernetes/operators/test_spark_kubernetes.py | 6 +-
.../kubernetes/sensors/test_spark_kubernetes.py | 2 +-
tests/providers/common/sql/operators/test_sql.py | 13 +-
tests/providers/common/sql/sensors/test_sql.py | 2 +-
.../databricks/operators/test_databricks.py | 8 +-
.../operators/test_databricks_workflow.py | 6 +-
.../sensors/test_databricks_partition.py | 2 +-
.../databricks/sensors/test_databricks_sql.py | 2 +-
tests/providers/dbt/cloud/operators/test_dbt.py | 6 +-
.../providers/dingding/operators/test_dingding.py | 2 +-
.../discord/operators/test_discord_webhook.py | 2 +-
tests/providers/docker/decorators/test_docker.py | 2 +-
tests/providers/fab/auth_manager/test_security.py | 4 +-
tests/providers/ftp/operators/test_ftp.py | 10 +-
tests/providers/github/operators/test_github.py | 2 +-
tests/providers/github/sensors/test_github.py | 2 +-
.../google/cloud/operators/test_cloud_build.py | 2 +-
.../google/cloud/operators/test_dataproc.py | 6 +-
.../google/cloud/operators/test_mlengine.py | 2 +-
.../google/cloud/transfers/test_gcs_to_bigquery.py | 2 +-
.../google/cloud/transfers/test_local_to_gcs.py | 2 +-
tests/providers/http/sensors/test_http.py | 2 +-
.../microsoft/azure/operators/test_data_factory.py | 2 +-
.../azure/operators/test_wasb_delete_blob.py | 2 +-
.../providers/microsoft/azure/sensors/test_wasb.py | 8 +-
.../azure/transfers/test_local_to_wasb.py | 2 +-
tests/providers/mysql/hooks/test_mysql.py | 2 +-
tests/providers/mysql/operators/test_mysql.py | 9 +-
.../mysql/transfers/test_presto_to_mysql.py | 2 +-
.../mysql/transfers/test_trino_to_mysql.py | 2 +-
.../mysql/transfers/test_vertica_to_mysql.py | 2 +-
.../providers/openlineage/plugins/test_adapter.py | 11 +-
.../providers/openlineage/plugins/test_listener.py | 3 +
.../openlineage/utils/test_selective_enable.py | 4 +-
tests/providers/openlineage/utils/test_utils.py | 44 +-
.../providers/opsgenie/operators/test_opsgenie.py | 6 +-
.../providers/pinecone/operators/test_pinecone.py | 2 +-
.../providers/postgres/operators/test_postgres.py | 4 +-
.../providers/redis/log/test_redis_task_handler.py | 2 +-
.../redis/operators/test_redis_publish.py | 2 +-
tests/providers/redis/sensors/test_redis_key.py | 2 +-
.../providers/redis/sensors/test_redis_pub_sub.py | 2 +-
tests/providers/sftp/operators/test_sftp.py | 12 +-
.../slack/transfers/test_sql_to_slack_webhook.py | 2 +-
.../snowflake/operators/test_snowflake.py | 4 +-
tests/providers/sqlite/operators/test_sqlite.py | 2 +-
tests/sensors/test_bash.py | 2 +-
tests/sensors/test_date_time.py | 2 +-
tests/sensors/test_external_task_sensor.py | 10 +-
tests/sensors/test_filesystem.py | 3 +-
tests/sensors/test_time_delta.py | 4 +-
tests/sensors/test_time_sensor.py | 13 +-
tests/sensors/test_weekday_sensor.py | 4 +-
tests/serialization/test_dag_serialization.py | 97 +++--
.../providers/alibaba/example_adb_spark_batch.py | 1 +
.../providers/alibaba/example_adb_spark_sql.py | 1 +
.../system/providers/alibaba/example_oss_bucket.py | 1 +
.../system/providers/alibaba/example_oss_object.py | 1 +
.../apache/kafka/example_dag_event_listener.py | 1 +
.../databricks/example_databricks_workflow.py | 2 +-
tests/system/providers/github/example_github.py | 1 +
.../cloud/cloud_sql/example_cloud_sql_query.py | 1 +
.../cloud/cloud_sql/example_cloud_sql_query_ssl.py | 1 +
.../cloud/compute/example_compute_ssh_os_login.py | 2 +-
.../cloud/compute/example_compute_ssh_parallel.py | 2 +-
.../google/cloud/dataflow/example_dataflow_sql.py | 1 +
.../google/cloud/datafusion/example_datafusion.py | 1 +
.../example_cloud_storage_transfer_service_aws.py | 1 +
tests/system/providers/http/example_http.py | 1 +
.../providers/influxdb/example_influxdb_query.py | 1 +
.../azure/example_azure_batch_operator.py | 1 +
.../microsoft/azure/example_azure_cosmosdb.py | 1 +
.../microsoft/azure/example_wasb_sensors.py | 1 +
tests/system/providers/mysql/example_mysql.py | 1 +
tests/system/providers/neo4j/example_neo4j.py | 1 +
.../opsgenie/example_opsgenie_notifier.py | 1 +
.../providers/redis/example_redis_publish.py | 1 +
.../system/providers/telegram/example_telegram.py | 2 +-
tests/template/test_templater.py | 2 +-
tests/ti_deps/deps/test_dagrun_exists_dep.py | 2 +-
tests/ti_deps/deps/test_prev_dagrun_dep.py | 9 +-
tests/ti_deps/deps/test_task_concurrency.py | 2 +-
tests/triggers/test_external_task.py | 4 +-
tests/utils/test_dag_cycle.py | 18 +-
tests/utils/test_dot_renderer.py | 6 +-
tests/utils/test_edgemodifier.py | 8 +-
tests/utils/test_log_handlers.py | 8 +-
tests/utils/test_sqlalchemy.py | 7 +-
tests/utils/test_state.py | 4 +-
tests/utils/test_task_group.py | 103 +++--
tests/utils/test_types.py | 4 +-
tests/utils/test_usage_data_collection.py | 43 +-
tests/www/views/test_views.py | 10 +-
tests/www/views/test_views_acl.py | 2 +-
tests/www/views/test_views_decorators.py | 2 +-
tests/www/views/test_views_extra_links.py | 2 +-
tests/www/views/test_views_home.py | 12 +-
tests/www/views/test_views_rendered.py | 1 +
tests/www/views/test_views_tasks.py | 8 +-
277 files changed, 2174 insertions(+), 1487 deletions(-)
create mode 100644 airflow/www/static/js/components/utils.test.ts
copy airflow/www/static/js/{utils/URLSearchParamWrapper.ts =>
components/utils.ts} (60%)
delete mode 100755
docs/docker-stack/docker-examples/customizing/debian-bullseye.sh