This is an automated email from the ASF dual-hosted git repository. utkarsharma pushed a change to branch v2-9-stable in repository https://gitbox.apache.org/repos/asf/airflow.git
from 2d53c1089f Update RELEASE_NOTES.rst add 3646de384e Add multi-team diagrams (#38861) add 0b1502a27d Fix `sql_alchemy_engine_args` config example (#38971) add 4518856395 Update testing_packages.rst (#38996) add e4a4e2daf5 Fix stacklevel for TaskContextLogger (#39142) add 0c2d53e14b fix(io.path): add missing conn_id to string representation of ObjectStoragePath (#39313) add de98856211 Add support for OrbStack in breeze (#38725) add 6d183e7d1a Do not provide deprecated `execution_date` in `@apply_lineage` (#39327) add 2e612ba99c Remove unused index `idx_last_scheduling_decision` on `dag_run` table (#39275) add c4624fd336 docs: fix environment variable names when section name has dot in it (#39312) add 35623740d2 Fix TaskHandlerWithCustomFormatter now adds prefix only once (#38502) add dff4a1283c Add whitespace after inline literal in docs (#39401) add ea3e24a00b Fix static file caching is disabled in Airflow Webserver. (#39345) add 9b259f627f Fix HTTP 500 Internal Server Error if DAG is triggered with bad params (#39409) add c7606afa73 Fix typo sensitive masking words in docs (#39415) add 1bd3ad1f05 Updating S3LogLink with an invalid bucket link (#39424) add a74c52d7bb Fix custom actions in security manager `has_access` (#39421) add 2d88ccab1a Refactor `SafeDogStatsdLogger` to use `get_validator` to enable pattern matching (#39370) add c2f93bdefd Update note about restarting triggerer proccess (#39436) add b8b845a16c Resolve SA warnings in migrations scripts (#39418) add 81169e7cea Use non-dev version for FAB Provider (#39452) add 9a4196c130 Update docker-compose command (#39504) add faddcc273b Adding note for provider dependencies (#39512) add 0920ae90ea Add Cache-Control "no-store" to all dynamically generated content (#39550) add fe57f83151 Update best-practices.rst: fix Connection.get -> Connection. get_connection_from_secrets (#39560) add 5baa8841fd Change sorting order of parallel test types (#39579) add 39abb6b830 Fix typo in Auth Manager docs (#39598) add 03b9d1eae9 Docs: Update tracking-user-activity.rst (#39611) add 4310789b91 fix nit in pg set-up doc (#39628) add a85df2551f Remove mysql/postgres from extras before determining the installation_command_flags (#39610) add d59ae480da Doc fix: Remove misplaced backquotes in ``faq.rst`` (#39661) add 9db34afdc2 Fix #35946: Visible DAG RUN doesn't point to the same dag run id (#38365) add 3232a1849d Change dataset URI validation to raise warning instead of error in Airflow 2.9 (#39670) add c49e2209a5 Update plugins.rst examples to use pyproject.toml over setup.py (#39665) add 6dd44dd002 Reraise exception from strict dataset URI checks (#39719) add aad65edd03 More typing in TimeSensor and TimeSensorAsync (#39696) add f0785b8b29 Better typing for BaseOperator `defer` (#39742) add bf89bede29 Fix example_branch_operator failing in python 3.12 (#39783) add f85cc3b24e Limit concurrent downloads by UV (#39810) add c9881e533c Remove 'legacy' definition for `CronDataIntervalTimetable` (#39780) add de3874de25 Add max_consecutive_failed_dag_runs in API spec (#39830) add 46e4fbab9d Also limit concurrent uv downloads when building (#39852) add 4fe47810c1 Change type definition for `provider_info_cache` decorator (#39750) add a4a6d7e5dc Remove DAG Run Add option from FAB view (#39881) add d638c6bb66 Use SKIP LOCKED instead of NOWAIT in mini scheduler (#39745) add 68556a7f50 Improve visibility of links / variables / other configs in Configuration Reference (#39916) add 9f06c3073f Fix Mark Instance state buttons stay disabled if user lacks permission (#37451). (#38732) add 7cb2c0f233 Add the existing_nullable to the downgrade side of the migration (#39374) add d14f2690cf Fix alembic autogeneration and rename mismatching constraints (#39032) add c1dd584f5c Activate RUF006 rule to detect dangling asyncio tasks (#38947) add 090ff902c3 Bump `ruff` to `0.4.3` (#39438) add 2826718224 Update uv to 0.1.41 (#39476) add 8790af4fcb Update uv to 0.42 (#39561) add 3437e4464d Provide extra tip on labeling DynamicTaskMapping (#39977) add dac25fc699 Remove colon from notes header to make headlines in UI consistent (#40001) add 481fb8eb58 Warn on mini scheduler failures instead of debug (#39760) add 6ea2c434e5 Fix bug that makes `AirflowSecurityManagerV2` leave transactions in the `idle in transaction` state (#39935) add 079dfb3f73 Update uv and build dependencies. (#39808) add c4c5c7e9d6 add lost space to breeze help (#39458) add 2ea48362ee Increase volume size for ARM instance (#39472) add 8f7d891394 Add hatch_build.py to k8s test venv cache calculation (#39473) add 894202ce16 Fix inconsistency of cache-directive vs. docker-cache (#38580) add 551b550325 Replace to broad exceptions into the dev (#38489) add bfa6811c4b Add "use self-hosted runners" to CI setup (#38779) add b2efa5e92c Clean up Breeze output for Docker context (#38857) add f76b3cc0a1 Fix mocking in kerberos integration test (#40042) add 68671ebafe Upgrade to FAB 4.5.0 (#39851) add 911740a037 Limit yandex provider to avoid mypy errors (#39990) add e7e54a21e8 Update version to 2.9.2 add 688a7ac5c3 Update RELEASE_NOTES.rst add f56f134426 Fix Apprise Mypy checks added in 1.8.0 (#39580) No new revisions were added by this update. Summary of changes: .github/workflows/build-images.yml | 6 +- .github/workflows/ci.yml | 12 +- .github/workflows/k8s-tests.yml | 2 +- .pre-commit-config.yaml | 4 +- Dockerfile | 24 +- Dockerfile.ci | 26 +- PROVIDERS.rst | 11 + README.md | 24 +- RELEASE_NOTES.rst | 61 ++++ airflow/__init__.py | 25 +- .../api_connexion/endpoints/dag_run_endpoint.py | 3 +- airflow/api_connexion/openapi/v1.yaml | 10 +- airflow/cli/cli_config.py | 10 +- airflow/cli/commands/db_command.py | 3 +- airflow/config_templates/config.yml | 390 ++++++++++++--------- airflow/datasets/__init__.py | 15 +- airflow/example_dags/example_branch_operator.py | 4 +- airflow/io/path.py | 6 + airflow/lineage/__init__.py | 8 +- airflow/metrics/datadog_logger.py | 16 +- airflow/migrations/env.py | 3 + .../0093_2_2_0_taskinstance_keyed_to_dagrun.py | 5 +- .../0102_2_3_0_switch_xcom_table_to_use_run_id.py | 18 +- ...3_0_migrate_rtif_to_use_run_id_and_map_index.py | 2 +- .../0105_2_3_0_add_map_index_to_taskfail.py | 2 +- ..._2_9_2_remove_idx_last_scheduling_decision_.py} | 30 +- ...nconsistency_between_ORM_and_migration_files.py | 297 ++++++++++++++++ airflow/models/baseoperator.py | 3 +- airflow/models/dagrun.py | 3 +- airflow/models/taskinstance.py | 11 +- airflow/providers/apprise/hooks/apprise.py | 7 +- airflow/providers/apprise/provider.yaml | 2 +- .../fab/auth_manager/security_manager/override.py | 20 +- airflow/providers/fab/provider.yaml | 2 +- airflow/providers/yandex/provider.yaml | 9 +- airflow/providers_manager.py | 26 +- airflow/reproducible_build.yaml | 4 +- airflow/sensors/date_time.py | 6 +- airflow/sensors/time_delta.py | 6 +- airflow/sensors/time_sensor.py | 12 +- airflow/utils/db.py | 14 +- airflow/utils/log/task_context_logger.py | 2 +- .../log/task_handler_with_custom_formatter.py | 3 +- airflow/www/app.py | 6 + airflow/www/extensions/init_security.py | 9 + airflow/www/security_manager.py | 12 +- airflow/www/static/js/dag/details/Header.tsx | 4 +- .../www/static/js/dag/details/NotesAccordion.tsx | 2 +- .../taskInstance/taskActions/ClearInstance.tsx | 5 +- .../taskInstance/taskActions/MarkInstanceAs.tsx | 5 +- airflow/www/static/js/types/api-generated.ts | 6 + airflow/www/static/js/utils/index.test.ts | 4 +- airflow/www/static/js/utils/index.ts | 2 +- airflow/www/templates/airflow/grid.html | 1 + airflow/www/views.py | 7 +- contributing-docs/testing/testing_packages.rst | 41 +-- dev/breeze/doc/ci/04_selective_checks.md | 70 ++-- .../airflow_breeze/commands/developer_commands.py | 2 +- .../commands/release_management_commands.py | 7 +- .../airflow_breeze/commands/testing_commands.py | 4 +- dev/breeze/src/airflow_breeze/global_constants.py | 2 +- .../airflow_breeze/utils/docker_command_utils.py | 12 +- .../src/airflow_breeze/utils/docs_publisher.py | 8 +- .../src/airflow_breeze/utils/kubernetes_utils.py | 33 +- dev/breeze/src/airflow_breeze/utils/packages.py | 15 +- .../src/airflow_breeze/utils/selective_checks.py | 34 +- dev/breeze/tests/test_docker_command_utils.py | 10 +- dev/breeze/tests/test_packages.py | 6 +- dev/breeze/tests/test_selective_checks.py | 120 +++++-- .../logging-monitoring/tracking-user-activity.rst | 4 +- .../authoring-and-scheduling/deferring.rst | 2 +- .../dynamic-task-mapping.rst | 2 +- .../authoring-and-scheduling/plugins.rst | 11 +- docs/apache-airflow/best-practices.rst | 2 +- docs/apache-airflow/core-concepts/auth-manager.rst | 2 +- docs/apache-airflow/core-concepts/dag-run.rst | 2 +- docs/apache-airflow/faq.rst | 2 +- docs/apache-airflow/howto/define-extra-link.rst | 6 +- docs/apache-airflow/howto/set-up-database.rst | 1 - docs/apache-airflow/img/airflow_erd.sha256 | 2 +- docs/apache-airflow/img/airflow_erd.svg | 4 +- ..._team_airflow_architecture_with_grpc_api.md5sum | 1 + ...lti_team_airflow_architecture_with_grpc_api.png | Bin 0 -> 647436 bytes ...lti_team_airflow_architecture_with_grpc_api.py} | 38 +- ...am_airflow_architecture_without_grpc_api.md5sum | 1 + ..._team_airflow_architecture_without_grpc_api.png | Bin 0 -> 597552 bytes ..._team_airflow_architecture_without_grpc_api.py} | 92 ++--- ...diagram_multitenant_airflow_architecture.md5sum | 1 - .../diagram_multitenant_airflow_architecture.png | Bin 601270 -> 0 bytes .../installation/supported-versions.rst | 2 +- docs/apache-airflow/migrations-ref.rst | 7 +- .../security/secrets/mask-sensitive-values.rst | 2 +- docs/apache-airflow/templates-ref.rst | 2 +- docs/apache-airflow/tutorial/pipeline.rst | 4 +- docs/conf.py | 2 +- docs/docker-stack/README.md | 10 +- .../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/exts/docs_build/docs_builder.py | 16 - docs/exts/includes/sections-and-options.rst | 8 +- docs/exts/operators_and_hooks_ref.py | 4 +- docs/exts/provider_yaml_utils.py | 5 +- docs/spelling_wordlist.txt | 3 + generated/PYPI_README.md | 22 +- generated/provider_dependencies.json | 8 +- hatch_build.py | 6 +- pyproject.toml | 5 +- .../ci_start_arm_instance_and_connect_to_docker.sh | 1 + scripts/ci/pre_commit/generate_pypi_readme.py | 2 +- scripts/ci/pre_commit/insert_extras.py | 4 +- scripts/ci/pre_commit/json_schema.py | 4 +- scripts/ci/pre_commit/replace_bad_characters.py | 2 +- scripts/ci/pre_commit/supported_versions.py | 2 +- scripts/ci/pre_commit/update_chart_dependencies.py | 4 +- scripts/ci/pre_commit/update_versions.py | 2 +- scripts/docker/common.sh | 2 + scripts/docker/install_airflow.sh | 20 +- scripts/in_container/_in_container_utils.sh | 2 + scripts/in_container/run_generate_constraints.py | 1 - .../in_container/run_provider_yaml_files_check.py | 7 +- .../in_container/update_quarantined_test_status.py | 4 +- scripts/tools/check_if_limited_dependencies.py | 2 +- scripts/tools/list-integrations.py | 2 +- .../endpoints/test_dag_run_endpoint.py | 13 +- tests/cli/commands/test_config_command.py | 12 +- tests/cli/commands/test_db_command.py | 66 +++- tests/conftest.py | 2 +- tests/core/test_stats.py | 14 +- tests/datasets/test_dataset.py | 29 +- .../auth/backend/test_kerberos_auth.py | 5 +- tests/io/test_path.py | 5 + .../google/cloud/triggers/test_bigquery.py | 2 +- tests/utils/test_db.py | 3 +- .../test_task_handler_with_custom_formatter.py | 24 +- tests/www/test_security_manager.py | 67 +++- 145 files changed, 1471 insertions(+), 721 deletions(-) copy airflow/migrations/versions/{0127_2_7_0_add_custom_operator_name_column.py => 0141_2_9_2_remove_idx_last_scheduling_decision_.py} (58%) create mode 100644 airflow/migrations/versions/0142_2_9_2_fix_inconsistency_between_ORM_and_migration_files.py create mode 100644 docs/apache-airflow/img/diagram_multi_team_airflow_architecture_with_grpc_api.md5sum create mode 100644 docs/apache-airflow/img/diagram_multi_team_airflow_architecture_with_grpc_api.png copy docs/apache-airflow/img/{diagram_multitenant_airflow_architecture.py => diagram_multi_team_airflow_architecture_with_grpc_api.py} (87%) create mode 100644 docs/apache-airflow/img/diagram_multi_team_airflow_architecture_without_grpc_api.md5sum create mode 100644 docs/apache-airflow/img/diagram_multi_team_airflow_architecture_without_grpc_api.png rename docs/apache-airflow/img/{diagram_multitenant_airflow_architecture.py => diagram_multi_team_airflow_architecture_without_grpc_api.py} (73%) delete mode 100644 docs/apache-airflow/img/diagram_multitenant_airflow_architecture.md5sum delete mode 100644 docs/apache-airflow/img/diagram_multitenant_airflow_architecture.png