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 cafd01cd008989af9e304fc6488c3afe1dc13458 Merge: 71fbaa0344a b9ff1d77694 Author: Rahul Vats <[email protected]> AuthorDate: Wed Aug 12 13:26:35 2026 +0530 Merge remote-tracking branch 'refs/remotes/origin/main' .github/dependabot.yml | 18 + .github/workflows/ci-amd.yml | 34 + .github/workflows/ci-arm.yml | 34 + .github/workflows/java-sdk-release-verify.yml | 40 +- .github/workflows/publish-docs-to-s3.yml | 85 +- .../workflows/ts-sdk-dependency-review.yml | 52 +- .pre-commit-config.yaml | 8 + airflow-core/.pre-commit-config.yaml | 103 +- .../language-sdks/typescript.rst | 11 +- airflow-core/docs/core-concepts/multi-team.rst | 5 + .../docs/core-concepts/resumable-tasks.rst | 21 + airflow-core/newsfragments/69768.feature.rst | 1 + .../auth/managers/simple/ui/package.json | 14 +- .../auth/managers/simple/ui/pnpm-lock.yaml | 269 +- .../src/airflow/api_fastapi/common/db/assets.py | 12 +- .../src/airflow/api_fastapi/common/db/dag_runs.py | 6 +- .../src/airflow/api_fastapi/common/db/dags.py | 37 +- .../api_fastapi/common/db/task_instances.py | 5 +- .../api_fastapi/core_api/datamodels/dags.py | 1 + .../api_fastapi/core_api/datamodels/variables.py | 15 +- .../core_api/openapi/v2-rest-api-generated.yaml | 73 +- .../api_fastapi/core_api/routes/public/dag_run.py | 8 +- .../api_fastapi/core_api/routes/public/dags.py | 4 +- .../core_api/routes/public/task_instances.py | 7 +- .../core_api/routes/public/task_state_store.py | 149 +- .../core_api/services/public/variables.py | 3 +- .../api_fastapi/core_api/services/ui/calendar.py | 6 +- .../execution_api/datamodels/task_arg_binding.py | 93 + .../execution_api/datamodels/taskinstance.py | 12 + .../execution_api/routes/task_instances.py | 35 +- .../execution_api/services/__init__.py} | 24 - .../execution_api/services/task_instances.py | 61 + .../api_fastapi/execution_api/versions/__init__.py | 2 + .../execution_api/versions/v2026_06_30.py | 27 + .../execution_api/versions/v2026_10_30.py | 42 + .../src/airflow/cli/commands/dag_command.py | 4 +- .../src/airflow/cli/commands/team_command.py | 65 +- airflow-core/src/airflow/dag_processing/dagbag.py | 26 + airflow-core/src/airflow/models/dag.py | 24 + airflow-core/src/airflow/models/dagbundle.py | 6 + airflow-core/src/airflow/models/dagrun.py | 8 + airflow-core/src/airflow/models/pool.py | 4 + airflow-core/src/airflow/models/taskinstance.py | 1 + airflow-core/src/airflow/models/variable.py | 9 +- .../serialization/definitions/baseoperator.py | 7 + .../serialization/definitions/mappedoperator.py | 7 + airflow-core/src/airflow/serialization/schema.json | 20 +- .../airflow/serialization/serialized_objects.py | 27 +- .../src/airflow/serialization/stub_arg_bindings.py | 286 ++ .../ui/openapi-gen/queries/ensureQueryData.ts | 2 +- .../src/airflow/ui/openapi-gen/queries/prefetch.ts | 2 +- .../src/airflow/ui/openapi-gen/queries/queries.ts | 10 +- .../src/airflow/ui/openapi-gen/queries/suspense.ts | 2 +- .../airflow/ui/openapi-gen/requests/schemas.gen.ts | 11 + .../ui/openapi-gen/requests/services.gen.ts | 31 +- .../airflow/ui/openapi-gen/requests/types.gen.ts | 5 +- airflow-core/src/airflow/ui/package.json | 4 +- airflow-core/src/airflow/ui/pnpm-lock.yaml | 98 +- .../airflow/ui/public/i18n/locales/en/common.json | 35 +- .../ui/src/components/Clear/Run/ClearRunDialog.tsx | 6 +- .../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 6 +- .../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 12 +- .../components/Graph/DirectionDropdown.test.tsx | 74 + .../ui/src/components/Graph/DirectionDropdown.tsx | 4 +- .../TaskInstance/MarkTaskInstanceAsDialog.tsx | 5 +- .../airflow/ui/src/components/TeamName.test.tsx | 60 + .../src/airflow/ui/src/components/TeamName.tsx | 27 +- .../airflow/ui/src/constants/localStorage.test.ts | 32 +- .../src/airflow/ui/src/constants/localStorage.ts | 13 + .../src/airflow/ui/src/hooks/useShowTeam.ts | 15 +- .../airflow/ui/src/hooks/useUserSettings.test.tsx | 149 + .../src/airflow/ui/src/hooks/useUserSettings.ts | 54 + .../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 4 +- .../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 2 - .../ui/src/layouts/Nav/UserSettingsButton.test.tsx | 26 +- .../ui/src/layouts/Nav/UserSettingsButton.tsx | 23 +- airflow-core/src/airflow/ui/src/main.tsx | 3 +- .../src/airflow/ui/src/pages/Asset/AssetGraph.tsx | 4 +- .../src/pages/Asset/CreateAssetEventModal.test.tsx | 17 +- .../ui/src/pages/Asset/CreateAssetEventModal.tsx | 8 +- .../src/airflow/ui/src/pages/Dag/Details.tsx | 12 + .../src/airflow/ui/src/pages/Dag/Header.test.tsx | 37 +- .../src/airflow/ui/src/pages/Dag/Header.tsx | 11 + .../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 8 +- .../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 7 +- .../DagsList/DagsFilters/DagsFilters.test.tsx | 6 + .../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 8 +- .../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 8 +- .../ui/src/pages/DagsList/useTagFilter.test.tsx | 46 +- .../airflow/ui/src/pages/DagsList/useTagFilter.ts | 17 +- .../src/airflow/ui/src/pages/Run/Details.tsx | 12 + .../src/airflow/ui/src/pages/Run/Header.test.tsx | 21 + .../src/airflow/ui/src/pages/Run/Header.tsx | 11 + .../ui/src/pages/Settings/Settings.test.tsx | 118 + .../src/airflow/ui/src/pages/Settings/Settings.tsx | 256 ++ .../src/airflow/ui/src/pages/Settings/index.tsx | 10 +- .../airflow/ui/src/pages/TaskInstance/Details.tsx | 12 + .../ui/src/pages/TaskInstance/Header.test.tsx | 78 + .../airflow/ui/src/pages/TaskInstance/Header.tsx | 11 + .../ui/src/pages/TaskInstances/TaskInstances.tsx | 8 +- .../ui/src/queries/gridViewQueryKeys.test.ts | 28 +- .../airflow/ui/src/queries/gridViewQueryKeys.ts | 3 + .../src/airflow/ui/src/queries/useGridStructure.ts | 38 +- .../ui/src/queries/useGridTISummaries.test.tsx | 47 +- .../airflow/ui/src/queries/useGridTISummaries.ts | 7 +- airflow-core/src/airflow/ui/src/router.tsx | 5 + .../core_api/routes/public/test_dag_run.py | 19 + .../core_api/routes/public/test_dags.py | 36 +- .../core_api/routes/public/test_task_instances.py | 45 + .../routes/public/test_task_state_store.py | 57 + .../core_api/routes/public/test_variables.py | 91 +- .../api_fastapi/core_api/routes/ui/test_assets.py | 25 +- .../core_api/routes/ui/test_calendar.py | 39 + .../versions/head/test_task_instances.py | 172 + .../versions/v2026_06_30/test_dag_runs.py | 90 + .../versions/v2026_10_30/__init__.py} | 24 - .../versions/v2026_10_30/test_task_instances.py | 100 + .../tests/unit/cli/commands/test_dag_command.py | 31 + .../tests/unit/cli/commands/test_team_command.py | 106 +- .../tests/unit/dag_processing/test_dagbag.py | 68 + airflow-core/tests/unit/models/test_pool.py | 3 + airflow-core/tests/unit/models/test_team.py | 130 + airflow-core/tests/unit/models/test_variable.py | 5 + .../unit/serialization/test_dag_serialization.py | 117 + .../unit/serialization/test_stub_arg_bindings.py | 173 + .../src/airflowctl/api/datamodels/generated.py | 1 + clients/python/pyproject.toml | 2 +- .../13_airflow_dependencies_and_extras.rst | 15 + dev/README_RELEASE_PROVIDERS.md | 50 +- dev/breeze/doc/ci/04_selective_checks.md | 1 + dev/breeze/doc/images/output_build-docs.svg | 6 +- dev/breeze/doc/images/output_build-docs.txt | 2 +- ...tput_release-management_add-back-references.svg | 4 +- ...tput_release-management_add-back-references.txt | 2 +- .../output_release-management_publish-docs.svg | 4 +- .../output_release-management_publish-docs.txt | 2 +- .../images/output_workflow-run_publish-docs.svg | 4 +- .../images/output_workflow-run_publish-docs.txt | 2 +- dev/breeze/pyproject.toml | 13 +- .../airflow_breeze/commands/developer_commands.py | 112 +- .../commands/release_management_commands.py | 4 + dev/breeze/src/airflow_breeze/global_constants.py | 18 +- .../templates/pyproject_TEMPLATE.toml.jinja2 | 2 +- .../src/airflow_breeze/utils/docs_publisher.py | 3 + .../src/airflow_breeze/utils/publish_docs_to_s3.py | 1 + .../src/airflow_breeze/utils/selective_checks.py | 19 +- dev/breeze/tests/test_docs_publisher.py | 21 + .../tests/test_release_management_commands.py | 24 + dev/breeze/tests/test_selective_checks.py | 46 + dev/breeze/uv.lock | 16 +- .../react_plugin_template/package.json | 12 +- .../react_plugin_template/pnpm-lock.yaml | 204 +- devel-common/pyproject.toml | 2 +- .../src/tests_common/test_utils/version_compat.py | 2 + docs/spelling_wordlist.txt | 1 + generated/known_sdk_imports_in_core.txt | 45 + generated/provider_metadata.json | 8 + .../cmd/airflow-go-pack/pack_integration_test.go | 3 +- go-sdk/pkg/execution/messages.go | 2 +- java-sdk/README.md | 22 + java-sdk/build.gradle.kts | 9 + java-sdk/buildSrc/build.gradle.kts | 7 + .../main/kotlin/airflow-jvm-conventions.gradle.kts | 4 - java-sdk/gradle/verification-metadata.xml | 3029 +++++++++++++++ java-sdk/plugin/build.gradle.kts | 4 - java-sdk/settings.gradle.kts | 14 + performance/pyproject.toml | 2 +- providers/airbyte/pyproject.toml | 2 +- providers/akeyless/pyproject.toml | 2 +- providers/alibaba/pyproject.toml | 2 +- .../docs/operators/redshift/redshift_data.rst | 10 + providers/amazon/pyproject.toml | 2 +- providers/anthropic/pyproject.toml | 2 +- providers/apache/beam/pyproject.toml | 2 +- providers/apache/cassandra/pyproject.toml | 2 +- providers/apache/drill/pyproject.toml | 2 +- providers/apache/druid/pyproject.toml | 2 +- providers/apache/flink/pyproject.toml | 2 +- providers/apache/hdfs/pyproject.toml | 2 +- providers/apache/hive/pyproject.toml | 2 +- providers/apache/iceberg/pyproject.toml | 2 +- providers/apache/impala/pyproject.toml | 2 +- providers/apache/kafka/pyproject.toml | 2 +- providers/apache/kylin/pyproject.toml | 2 +- providers/apache/livy/pyproject.toml | 2 +- providers/apache/pig/pyproject.toml | 2 +- providers/apache/pinot/pyproject.toml | 2 +- providers/apache/spark/docs/operators.rst | 10 + providers/apache/spark/pyproject.toml | 2 +- providers/apache/tinkerpop/pyproject.toml | 2 +- providers/apprise/pyproject.toml | 2 +- providers/arangodb/pyproject.toml | 2 +- providers/asana/pyproject.toml | 2 +- providers/atlassian/jira/pyproject.toml | 2 +- providers/celery/pyproject.toml | 2 +- providers/clickhousedb/pyproject.toml | 2 +- providers/cloudant/pyproject.toml | 2 +- providers/cncf/kubernetes/pyproject.toml | 2 +- providers/cohere/pyproject.toml | 2 +- providers/common/ai/docs/index.rst | 10 +- providers/common/ai/pyproject.toml | 10 +- .../providers/common/ai/toolsets/datafusion.py | 5 +- .../unit/common/ai/toolsets/test_datafusion.py | 18 +- providers/common/compat/pyproject.toml | 2 +- providers/common/dataquality/pyproject.toml | 2 +- providers/common/io/pyproject.toml | 2 +- providers/common/messaging/pyproject.toml | 2 +- providers/common/sql/pyproject.toml | 2 +- providers/databricks/docs/operators/run_now.rst | 10 + providers/databricks/docs/operators/submit_run.rst | 10 + providers/databricks/pyproject.toml | 2 +- providers/datadog/pyproject.toml | 2 +- providers/dbt/cloud/pyproject.toml | 2 +- providers/dingding/pyproject.toml | 2 +- providers/discord/pyproject.toml | 2 +- providers/docker/pyproject.toml | 2 +- .../providers/edge3/plugins/www/package.json | 28 +- .../providers/edge3/plugins/www/pnpm-lock.yaml | 640 ++-- providers/elasticsearch/pyproject.toml | 2 +- providers/exasol/pyproject.toml | 2 +- providers/facebook/pyproject.toml | 2 +- providers/ftp/pyproject.toml | 2 +- providers/git/pyproject.toml | 2 +- providers/github/pyproject.toml | 2 +- providers/google/pyproject.toml | 2 +- providers/grpc/pyproject.toml | 2 +- providers/hashicorp/pyproject.toml | 2 +- providers/http/pyproject.toml | 2 +- providers/ibm/mq/pyproject.toml | 2 +- providers/imap/pyproject.toml | 2 +- providers/influxdb/pyproject.toml | 2 +- providers/informatica/pyproject.toml | 2 +- providers/jdbc/pyproject.toml | 2 +- providers/jenkins/pyproject.toml | 2 +- providers/keycloak/pyproject.toml | 2 +- providers/microsoft/azure/pyproject.toml | 2 +- providers/microsoft/mssql/pyproject.toml | 2 +- providers/microsoft/psrp/pyproject.toml | 2 +- providers/microsoft/winrm/pyproject.toml | 2 +- providers/mongo/pyproject.toml | 2 +- providers/mysql/pyproject.toml | 2 +- providers/neo4j/pyproject.toml | 2 +- providers/odbc/pyproject.toml | 2 +- providers/openai/pyproject.toml | 2 +- providers/openfaas/pyproject.toml | 2 +- providers/openlineage/pyproject.toml | 2 +- .../airflow/providers/openlineage/utils/utils.py | 7 +- providers/opensearch/pyproject.toml | 2 +- providers/opsgenie/pyproject.toml | 2 +- providers/oracle/pyproject.toml | 2 +- providers/pagerduty/pyproject.toml | 2 +- providers/papermill/pyproject.toml | 2 +- providers/pgvector/pyproject.toml | 2 +- providers/pinecone/pyproject.toml | 2 +- providers/postgres/pyproject.toml | 2 +- providers/presto/pyproject.toml | 2 +- providers/qdrant/pyproject.toml | 2 +- providers/redis/pyproject.toml | 2 +- providers/salesforce/pyproject.toml | 2 +- providers/samba/pyproject.toml | 2 +- providers/segment/pyproject.toml | 2 +- providers/sendgrid/pyproject.toml | 2 +- providers/sftp/pyproject.toml | 2 +- providers/singularity/pyproject.toml | 2 +- providers/slack/pyproject.toml | 2 +- providers/smtp/pyproject.toml | 2 +- providers/snowflake/docs/operators/snowflake.rst | 10 + providers/snowflake/pyproject.toml | 2 +- providers/sqlite/pyproject.toml | 2 +- providers/ssh/pyproject.toml | 2 +- providers/standard/pyproject.toml | 2 +- .../airflow/providers/standard/decorators/stub.py | 3 + .../tests/unit/standard/decorators/test_stub.py | 265 +- providers/tableau/pyproject.toml | 2 +- providers/telegram/pyproject.toml | 2 +- providers/teradata/pyproject.toml | 2 +- providers/trino/pyproject.toml | 2 +- providers/vertica/pyproject.toml | 2 +- providers/vespa/pyproject.toml | 2 +- providers/weaviate/pyproject.toml | 2 +- providers/yandex/pyproject.toml | 2 +- providers/ydb/pyproject.toml | 2 +- providers/zendesk/pyproject.toml | 2 +- scripts/ci/prek/check_dependency_lower_bounds.py | 146 + scripts/ci/prek/check_sdk_imports_in_core.py | 210 +- scripts/ci/prek/check_ti_vs_tis_attributes.py | 2 + .../ci/prek/test_check_dependency_lower_bounds.py | 143 + .../ci/prek/test_check_sdk_imports_in_core.py | 232 +- .../src/airflow/sdk/api/datamodels/_generated.py | 34 +- task-sdk/src/airflow/sdk/bases/decorator.py | 1 + .../sdk/definitions/_internal/abstractoperator.py | 2 + .../src/airflow/sdk/definitions/mappedoperator.py | 3 + .../airflow/sdk/execution_time/schema/schema.json | 125 +- .../sdk/execution_time/schema/versions/__init__.py | 5 + .../execution_time/schema/versions/v2026_10_30.py | 28 +- .../execution_time/schema/test_migrator.py | 113 +- ts-sdk/README.md | 53 +- ts-sdk/docs/.gitignore | 4 + ts-sdk/docs/index.md | 65 + ts-sdk/docs/package-lock.json | 3898 ++++++++++++++++++++ ts-sdk/docs/package.json | 20 + ts-sdk/docs/scripts/prepare-readme.mjs | 45 + ts-sdk/docs/tsconfig.json | 21 + ts-sdk/docs/typedoc.json | 24 + ts-sdk/src/coordinator/client.ts | 8 +- ts-sdk/src/generated/supervisor.ts | 103 +- ts-sdk/src/index.ts | 2 +- ts-sdk/src/sdk/client.ts | 20 + ts-sdk/src/sdk/task.ts | 4 +- ts-sdk/tests/coordinator/client.test.ts | 26 + ts-sdk/tests/public-api.test.ts | 9 + uv.lock | 36 +- 312 files changed, 13555 insertions(+), 1522 deletions(-)
