This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 43058e2344b Type Backfill.duration expression against the class
add e26dcc0e005 Fix Hive invalid-port tests after core connection port
validation (#75119)
add 486f8368e21 Pass runtime values to example Dag shell commands through
env (#73787)
add 173442e7951 Add non serializable asset's extra to openlineage e2e
tests (#75094)
add e3110a3092d Fix `Trigger.clean_unused` rejecting a caller-provided
session (#75096)
add 9a62eadd2e3 Update providers metadata 2026-10-19 (#75120)
add 7fbcfeea272 UI: Replace stacked Dag header banners with inline status
(#74516)
add a27cd335152 Count declared integrations in the Registry homepage
Integrations stat (#74862)
add edcd4a50335 Hide assets the caller may not read from the UI
dependencies graph (#73008)
add f04f123b2cc Prevent Dag processor crashes with AWS CloudWatch when its
log directory is outside `base_log_folder` (#74929)
add 33e6b5f1fa9 Mock the simple auth manager in the upstream asset events
permission test (#75126)
add 604b23bb206 Document that the HITL operator body is rendered as
Markdown (#75130)
add 941316b4640 Stop UI unit tests from leaking requests to the network
(#75084)
add ac0c20c6ae3 Mock the simple auth manager in permission tests and guard
against the base-class patch (#75138)
add f20ff2cfa7a Add a Duplicate action to the Connections list (#75110)
add 4bbe5f56ce8 Mask CLI secrets in the audit log by parsed argument, not
argv position (#72650)
add c1b25527a41 Keep parent DAG folders collapsed after one click (#75079)
add c581c186987 Keep DAG folder selection distinct across bundle names
(#75080)
add b8db2af9cd6 Fix 500 when ordering the Dag list by state or start_date
(#75025)
add 08935faa78c Merge branch 'main' into ci-upgrade-main
No new revisions were added by this update.
Summary of changes:
.pre-commit-config.yaml | 14 +
airflow-core/docs/tutorial/hitl.rst | 28 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 4 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 4 +-
.../api_fastapi/core_api/routes/public/dags.py | 2 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 2 +-
.../api_fastapi/core_api/routes/ui/dependencies.py | 20 +-
.../core_api/services/ui/dependencies.py | 74 +-
.../airflow/example_dags/example_dag_decorator.py | 20 +-
.../src/airflow/jobs/triggerer_job_runner.py | 7 +-
airflow-core/src/airflow/models/trigger.py | 31 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 4 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 4 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 4 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 4 +-
.../ui/openapi-gen/requests/services.gen.ts | 4 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 4 +-
.../airflow/ui/public/i18n/locales/en/admin.json | 2 +
.../components/BackfillInProgressBadge.test.tsx | 68 ++
.../ui/src/components/BackfillInProgressBadge.tsx | 63 ++
.../src/components/Banner/BackfillBanner.test.tsx | 94 ---
.../ui/src/components/Banner/BackfillBanner.tsx | 150 -----
.../src/components/Banner/DrainingBanner.test.tsx | 88 ---
.../ui/src/components/Banner/DrainingBanner.tsx | 68 --
.../src/airflow/ui/src/components/Banner/index.tsx | 21 -
.../TaskInstance/ClearTaskInstanceDialog.test.tsx | 15 +-
...Banner.test.tsx => DagDeactivatedChip.test.tsx} | 35 +-
...eactivatedBanner.tsx => DagDeactivatedChip.tsx} | 43 +-
.../ui/src/components/DagImportErrorModal.tsx | 27 +-
.../ui/src/components/DrainingBadge.test.tsx | 72 ++
.../airflow/ui/src/components/DrainingBadge.tsx | 59 +-
.../src/airflow/ui/src/components/HeaderCard.tsx | 8 +-
.../airflow/ui/src/components/NeedsReviewBadge.tsx | 18 +-
.../ui/src/components/NeedsReviewButton.tsx | 58 +-
.../src/components/NeedsReviewIndicator.test.tsx | 58 ++
.../ui/src/components/NeedsReviewIndicator.tsx | 71 ++
.../airflow/ui/src/components/NotePreview.test.tsx | 8 +-
.../src/airflow/ui/src/components/StatusChip.tsx | 67 ++
.../ui/src/layouts/Details/DagBreadcrumb.test.tsx | 4 +
.../ui/src/layouts/Details/DetailsLayout.tsx | 12 +-
.../ui/src/mocks/handlers/{config.ts => admin.ts} | 23 +-
.../src/airflow/ui/src/mocks/handlers/app.ts | 57 ++
.../src/airflow/ui/src/mocks/handlers/assets.ts | 8 +
.../src/airflow/ui/src/mocks/handlers/dag.ts | 53 ++
.../src/airflow/ui/src/mocks/handlers/dag_runs.ts | 23 +
.../src/airflow/ui/src/mocks/handlers/dags.ts | 3 +
.../src/airflow/ui/src/mocks/handlers/index.ts | 6 +
.../ui/src/mocks/handlers/task_instances.test.ts | 43 ++
.../ui/src/mocks/handlers/task_instances.ts | 100 +++
.../ui/{rules/levels.js => src/mocks/server.ts} | 14 +-
.../ui/src/pages/AssetsList/AssetsList.test.tsx | 15 +-
.../ui/src/pages/Connections/Connections.tsx | 2 +
.../Connections/DuplicateConnectionButton.test.tsx | 114 ++++
...ionButton.tsx => DuplicateConnectionButton.tsx} | 64 +-
.../ui/src/pages/Dag/Backfills/Backfills.test.tsx | 64 ++
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 97 ++-
.../airflow/ui/src/pages/Dag/DagHeader.test.tsx | 14 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 12 +-
.../ui/src/pages/Dag/RequiredActionsRoute.test.tsx | 14 +-
.../airflow/ui/src/pages/Dag/Tasks/Tasks.test.tsx | 12 +-
.../ui/src/pages/DagBundles/DagBundles.test.tsx | 15 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 2 +-
.../DagsList/DagFolderTree/DagFolderTree.test.tsx | 78 ++-
.../pages/DagsList/DagFolderTree/DagFolderTree.tsx | 6 +-
.../DagsList/DagFolderTree/buildFolderTree.ts | 3 +-
.../DagsList/DagsFilters/DagsFilters.test.tsx | 13 +-
.../ui/src/pages/DagsList/DagsList.test.tsx | 14 +-
.../ui/src/pages/DagsList/DagsListColumns.tsx | 2 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 10 +
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 7 +-
.../airflow/ui/src/pages/Run/Callbacks.test.tsx | 5 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 2 +-
.../ui/src/pages/TaskInstance/Header.test.tsx | 31 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 45 +-
.../ui/src/pages/TaskInstance/stateReason.ts | 8 +-
.../src/airflow/ui/src/pages/XCom/XCom.test.tsx | 14 +-
.../airflow/ui/src/pages/XCom/XComEntry.test.tsx | 8 +-
.../src/airflow/ui/src/queries/useDags.test.tsx | 9 +-
.../airflow/ui/src/queries/useTogglePause.test.tsx | 10 +-
.../airflow/ui/tests/e2e/specs/backfill.spec.ts | 12 +-
airflow-core/src/airflow/ui/testsSetup.ts | 37 +-
airflow-core/src/airflow/utils/cli.py | 391 +++++++++--
.../core_api/routes/public/test_dag_run.py | 2 +-
.../core_api/routes/public/test_dags.py | 12 +
.../api_fastapi/core_api/routes/ui/test_dags.py | 12 +
.../core_api/routes/ui/test_dependencies.py | 189 +++++-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 69 +-
airflow-core/tests/unit/models/test_trigger.py | 63 +-
airflow-core/tests/unit/utils/test_cli_util.py | 746 ++++++++++++++++++++-
generated/provider_metadata.json | 4 +
.../amazon/aws/log/cloudwatch_task_handler.py | 10 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 15 +
.../hive/tests/unit/apache/hive/hooks/test_hive.py | 10 +-
.../edge3/example_dags/integration_test.py | 5 +-
.../example_openlineage_base_complex_dag.py | 15 +-
.../openlineage_base_complex_dag__af2.json | 12 +-
.../openlineage_base_complex_dag__af3.json | 16 +-
.../example_dags/example_bash_decorator.py | 17 +-
.../standard/example_dags/example_bash_operator.py | 13 +-
registry/src/_data/statsData.js | 15 +-
registry/src/index.njk | 2 +-
scripts/ci/prek/check_auth_manager_mock_targets.py | 88 +++
.../ci/prek/check_example_dag_shell_commands.py | 266 ++++++++
.../prek/test_check_auth_manager_mock_targets.py | 88 +++
.../prek/test_check_example_dag_shell_commands.py | 137 ++++
105 files changed, 3637 insertions(+), 968 deletions(-)
create mode 100644
airflow-core/src/airflow/ui/src/components/BackfillInProgressBadge.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/BackfillInProgressBadge.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/Banner/BackfillBanner.test.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/Banner/BackfillBanner.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/Banner/DrainingBanner.test.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/Banner/DrainingBanner.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/components/Banner/index.tsx
rename
airflow-core/src/airflow/ui/src/components/{DagDeactivatedBanner.test.tsx =>
DagDeactivatedChip.test.tsx} (79%)
rename airflow-core/src/airflow/ui/src/components/{DagDeactivatedBanner.tsx =>
DagDeactivatedChip.tsx} (66%)
create mode 100644
airflow-core/src/airflow/ui/src/components/DrainingBadge.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/NeedsReviewIndicator.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/NeedsReviewIndicator.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/StatusChip.tsx
copy airflow-core/src/airflow/ui/src/mocks/handlers/{config.ts => admin.ts}
(51%)
create mode 100644 airflow-core/src/airflow/ui/src/mocks/handlers/app.ts
create mode 100644
airflow-core/src/airflow/ui/src/mocks/handlers/task_instances.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/mocks/handlers/task_instances.ts
copy airflow-core/src/airflow/ui/{rules/levels.js => src/mocks/server.ts} (60%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Connections/DuplicateConnectionButton.test.tsx
copy
airflow-core/src/airflow/ui/src/pages/Connections/{EditConnectionButton.tsx =>
DuplicateConnectionButton.tsx} (54%)
create mode 100755 scripts/ci/prek/check_auth_manager_mock_targets.py
create mode 100755 scripts/ci/prek/check_example_dag_shell_commands.py
create mode 100644
scripts/tests/ci/prek/test_check_auth_manager_mock_targets.py
create mode 100644
scripts/tests/ci/prek/test_check_example_dag_shell_commands.py