This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 4329da8c041 [main] CI: Upgrade important CI environment
add e429795ce4b Fix the last loop iteration index in the task loops docs
(#76831)
add 5667fb5044b Skip the Go SDK rule constants test outside the Airflow
repository (#76888)
add 5a9e21ac1b4 Skip upstream-only push workflows when a fork syncs main
(#76695)
add b9a3082904d Make SDK release verification steps work on macOS and with
backports (#76897)
add 48ccf8119b5 Fix unexpected stdout output in async S3Hook decorator
(#76855)
add 5e2e1417f22 Count replayed tool errors against the retry limit in
OpenAI Agents durable runs (#76790)
add 3591d7e4b77 Tidy the ESLint config before the oxlint move (#76477)
add 5081d2810f7 Correct what clearing a durable agent task replays in
common.ai docs (#76860)
add 3c254dbc58b Fix durable agent tasks failing when a tool returns bytes
(#76861)
add bf9e64f9e60 Fail the task when an OpenAI Agents SDK durable run stops
for tool approval (#76785)
add 3cb48d36e76 i18n(zh-CN): add missing translations and improve zh-CN
translation skill (#76700)
add 1a85102bc6d Accept `.filtered()`, `.prefixed()` and `.renamed()`
toolsets in the agent framework adapters (#76752)
add e42b5a92aeb Use prek hook script to refresh Java SDK metadata (#76714)
add 602ec1005a7 Pause an OpenAI Agents SDK durable run for tool approval
in Required Actions (#76786)
add ba57629ded2 fix the command for contributors to verify python client
and airflowctl rc (#76870)
add f5a994353e4 Copy the stack trace from the Dag import error modals
(#76924)
add 17e7eed7cf4 Bump @chakra-ui/react (#76754)
add 961da0f3b10 UI: Complete the missing Hebrew (he) translations (#76562)
add fc65819a7b2 docs(CODEOWNERS): add Indonesian UI translation owner
(#76929)
add c1ad31f66c3 UI: Move most lint rules from ESLint to oxlint (#76491)
add 646b92b8b9b Re-anchor custom queued deadline references when a Dag run
is cleared (#71850)
add 1f407b62dcb Restore clearing `ExternalTaskMarker` targets in other
Dags (#75874)
add 4a059ea539b Stop ObjectStorage journal write failures from failing
durable tasks (#75916)
add 7b163446c17 Link asset events emitted in a task loop to their
iteration (#76840)
add 29096e46255 Speed up PROD image stashes and restores with zstd (#76279)
add 83b140fbcc6 Apply Gantt date filters to mapped tasks and task groups
(#75725)
add 37a7713bde4 Fix outdated Python and Kubernetes versions in README
table (#76936)
add 34c96509ebc Move agent-assisted contribution docs out of the main
README (#76951)
add 5bc0b907679 [main] CI: Upgrade important CI environment
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 (4329da8c041)
\
N -- N -- N refs/heads/ci-upgrade-main (5bc0b907679)
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.
No new revisions were added by this update.
Summary of changes:
.../skills/airflow-translations/locales/zh-CN.md | 23 +
.github/CODEOWNERS | 1 +
.github/dependabot.yml | 1 +
.github/workflows/automatic-backport.yml | 1 +
.../java-sdk-dependabot-verification-metadata.yml | 13 +-
.github/workflows/java-sdk-dependency-security.yml | 2 +-
.github/workflows/milestone-tag-assistant.yml | 1 +
.github/workflows/notify-uv-lock-conflicts.yml | 1 +
.github/workflows/prod-image-build.yml | 10 +-
.github/workflows/update-constraints-on-push.yml | 5 +-
.pre-commit-config.yaml | 2 +-
.rat-excludes | 2 +
AGENTS.md | 4 +-
Dockerfile | 2 +-
Dockerfile.ci | 4 +-
README.md | 60 +-
airflow-core/.pre-commit-config.yaml | 2 +-
.../docs/authoring-and-scheduling/loops.rst | 2 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/newsfragments/71850.bugfix.rst | 1 +
airflow-core/newsfragments/75874.significant.rst | 17 +
.../src/airflow/api_fastapi/common/db/dag_runs.py | 9 +
.../api_fastapi/core_api/datamodels/assets.py | 8 +
.../core_api/datamodels/task_instances.py | 6 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 72 +
.../core_api/openapi/v2-rest-api-generated.yaml | 23 +-
.../api_fastapi/core_api/routes/public/assets.py | 4 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 4 +-
.../core_api/routes/public/task_instances.py | 46 +-
.../api_fastapi/core_api/routes/public/xcom.py | 28 +-
.../api_fastapi/core_api/routes/ui/gantt.py | 14 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 81 +-
.../api_fastapi/core_api/services/public/assets.py | 12 +-
.../core_api/services/public/task_instances.py | 341 +++-
.../execution_api/datamodels/taskinstance.py | 12 +
.../execution_api/routes/task_instances.py | 22 +-
.../api_fastapi/execution_api/routes/xcoms.py | 4 +-
.../api_fastapi/execution_api/versions/__init__.py | 2 +
.../execution_api/versions/v2027_02_28.py | 12 +-
airflow-core/src/airflow/models/deadline.py | 9 +
airflow-core/src/airflow/models/serialized_dag.py | 44 +-
airflow-core/src/airflow/models/taskinstance.py | 38 +-
airflow-core/src/airflow/models/xcom.py | 7 +
.../serialization/definitions/baseoperator.py | 6 +
.../src/airflow/serialization/definitions/dag.py | 25 +-
.../airflow/serialization/definitions/deadline.py | 12 +-
.../serialization/definitions/mappedoperator.py | 8 +
airflow-core/src/airflow/serialization/encoders.py | 5 +
.../airflow/serialization/serialized_objects.py | 12 +-
airflow-core/src/airflow/ui/.oxlintrc.json | 611 +++++++
airflow-core/src/airflow/ui/eslint.config.js | 24 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 12 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 22 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 22 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 22 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 22 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 35 +
.../ui/openapi-gen/requests/services.gen.ts | 20 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 16 +-
airflow-core/src/airflow/ui/package.json | 12 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 1764 ++++++++++----------
.../airflow/ui/public/i18n/locales/en/dags.json | 1 +
.../airflow/ui/public/i18n/locales/he/admin.json | 2 +
.../airflow/ui/public/i18n/locales/he/browse.json | 2 +
.../airflow/ui/public/i18n/locales/he/common.json | 15 +-
.../ui/public/i18n/locales/he/components.json | 11 +
.../src/airflow/ui/public/i18n/locales/he/dag.json | 36 +-
.../airflow/ui/public/i18n/locales/he/dags.json | 2 +
.../ui/public/i18n/locales/he/dashboard.json | 1 +
.../airflow/ui/public/i18n/locales/he/hitl.json | 1 +
.../ui/public/i18n/locales/zh-CN/admin.json | 2 +
.../ui/public/i18n/locales/zh-CN/browse.json | 2 +
.../ui/public/i18n/locales/zh-CN/common.json | 52 +-
.../ui/public/i18n/locales/zh-CN/components.json | 13 +
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 63 +-
.../airflow/ui/public/i18n/locales/zh-CN/dags.json | 14 +-
.../ui/public/i18n/locales/zh-CN/dashboard.json | 1 +
.../airflow/ui/public/i18n/locales/zh-CN/hitl.json | 1 +
.../airflow-plugin/index.js} | 16 +-
.../airflow-plugin/no-react-namespace-types.js | 59 +
.../no-react-namespace-types.test.js | 49 +-
airflow-core/src/airflow/ui/rules/core.js | 71 -
airflow-core/src/airflow/ui/rules/i18n.js | 167 --
airflow-core/src/airflow/ui/rules/i18next.js | 68 -
airflow-core/src/airflow/ui/rules/jsonc.js | 45 -
airflow-core/src/airflow/ui/rules/levels.js | 3 -
airflow-core/src/airflow/ui/rules/off.js | 29 -
airflow-core/src/airflow/ui/rules/perfectionist.js | 146 --
.../src/airflow/ui/rules/plugin-patch.d.ts | 4 -
airflow-core/src/airflow/ui/rules/react.js | 7 -
airflow-core/src/airflow/ui/rules/rem.js | 146 --
airflow-core/src/airflow/ui/rules/stylistic.js | 90 -
airflow-core/src/airflow/ui/rules/typescript.js | 150 +-
airflow-core/src/airflow/ui/rules/unicorn.js | 21 +-
.../components/ActionAccordion/ActionAccordion.tsx | 9 +-
.../ui/src/components/ActionAccordion/columns.tsx | 18 +-
.../ui/src/components/Assets/AssetEvent.test.tsx | 33 +
.../ui/src/components/Assets/AssetEvent.tsx | 11 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 11 +
.../ClearTaskInstanceDialog.dependentDags.test.tsx | 137 ++
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 11 +
.../ui/src/components/DagImportErrorDetails.tsx | 2 +-
.../ui/src/components/DagImportErrorModal.test.tsx | 15 +-
.../airflow/ui/src/components/GraphTaskFilters.tsx | 2 +-
.../components/PluginActions/PluginReactAction.tsx | 6 +-
.../ui/src/components/ReactMarkdownBlocks.tsx | 4 +-
.../ui/src/layouts/Details/Gantt/Gantt.test.tsx | 19 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 4 +
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 3 +-
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 1 +
.../Dashboard/Stats/DagImportErrorsModal.test.tsx | 59 +
.../pages/Dashboard/Stats/DagImportErrorsModal.tsx | 2 +-
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 4 +-
.../ui/src/pages/Task/Overview/Overview.tsx | 6 +-
.../ui/src/queries/useGridTISummaries.test.tsx | 72 +
.../airflow/ui/src/queries/useGridTISummaries.ts | 25 +-
airflow-core/src/airflow/ui/src/utils/links.ts | 16 +-
airflow-core/src/airflow/ui/tsconfig.dev.json | 2 +-
.../core_api/routes/public/test_assets.py | 61 +-
.../core_api/routes/public/test_dag_run.py | 2 +
.../core_api/routes/public/test_task_instances.py | 169 +-
.../core_api/routes/public/test_xcom.py | 21 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 245 +++
.../services/public/test_task_instances.py | 361 +++-
.../versions/head/test_task_instances.py | 57 +-
.../execution_api/versions/head/test_xcoms.py | 20 +-
airflow-core/tests/unit/models/test_deadline.py | 13 +-
.../tests/unit/models/test_deadline_alert.py | 57 +-
.../tests/unit/models/test_serialized_dag.py | 64 +-
.../tests/unit/models/test_taskinstance.py | 167 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 11 +-
airflow-e2e-tests/pyproject.toml | 2 +-
contributing-docs/15_node_environment_setup.rst | 5 +-
contributing-docs/25_maintainer_pr_triage.md | 2 +-
.../33_agent_assisted_contribution.md | 59 +
contributing-docs/README.rst | 3 +
dev/README_RELEASE_AIRFLOWCTL.md | 14 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 14 +-
.../src/airflow_breeze/commands/ui_commands.py | 7 +-
.../files/hardened_os_deps_image_digests.json | 24 +-
.../files/hardened_python_image_digests.json | 8 +-
dev/breeze/uv.lock | 36 +-
dev/verify_airflow_ctl_rc.sh | 16 +-
dev/verify_python_client_rc.sh | 17 +-
devel-common/pyproject.toml | 2 +-
generated/PYPI_README.md | 18 +-
go-sdk/airflow/enums_test.go | 14 +-
go-sdk/pkg/execution/genmodels/models.gen.go | 80 +-
go-sdk/schema/supervisor-schema.json | 45 +
java-sdk/DEVELOPMENT.md | 15 +-
providers/amazon/README.rst | 4 +-
providers/amazon/docs/index.rst | 4 +-
providers/amazon/pyproject.toml | 4 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 1 -
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 13 +
providers/common/ai/docs/changelog.rst | 10 +
providers/common/ai/docs/durable_execution.rst | 48 +-
providers/common/ai/docs/frameworks/index.rst | 3 +-
.../common/ai/docs/frameworks/openai_agents.rst | 127 +-
providers/common/ai/docs/operators/agent.rst | 6 +-
providers/common/ai/docs/toolsets/custom.rst | 5 +-
providers/common/ai/docs/toolsets/index.rst | 4 +
providers/common/ai/docs/troubleshooting.rst | 8 +-
.../airflow/providers/common/ai/durable/base.py | 7 +-
.../providers/common/ai/durable/capability.py | 137 +-
.../airflow/providers/common/ai/durable/journal.py | 135 +-
.../providers/common/ai/durable/openai_agents.py | 279 +++-
.../providers/common/ai/durable/replay_usage.py | 3 +-
.../airflow/providers/common/ai/durable/storage.py | 28 +-
...urable.py => example_openai_agents_approval.py} | 66 +-
.../src/airflow/providers/common/ai/exceptions.py | 18 +-
.../airflow/providers/common/ai/operators/agent.py | 11 +-
.../airflow/providers/common/ai/tools/__init__.py | 41 +-
.../providers/common/ai/tools/_from_toolset.py | 244 ++-
.../src/airflow/providers/common/ai/tools/adk.py | 10 +-
.../airflow/providers/common/ai/tools/anthropic.py | 12 +-
.../providers/common/ai/tools/claude_agent_sdk.py | 10 +-
.../providers/common/ai/tools/openai_agents.py | 61 +-
.../airflow/providers/common/ai/tools/strands.py | 10 +-
.../unit/common/ai/durable/test_capability.py | 351 +++-
.../tests/unit/common/ai/durable/test_journal.py | 73 +
.../unit/common/ai/durable/test_openai_agents.py | 812 ++++++++-
.../tests/unit/common/ai/durable/test_storage.py | 73 +
.../unit/common/ai/tools/test__from_toolset.py | 54 +-
.../unit/common/ai/tools/test_claude_agent_sdk.py | 8 +
.../unit/common/ai/tools/test_openai_agents.py | 12 +-
.../ai/tests/unit/common/ai/tools/test_tools.py | 225 ++-
providers/hashicorp/docs/index.rst | 2 +-
providers/hashicorp/pyproject.toml | 2 +-
.../providers/standard/sensors/external_task.py | 90 +-
.../unit/standard/sensors/test_external_task.py | 169 +-
scripts/ci/prek/check_i18n_json.py | 65 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/ts_compile_lint_ui.py | 5 +-
scripts/tests/ci/prek/test_check_i18n_json.py | 98 ++
task-sdk/docs/api.rst | 10 +
task-sdk/src/airflow/sdk/__init__.py | 3 +
task-sdk/src/airflow/sdk/__init__.pyi | 2 +
task-sdk/src/airflow/sdk/api/client.py | 3 +
.../src/airflow/sdk/api/datamodels/_generated.py | 17 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 15 +
.../src/airflow/sdk/definitions/external_clear.py | 96 ++
.../src/airflow/sdk/definitions/mappedoperator.py | 9 +-
.../airflow/sdk/execution_time/schema/schema.json | 45 +
.../sdk/execution_time/schema/versions/__init__.py | 2 +
.../execution_time/schema/versions/v2027_02_28.py | 17 +-
.../src/airflow/sdk/execution_time/supervisor.py | 1 +
.../src/airflow/sdk/execution_time/task_runner.py | 24 +
task-sdk/tests/task_sdk/api/test_client.py | 27 +
.../task_sdk/definitions/test_mappedoperator.py | 37 +
.../task_sdk/execution_time/test_supervisor.py | 13 +
.../task_sdk/execution_time/test_task_runner.py | 94 ++
ts-sdk/schema/supervisor-schema.json | 45 +
ts-sdk/src/generated/supervisor.ts | 125 +-
uv.lock | 280 ++--
217 files changed, 8608 insertions(+), 2606 deletions(-)
create mode 100644 airflow-core/newsfragments/71850.bugfix.rst
create mode 100644 airflow-core/newsfragments/75874.significant.rst
create mode 100644 airflow-core/src/airflow/ui/.oxlintrc.json
copy airflow-core/src/airflow/ui/{src/hooks/useShowTeam.ts =>
rules/airflow-plugin/index.js} (71%)
create mode 100644
airflow-core/src/airflow/ui/rules/airflow-plugin/no-react-namespace-types.js
copy
java-sdk/sdk/src/test/kotlin/org/apache/airflow/example/DagSourceFixtures.kt =>
airflow-core/src/airflow/ui/rules/airflow-plugin/no-react-namespace-types.test.js
(51%)
delete mode 100644 airflow-core/src/airflow/ui/rules/i18n.js
delete mode 100644 airflow-core/src/airflow/ui/rules/i18next.js
delete mode 100644 airflow-core/src/airflow/ui/rules/jsonc.js
delete mode 100644 airflow-core/src/airflow/ui/rules/off.js
delete mode 100644 airflow-core/src/airflow/ui/rules/perfectionist.js
delete mode 100644 airflow-core/src/airflow/ui/rules/rem.js
delete mode 100644 airflow-core/src/airflow/ui/rules/stylistic.js
create mode 100644
airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.dependentDags.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/DagImportErrorsModal.test.tsx
create mode 100644 contributing-docs/33_agent_assisted_contribution.md
copy
providers/common/ai/src/airflow/providers/common/ai/example_dags/{example_openai_agents_durable.py
=> example_openai_agents_approval.py} (52%)
create mode 100644 scripts/tests/ci/prek/test_check_i18n_json.py
create mode 100644 task-sdk/src/airflow/sdk/definitions/external_clear.py