This is an automated email from the ASF dual-hosted git repository. vatsrahul1001 pushed a commit to annotated tag constraints-latest in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 3c096d0549aa2b881fc1874161dfba23c7c8f448 Merge: 0510a170ccb 55b35f739c5 Author: Rahul Vats <[email protected]> AuthorDate: Thu Aug 6 15:04:43 2026 +0530 Merge remote-tracking branch 'refs/remotes/origin/main' .../prepare-providers-documentation/SKILL.md | 70 +- .../actions/build_ci_image_with_cache/action.yml | 221 ++++ .github/dependabot.yml | 17 +- .github/workflows/additional-ci-image-checks.yml | 65 +- .github/workflows/ci-amd.yml | 16 +- .github/workflows/ci-arm.yml | 16 +- .github/workflows/generate-constraints.yml | 34 +- .github/workflows/publish-docs-to-s3.yml | 143 +-- .github/workflows/refresh-constraints.yml | 72 ++ .github/workflows/refresh-image-registry-cache.yml | 145 +++ .github/workflows/registry-build.yml | 96 +- .github/workflows/release-constraints.yml | 255 ++++ .github/workflows/update-constraints-on-push.yml | 18 +- README.md | 2 + airflow-core/docs/core-concepts/dag-run.rst | 98 +- airflow-core/docs/howto/deadline-alerts.rst | 3 +- airflow-core/docs/howto/usage-cli.rst | 6 + airflow-core/docs/index.rst | 6 +- airflow-core/docs/migrations-ref.rst | 5 +- airflow-core/newsfragments/63185.significant.rst | 3 + airflow-core/newsfragments/69821.bugfix.rst | 1 + airflow-core/newsfragments/70755.significant.rst | 29 + airflow-core/newsfragments/70791.significant.rst | 35 - airflow-core/newsfragments/70972.significant.rst | 13 + airflow-core/newsfragments/71103.significant.rst | 33 + .../core_api/datamodels/ui/dashboard.py | 4 +- .../api_fastapi/core_api/openapi/_private_ui.yaml | 12 +- .../core_api/openapi/v2-rest-api-generated.yaml | 6 + .../api_fastapi/core_api/routes/public/assets.py | 6 +- .../api_fastapi/core_api/routes/public/config.py | 4 +- .../api_fastapi/core_api/routes/public/dag_run.py | 5 +- .../api_fastapi/core_api/routes/public/xcom.py | 8 +- .../airflow/api_fastapi/core_api/routes/ui/dags.py | 4 +- .../api_fastapi/core_api/routes/ui/dashboard.py | 88 +- .../src/airflow/api_fastapi/core_api/security.py | 21 +- .../api_fastapi/core_api/services/public/config.py | 5 + .../execution_api/routes/task_instances.py | 21 +- .../src/airflow/api_fastapi/logging/decorators.py | 59 +- airflow-core/src/airflow/assets/manager.py | 198 ++- .../src/airflow/dag_processing/bundles/manager.py | 232 +++- airflow-core/src/airflow/dag_processing/manager.py | 29 +- .../src/airflow/jobs/scheduler_job_runner.py | 108 +- .../0128_3_4_0_add_asset_event_id_to_adrq.py | 205 ++++ airflow-core/src/airflow/models/asset.py | 15 +- airflow-core/src/airflow/models/dag.py | 55 +- airflow-core/src/airflow/models/taskinstance.py | 13 +- airflow-core/src/airflow/models/trigger.py | 158 ++- .../src/airflow/secrets/environment_variables.py | 56 +- .../airflow/serialization/serialized_objects.py | 36 +- .../airflow/ui/openapi-gen/requests/schemas.gen.ts | 14 +- .../ui/openapi-gen/requests/services.gen.ts | 1 + .../airflow/ui/openapi-gen/requests/types.gen.ts | 7 +- .../ui/public/i18n/locales/zh-TW/assets.json | 5 +- .../ui/public/i18n/locales/zh-TW/common.json | 4 + .../ui/public/i18n/locales/zh-TW/components.json | 15 +- .../airflow/ui/public/i18n/locales/zh-TW/dag.json | 8 +- .../airflow/ui/public/i18n/locales/zh-TW/dags.json | 4 +- .../ui/src/components/TaskTrySelect.test.tsx | 264 ++++ .../airflow/ui/src/components/TaskTrySelect.tsx | 13 +- .../ui/src/layouts/Details/Grid/GridTI.test.tsx | 114 ++ .../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 20 +- .../ui/src/layouts/Details/Grid/constants.ts | 4 + .../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 19 +- .../HistoricalMetrics/HistoricalMetrics.tsx | 4 +- .../Dashboard/HistoricalMetrics/MetricSection.tsx | 5 +- .../HistoricalMetrics/TaskInstanceMetrics.tsx | 14 +- .../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 93 +- .../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 36 +- .../pages/TaskInstance/Logs/logSelection.test.ts | 147 +++ .../ui/src/pages/TaskInstance/Logs/logSelection.ts | 73 ++ .../ui/src/pages/TaskInstance/Logs/utils.test.ts | 78 +- .../ui/src/pages/TaskInstance/Logs/utils.ts | 13 + .../src/pages/TaskInstance/TaskInstance.test.tsx | 144 +++ .../ui/src/pages/TaskInstance/TaskInstance.tsx | 1 + airflow-core/src/airflow/utils/db.py | 2 +- airflow-core/tests/unit/always/test_secrets.py | 2 + .../always/test_secrets_environment_variables.py | 63 + .../core_api/routes/public/test_assets.py | 37 +- .../core_api/routes/public/test_config.py | 64 + .../core_api/routes/public/test_dag_run.py | 26 + .../api_fastapi/core_api/routes/ui/test_assets.py | 22 +- .../core_api/routes/ui/test_dashboard.py | 66 +- .../unit/api_fastapi/core_api/test_security.py | 51 +- .../versions/head/test_task_instances.py | 78 ++ .../unit/api_fastapi/logging/test_decorators.py | 150 +++ airflow-core/tests/unit/assets/test_manager.py | 160 ++- .../bundles/test_dag_bundle_manager.py | 1269 +++++++++++++++++++- .../tests/unit/dag_processing/test_manager.py | 189 +++ airflow-core/tests/unit/jobs/test_scheduler_job.py | 292 +++-- airflow-core/tests/unit/models/test_dag.py | 116 +- .../tests/unit/models/test_taskinstance.py | 17 +- airflow-core/tests/unit/models/test_trigger.py | 143 ++- .../unit/serialization/test_dag_serialization.py | 121 +- .../tests/unit/timetables/test_assets_timetable.py | 5 +- airflow-ctl/src/airflowctl/api/operations.py | 2 +- .../tests/airflow_ctl/api/test_operations.py | 23 + chart/templates/_helpers.yaml | 18 +- .../api-server/api-server-deployment.yaml | 5 +- .../dag-processor/dag-processor-deployment.yaml | 4 +- .../templates/scheduler/scheduler-deployment.yaml | 5 +- .../templates/triggerer/triggerer-deployment.yaml | 4 +- chart/templates/workers/worker-deployment.yaml | 8 +- .../helm_tests/airflow_aux/test_airflow_common.py | 61 +- dev/MANUALLY_BUILDING_IMAGES.md | 6 +- ...UALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md | 78 +- dev/README_RELEASE_AIRFLOW.md | 50 +- dev/README_RELEASE_PYTHON_CLIENT.md | 4 +- dev/breeze/doc/09_release_management_tasks.rst | 21 + dev/breeze/doc/images/output_build-docs.svg | 44 +- dev/breeze/doc/images/output_build-docs.txt | 2 +- ...put_release-management_generate-constraints.svg | 54 +- ...put_release-management_generate-constraints.txt | 2 +- .../output_setup_check-all-params-in-groups.svg | 24 +- .../output_setup_check-all-params-in-groups.txt | 2 +- .../output_setup_regenerate-command-images.svg | 2 +- .../output_setup_regenerate-command-images.txt | 2 +- dev/breeze/doc/images/output_workflow-run.svg | 14 +- dev/breeze/doc/images/output_workflow-run.txt | 2 +- .../output_workflow-run_release-constraints.svg | 138 +++ .../output_workflow-run_release-constraints.txt | 1 + dev/breeze/pyproject.toml | 8 +- .../airflow_breeze/commands/developer_commands.py | 13 +- .../commands/developer_commands_config.py | 1 - .../commands/release_candidate_command.py | 31 +- .../src/airflow_breeze/commands/release_command.py | 48 +- .../commands/release_management_commands.py | 4 + .../commands/release_management_commands_config.py | 1 + .../airflow_breeze/commands/workflow_commands.py | 44 + .../commands/workflow_commands_config.py | 12 +- .../prepare_providers/provider_distributions.py | 2 +- .../airflow_breeze/utils/release_constraints.py | 61 + dev/breeze/tests/test_developer_commands.py | 33 +- dev/breeze/tests/test_release_command.py | 57 +- dev/breeze/tests/test_release_constraints.py | 91 ++ dev/breeze/tests/test_selective_checks.py | 21 + dev/breeze/uv.lock | 104 +- dev/registry/extract_parameters.py | 101 +- dev/registry/extract_versions.py | 73 +- dev/registry/registry_tools/types.py | 69 ++ dev/registry/tests/test_extract_parameters.py | 99 ++ dev/registry/tests/test_extract_versions.py | 121 ++ dev/registry/tests/test_types.py | 26 + devel-common/pyproject.toml | 2 +- generated/known_airflow_exceptions.txt | 1 - go-sdk/bundle/bundlev1/bundlev1server/server.go | 2 +- go-sdk/go.mod | 1 - go-sdk/go.sum | 2 - go-sdk/pkg/logging/hclogslog/hclogslog.go | 146 +++ go-sdk/pkg/logging/hclogslog/hclogslog_test.go | 182 +++ kubernetes-tests/lang_sdk/go_example/go.mod | 1 - kubernetes-tests/lang_sdk/go_example/go.sum | 2 - providers/.last_release_date.txt | 2 +- providers/amazon/README.rst | 8 +- providers/amazon/docs/changelog.rst | 6 +- providers/amazon/docs/index.rst | 8 +- providers/amazon/pyproject.toml | 15 +- .../amazon/aws/secrets/secrets_manager.py | 6 + .../amazon/aws/secrets/systems_manager.py | 6 + .../amazon/aws/secrets/test_secrets_manager.py | 26 + .../amazon/aws/secrets/test_systems_manager.py | 24 + .../unit/amazon/aws/transfers/test_sql_to_s3.py | 10 +- providers/apache/hdfs/README.rst | 12 +- providers/apache/hdfs/docs/changelog.rst | 3 +- providers/apache/hdfs/docs/index.rst | 12 +- providers/apache/hdfs/pyproject.toml | 15 +- providers/apache/hive/README.rst | 12 +- providers/apache/hive/docs/changelog.rst | 3 +- providers/apache/hive/docs/index.rst | 12 +- providers/apache/hive/pyproject.toml | 15 +- providers/apache/spark/docs/changelog.rst | 1 + .../apache/spark/operators/spark_submit.py | 2 +- .../apache/spark/operators/test_spark_submit.py | 5 +- providers/clickhousedb/README.rst | 6 +- providers/clickhousedb/docs/changelog.rst | 15 - providers/clickhousedb/docs/index.rst | 6 +- providers/clickhousedb/provider.yaml | 1 - providers/clickhousedb/pyproject.toml | 6 +- .../src/airflow/providers/clickhousedb/__init__.py | 2 +- providers/common/ai/docs/changelog.rst | 2 + providers/common/ai/docs/operators/llm_branch.rst | 34 + .../providers/common/ai/decorators/llm_branch.py | 11 +- .../common/ai/example_dags/example_llm_branch.py | 35 + .../airflow/providers/common/ai/mixins/approval.py | 68 +- .../airflow/providers/common/ai/operators/llm.py | 9 +- .../providers/common/ai/operators/llm_branch.py | 74 +- .../providers/common/ai/operators/llm_sql.py | 9 +- .../unit/common/ai/decorators/test_llm_branch.py | 19 + .../tests/unit/common/ai/mixins/test_approval.py | 74 ++ .../unit/common/ai/operators/test_llm_branch.py | 348 +++++- providers/common/sql/README.rst | 8 +- providers/common/sql/docs/changelog.rst | 3 +- providers/common/sql/docs/index.rst | 8 +- providers/common/sql/pyproject.toml | 15 +- providers/databricks/README.rst | 12 +- providers/databricks/docs/changelog.rst | 3 +- providers/databricks/docs/index.rst | 12 +- providers/databricks/docs/operators/run_now.rst | 9 +- providers/databricks/pyproject.toml | 15 +- .../providers/databricks/operators/databricks.py | 52 +- .../unit/databricks/operators/test_databricks.py | 122 +- providers/edge3/docs/changelog.rst | 1 + .../providers/edge3/plugins/www/package.json | 2 +- .../providers/edge3/plugins/www/pnpm-lock.yaml | 143 ++- providers/exasol/README.rst | 12 +- providers/exasol/docs/changelog.rst | 3 +- providers/exasol/docs/index.rst | 12 +- providers/exasol/pyproject.toml | 15 +- providers/fab/docs/changelog.rst | 1 + .../fab/auth_manager/security_manager/override.py | 1 - providers/git/docs/changelog.rst | 5 + .../git/src/airflow/providers/git/hooks/git.py | 4 +- providers/git/tests/unit/git/hooks/test_git.py | 3 +- providers/google/README.rst | 12 +- providers/google/docs/changelog.rst | 5 +- providers/google/docs/index.rst | 12 +- .../google-cloud-secret-manager-backend.rst | 8 +- providers/google/pyproject.toml | 15 +- .../google/cloud/secrets/secret_manager.py | 7 +- .../google/cloud/secrets/test_secret_manager.py | 22 + .../keycloak/auth_manager/cli/commands.py | 2 +- providers/microsoft/azure/docs/changelog.rst | 2 + .../providers/microsoft/azure/secrets/key_vault.py | 6 + .../unit/microsoft/azure/secrets/test_key_vault.py | 24 + providers/opensearch/README.rst | 6 +- providers/opensearch/docs/changelog.rst | 7 +- providers/opensearch/docs/index.rst | 6 +- providers/opensearch/docs/logging/index.rst | 16 + providers/opensearch/provider.yaml | 8 +- providers/opensearch/pyproject.toml | 6 +- .../src/airflow/providers/opensearch/__init__.py | 2 +- .../providers/opensearch/get_provider_info.py | 6 + .../providers/opensearch/log/os_task_handler.py | 38 + .../unit/opensearch/log/test_os_task_handler.py | 121 ++ providers/papermill/README.rst | 12 +- providers/papermill/docs/changelog.rst | 3 +- providers/papermill/docs/index.rst | 12 +- providers/papermill/pyproject.toml | 15 +- providers/postgres/README.rst | 8 +- providers/postgres/docs/changelog.rst | 3 +- providers/postgres/docs/index.rst | 8 +- providers/postgres/pyproject.toml | 15 +- providers/presto/README.rst | 12 +- providers/presto/docs/changelog.rst | 3 +- providers/presto/docs/index.rst | 12 +- providers/presto/pyproject.toml | 15 +- providers/salesforce/README.rst | 12 +- providers/salesforce/docs/changelog.rst | 4 +- providers/salesforce/docs/index.rst | 12 +- providers/salesforce/pyproject.toml | 15 +- .../tests/unit/salesforce/hooks/test_salesforce.py | 9 +- providers/snowflake/README.rst | 7 +- providers/snowflake/docs/changelog.rst | 4 +- providers/snowflake/docs/index.rst | 7 +- providers/snowflake/pyproject.toml | 19 +- providers/trino/README.rst | 12 +- providers/trino/docs/changelog.rst | 3 +- providers/trino/docs/index.rst | 12 +- providers/trino/pyproject.toml | 15 +- providers/weaviate/README.rst | 12 +- providers/weaviate/docs/changelog.rst | 3 +- providers/weaviate/docs/index.rst | 12 +- providers/weaviate/pyproject.toml | 15 +- providers/yandex/docs/changelog.rst | 1 + .../airflow/providers/yandex/secrets/lockbox.py | 6 + .../tests/unit/yandex/secrets/test_lockbox.py | 26 + pyproject.toml | 8 - registry/.eleventy.js | 22 + registry/README.md | 8 +- registry/scripts/build-pagefind-index.mjs | 10 +- registry/src/_data/exploreCategories.js | 10 +- registry/src/_data/exploreCategoryProviders.js | 13 +- registry/src/_data/providerCategoryMap.js | 3 +- registry/src/_data/providerKeywordMatch.js | 58 + registry/src/_data/types.json | 30 + registry/src/css/main.css | 205 ++++ registry/src/css/tokens.css | 6 + registry/src/js/provider-detail.js | 47 +- registry/src/js/provider-filters.js | 26 +- registry/src/js/search.js | 8 +- registry/src/provider-version.njk | 31 +- registry/src/providers.njk | 4 +- scripts/ci/notify_uv_lock_conflicts.py | 18 +- scripts/ci/prek/common_prek_utils.py | 17 +- scripts/ci/prek/update_airflow_pyproject_toml.py | 20 +- scripts/in_container/run_generate_constraints.py | 67 ++ .../in_container/run_provider_yaml_files_check.py | 34 + scripts/tests/ci/prek/test_extract_permissions.py | 6 +- scripts/tests/ci/test_notify_uv_lock_conflicts.py | 29 + .../in_container/test_run_generate_constraints.py | 39 + .../src/airflow_shared/configuration/parser.py | 124 +- .../tests/configuration/test_parser.py | 143 +++ task-sdk/docs/api.rst | 4 + task-sdk/pyproject.toml | 15 +- task-sdk/src/airflow/sdk/__init__.py | 11 +- task-sdk/src/airflow/sdk/definitions/callback.py | 22 + task-sdk/src/airflow/sdk/definitions/deadline.py | 6 +- task-sdk/src/airflow/sdk/execution_time/context.py | 5 + .../sdk/execution_time/secrets/execution_api.py | 4 +- .../src/airflow/sdk/execution_time/supervisor.py | 69 +- .../src/airflow/sdk/execution_time/task_runner.py | 98 +- task-sdk/src/airflow/sdk/serde/__init__.py | 13 +- .../src/airflow/sdk/serde/serializers/pandas.py | 49 +- .../tests/task_sdk/definitions/test_callback.py | 127 ++ .../tests/task_sdk/execution_time/test_context.py | 35 +- .../task_sdk/execution_time/test_supervisor.py | 178 ++- .../task_sdk/execution_time/test_task_runner.py | 308 ++++- task-sdk/tests/task_sdk/serde/test_serde.py | 18 +- task-sdk/tests/task_sdk/serde/test_serializers.py | 53 +- uv.lock | 114 +- 309 files changed, 10764 insertions(+), 2047 deletions(-)
