This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a change to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 89fd6c5267e Make /mnt writeable in publish-docs workflow back (#55450)
new 4f775a3d298 feat(i18n): Fill Turkish translation gaps (#55424)
new ff2ad0c5093 Bump trove-classifiers from 2025.9.8.13 to 2025.9.9.12
(#55418)
new c9c906dacf3 Bump trove-classifiers from 2025.9.8.13 to 2025.9.9.12 in
/airflow-core (#55421)
new c4749430a35 Complete Hebrew translation 2025-09-09 (#55383)
new 19d499d3fa7 i18n(ko): add missing translations (#55379)
new 351a79c2f32 Fix the misalignment of gantt view progress bars (#55061)
(#55291)
new 4673170d6c7 Add react-dom to default plugin external libraries (#55451)
new 00d5a974649 Update templating support in Deadline Alert docs (#55429)
new 54548996d9c Update color palette and leverage Chakra semantic tokens
(#53981)
new 56511d7ab94 fix(i18n): move the filter translation for Taiwanese
Mandarin nad Mandarin Chinese (#55472)
new 5a4d62220ef fix(NeedReviewButton): link to
required_actions?response_received=false instead (#55483)
new c1212713725 Adjust React Template color scheme after merge of PR 53981
(#55486)
new e49722e4473 Disable backporting label auto-adding (#55461)
new a738cc1bf95 CI: Bump UV and Ruff (#55480)
new dc225688b20 Fix min version of keycloak after it's been released
(#55491)
new ef0b144661e Differentiate between triggers and watchers currently
running for better visibility. (#55376)
new 2644c3baf96 [RFC] Feat(ui): Add portuguese translation + CODEOWNER
(#52341)
new bfb8f60506c Close French Translation Gap (#55482)
new 73ff74a4848 Add reusable FilterBar component for date, number, text
input (#54895)
new 2f35605d942 Make the "Toggle Source" log display only hide source
fields, not all fields (#55474)
new a8f3ed210b6 Update 3.1.0 release notes based on latest cherry-picks
The 21 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/CODEOWNERS | 1 +
.github/actions/install-prek/action.yml | 2 +-
.github/boring-cyborg.yml | 37 +-
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.pre-commit-config.yaml | 2 +-
Dockerfile | 2 +-
Dockerfile.ci | 2 +-
RELEASE_NOTES.rst | 22 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/conf.py | 12 +-
airflow-core/docs/core-concepts/dags.rst | 4 +-
airflow-core/docs/howto/deadline-alerts.rst | 39 +-
airflow-core/pyproject.toml | 2 +-
.../auth/managers/simple/ui/src/login/Login.tsx | 126 ++---
.../managers/simple/ui/src/login/LoginForm.tsx | 6 +-
.../auth/managers/simple/ui/src/main.tsx | 5 +-
.../auth/managers/simple/ui/src/theme.ts | 407 ++++++++++++++++
.../src/airflow/jobs/triggerer_job_runner.py | 7 +-
.../airflow/ui/public/i18n/locales/en/common.json | 13 +-
.../airflow/ui/public/i18n/locales/fr/admin.json | 8 +
.../airflow/ui/public/i18n/locales/fr/common.json | 32 +-
.../ui/public/i18n/locales/fr/components.json | 7 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 41 +-
.../ui/public/i18n/locales/fr/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/fr/hitl.json | 12 +
.../airflow/ui/public/i18n/locales/fr/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/he/admin.json | 2 +-
.../airflow/ui/public/i18n/locales/he/common.json | 4 +-
.../src/airflow/ui/public/i18n/locales/he/dag.json | 3 +-
.../airflow/ui/public/i18n/locales/ko/common.json | 7 +
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 5 +-
.../airflow/ui/public/i18n/locales/ko/hitl.json | 3 +
.../airflow/ui/public/i18n/locales/pt/admin.json | 183 ++++++++
.../airflow/ui/public/i18n/locales/pt/assets.json | 30 ++
.../airflow/ui/public/i18n/locales/pt/browse.json | 26 ++
.../airflow/ui/public/i18n/locales/pt/common.json | 343 ++++++++++++++
.../ui/public/i18n/locales/pt/components.json | 150 ++++++
.../src/airflow/ui/public/i18n/locales/pt/dag.json | 162 +++++++
.../airflow/ui/public/i18n/locales/pt/dags.json | 97 ++++
.../ui/public/i18n/locales/pt/dashboard.json | 49 ++
.../airflow/ui/public/i18n/locales/pt/hitl.json | 38 ++
.../airflow/ui/public/i18n/locales/pt/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/tr/common.json | 4 +-
.../src/airflow/ui/public/i18n/locales/tr/dag.json | 3 +-
.../ui/public/i18n/locales/zh-CN/common.json | 12 +-
.../ui/public/i18n/locales/zh-TW/common.json | 13 +-
.../src/components/AssetExpression/AssetNode.tsx | 2 +-
.../ui/src/components/Assets/AssetEvents.tsx | 2 +-
.../ui/src/components/Banner/BackfillBanner.tsx | 8 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 2 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 2 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 2 +-
.../ui/src/components/ConfirmationModal.tsx | 2 +-
.../src/components/DagActions/DeleteDagButton.tsx | 2 +-
.../components/DagActions/FavoriteDagButton.tsx | 2 +-
.../src/components/DagActions/RunBackfillForm.tsx | 8 +-
.../components/DataTable/ToggleTableDisplay.tsx | 10 +-
.../src/airflow/ui/src/components/DeleteDialog.tsx | 2 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 2 +-
.../airflow/ui/src/components/DurationChart.tsx | 27 +-
.../ui/src/components/EditableMarkdownButton.tsx | 6 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 172 +++++++
.../ui/src/components/FilterBar/FilterPill.tsx | 161 +++++++
.../components/FilterBar/defaultIcons.tsx} | 14 +-
.../components/FilterBar/filters/DateFilter.tsx | 54 +++
.../components/FilterBar/filters/NumberFilter.tsx | 112 +++++
.../FilterBar/filters/TextSearchFilter.tsx | 63 +++
.../Dag/Calendar => components/FilterBar}/index.ts | 12 +-
.../airflow/ui/src/components/FilterBar/types.ts | 53 +++
.../ui/src/components/FlexibleForm/FieldBool.tsx | 2 +-
.../ui/src/components/Graph/DownloadButton.tsx | 5 +-
.../src/airflow/ui/src/components/Graph/Edge.tsx | 9 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 10 +-
.../src/airflow/ui/src/components/HeaderCard.tsx | 3 +-
.../src/airflow/ui/src/components/JsonEditor.tsx | 2 +-
.../src/components/MarkAs/Run/MarkRunAsDialog.tsx | 2 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 2 +-
.../ui/src/components/NeedsReviewButton.tsx | 2 +-
.../src/airflow/ui/src/components/PoolBar.tsx | 3 +-
.../ui/src/components/QuickFilterButton.tsx | 3 +-
.../airflow/ui/src/components/ReactMarkdown.tsx | 11 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 4 +-
.../src/components/SearchDags/SearchDagsButton.tsx | 8 +-
.../airflow/ui/src/components/TaskTrySelect.tsx | 2 +-
.../src/airflow/ui/src/components/TogglePause.tsx | 2 +-
.../airflow/ui/src/components/TrendCountButton.tsx | 12 +-
.../src/components/TriggerDag/TriggerDAGButton.tsx | 3 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 4 +-
.../src/components/TriggerDag/TriggerDAGModal.tsx | 2 +-
.../ui/src/components/renderStructuredLog.tsx | 25 +-
.../airflow/ui/src/components/ui/ActionButton.tsx | 2 +-
.../src/airflow/ui/src/components/ui/Clipboard.tsx | 2 +-
.../ui/src/components/ui/InputWithAddon.tsx | 68 +++
.../ui/src/components/ui/SegmentedControl.tsx | 12 +-
.../ui/src/components/ui/Toaster/Toaster.tsx | 2 +-
.../src/airflow/ui/src/components/ui/index.ts | 1 +
.../src/airflow/ui/src/constants/filterConfigs.tsx | 97 ++++
airflow-core/src/airflow/ui/src/i18n/config.ts | 1 +
.../ui/src/layouts/Details/DetailsLayout.tsx | 2 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 29 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 14 +-
.../airflow/ui/src/layouts/Details/Grid/Bar.tsx | 8 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 4 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 6 +-
.../src/airflow/ui/src/layouts/Details/NavTabs.tsx | 9 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 11 +-
.../ui/src/layouts/Nav/LanguageSelector.tsx | 10 +
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/NavButton.tsx | 18 +-
.../src/airflow/ui/src/pages/Asset/AssetGraph.tsx | 4 +-
.../ui/src/pages/Asset/CreateAssetEvent.tsx | 2 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 4 +-
.../src/pages/Connections/AddConnectionButton.tsx | 2 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 6 +-
.../ui/src/pages/Connections/Connections.tsx | 4 +-
.../pages/Connections/DeleteConnectionButton.tsx | 5 +-
.../pages/Connections/DeleteConnectionsButton.tsx | 10 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 12 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 10 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 24 +-
.../pages/Dag/Calendar/CalendarTooltipContent.tsx | 68 +++
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 18 +-
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 17 +-
.../Dag/Calendar/richTooltipUtils.ts} | 43 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 1 -
.../Dag/Tasks/TaskFilters/AttrSelectFilter.tsx | 2 +-
.../Tasks/TaskFilters/AttrSelectFilterMulti.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 4 +-
.../pages/DagsList/DagsFilters/FavoriteFilter.tsx | 2 +-
.../pages/DagsList/DagsFilters/PausedFilter.tsx | 2 +-
.../src/pages/DagsList/DagsFilters/TagFilter.tsx | 2 +-
.../Dashboard/FavoriteDags/FavoriteDagCard.tsx | 2 +-
.../pages/Dashboard/FavoriteDags/FavoriteDags.tsx | 2 +-
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 2 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 2 +-
.../pages/Dashboard/PoolSummary/PoolSummary.tsx | 2 +-
.../airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 2 +-
.../src/airflow/ui/src/pages/DeleteRunButton.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Error.tsx | 4 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 4 +-
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 4 +-
.../airflow/ui/src/pages/Pools/AddPoolButton.tsx | 2 +-
.../ui/src/pages/Pools/DeletePoolButton.tsx | 2 +-
.../src/airflow/ui/src/pages/Pools/PoolBarCard.tsx | 4 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 4 +-
.../ui/src/pages/TaskInstance/ExtraLinks.tsx | 2 +-
.../pages/TaskInstance/Logs/ExternalLogLink.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 33 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 4 +-
.../TaskInstances/DeleteTaskInstanceButton.tsx | 2 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 2 +-
.../src/pages/Variables/DeleteVariablesButton.tsx | 5 +-
.../src/pages/Variables/ImportVariablesButton.tsx | 2 +-
.../ui/src/pages/Variables/ImportVariablesForm.tsx | 6 +-
.../Variables/ManageVariable/AddVariableButton.tsx | 2 +-
.../ManageVariable/DeleteVariableButton.tsx | 5 +-
.../Variables/ManageVariable/VariableForm.tsx | 2 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 11 +-
.../src/airflow/ui/src/pages/XCom/XComFilters.tsx | 236 +++-------
airflow-core/src/airflow/ui/src/theme.ts | 510 +++++++++++++++------
airflow-core/src/airflow/ui/src/utils/TrimText.tsx | 2 +-
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
airflow-core/src/airflow/ui/src/utils/slots.tsx | 10 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 75 +++
airflow-core/src/airflow/ui/testsSetup.ts | 41 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 26 ++
chart/docs/conf.py | 6 +-
dev/breeze/doc/ci/02_images.md | 2 +-
.../commands/release_management_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
dev/i18n/check_translations_completeness.py | 1 +
.../react_plugin_template/package.json | 2 +-
.../react_plugin_template/src/pages/HomePage.tsx | 2 +-
.../react_plugin_template/src/theme.ts | 510 +++++++++++++++------
.../react_plugin_template/vite.config.ts | 1 +
devel-common/pyproject.toml | 2 +-
docker-stack-docs/conf.py | 3 +-
providers-summary-docs/conf.py | 6 +-
pyproject.toml | 8 +-
reproducible_build.yaml | 4 +-
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/tools/setup_breeze | 2 +-
185 files changed, 4024 insertions(+), 881 deletions(-)
create mode 100644
airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/src/theme.ts
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/fr/tasks.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/pt/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/pt/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/pt/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/tasks.json
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/FilterPill.tsx
copy airflow-core/src/airflow/ui/{rules/levels.js =>
src/components/FilterBar/defaultIcons.tsx} (70%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/NumberFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/TextSearchFilter.tsx
copy airflow-core/src/airflow/ui/src/{pages/Dag/Calendar =>
components/FilterBar}/index.ts (71%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/types.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/ui/InputWithAddon.tsx
create mode 100644 airflow-core/src/airflow/ui/src/constants/filterConfigs.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltipContent.tsx
copy airflow-core/src/airflow/ui/src/{components/Stat.tsx =>
pages/Dag/Calendar/richTooltipUtils.ts} (56%)
create mode 100644 airflow-core/src/airflow/ui/src/utils/useFiltersHandler.ts