This is an automated email from the ASF dual-hosted git repository. msyavuz pushed a commit to branch msyavuz/chore/move-translator in repository https://gitbox.apache.org/repos/asf/superset.git
commit 1ed51d646f3e95bdbe00d15c605dd81c5b716ebc Merge: 2b5af36c83 2080633e57 Author: Mehmet Salih Yavuz <[email protected]> AuthorDate: Sat Jan 3 11:15:04 2026 +0300 Merge branch 'master' into msyavuz/chore/move-translator .envrc.example | 41 + .github/ISSUE_TEMPLATE/bug-report.yml | 2 +- .github/workflows/bashlib.sh | 13 + .github/workflows/pre-commit.yml | 2 +- .github/workflows/release.yml | 4 +- .github/workflows/showtime-cleanup.yml | 18 +- .github/workflows/superset-e2e.yml | 6 +- .github/workflows/superset-extensions-cli.yml | 2 +- .github/workflows/superset-frontend.yml | 30 +- .github/workflows/superset-playwright.yml | 4 +- .pre-commit-config.yaml | 2 +- .rat-excludes | 4 + CHANGELOG/6.0.0.md | 1062 + Makefile | 21 +- README.md | 19 +- RESOURCES/INTHEWILD.md | 226 - RESOURCES/INTHEWILD.yaml | 653 + UPDATING.md | 51 +- docker-compose.yml | 26 +- docker/.env | 9 + docker/.env-local.example | 39 + docker/README.md | 28 + docs/.gitignore | 3 + .../contributing/development-setup.md | 33 + docs/developer_portal/extensions/architecture.md | 14 +- .../extensions/components/alert.mdx | 131 + .../extensions/components/index.mdx | 93 + .../extensions/contribution-types.md | 2 +- docs/developer_portal/extensions/dependencies.md | 166 + docs/developer_portal/extensions/deployment.md | 2 +- docs/developer_portal/extensions/development.md | 72 +- docs/developer_portal/extensions/mcp.md | 2 +- docs/developer_portal/extensions/overview.md | 1 + docs/developer_portal/extensions/quick-start.md | 2 +- docs/developer_portal/extensions/registry.md | 17 +- docs/developer_portal/extensions/security.md | 2 +- .../guidelines/backend-style-guidelines.md | 36 +- .../guidelines/backend/dao-style-guidelines.md | 24 +- .../guidelines/design-guidelines.md | 131 +- .../guidelines/frontend-style-guidelines.md | 42 +- .../frontend/component-style-guidelines.md | 250 +- .../frontend/emotion-styling-guidelines.md | 425 +- .../guidelines/frontend/testing-guidelines.md | 297 - docs/developer_portal/sidebars.js | 1 + .../developer_portal/testing/testing-guidelines.md | 129 + docs/docs/configuration/databases.mdx | 15 + docs/docs/configuration/sql-templating.mdx | 52 +- docs/docs/contributing/development.mdx | 14 + docs/docusaurus.config.ts | 23 +- docs/package.json | 38 +- docs/plugins/remark-localize-badges.mjs | 286 + docs/scripts/generate-extension-components.mjs | 676 + docs/sidebarTutorials.js | 49 +- docs/src/pages/inTheWild.tsx | 165 + docs/src/pages/index.tsx | 104 +- docs/src/theme/ReactLiveScope/index.tsx | 53 + docs/src/theme/Root.js | 238 +- .../src/types/apache-superset-core/index.d.ts | 20 +- .../Column/index.js => docs/src/types/yaml.d.ts | 11 +- docs/src/webpack.extend.ts | 16 + .../{api_explorer.png => api-explorer.png} | Bin docs/static/img/extensions/gsheets-export.png | Bin 0 -> 387654 bytes docs/static/img/extensions/parquet-export.png | Bin 0 -> 62473 bytes docs/static/img/extensions/query-comparison.png | Bin 0 -> 611336 bytes docs/static/img/extensions/query-estimator.png | Bin 0 -> 443733 bytes docs/static/img/extensions/result-stats.png | Bin 0 -> 403058 bytes ...flow_visualizer.png => sql-flow-visualizer.png} | Bin docs/static/img/extensions/sql-snippets.png | Bin 0 -> 366481 bytes docs/static/img/logos/preset.svg | Bin 0 -> 3622 bytes docs/static/img/logos/vlmedia.svg | Bin 0 -> 10468 bytes docs/static/llms.txt | 64 + docs/tsconfig.json | 24 +- .../version-6.0.0/configuration/sql-templating.mdx | 52 +- .../version-6.0.0/contributing/development.mdx | 14 + docs/yarn.lock | 867 +- pyproject.toml | 9 +- requirements/base.txt | 3 +- requirements/development.txt | 86 +- scripts/docker-compose-up.sh | 171 + superset-core/pyproject.toml | 2 +- superset-core/src/superset_core/api/models.py | 96 +- superset-core/src/superset_core/api/types.py | 177 + .../src/superset_core/extensions/types.py | 233 +- .../src/superset_extensions_cli/cli.py | 62 +- .../templates/.gitignore.j2 | 36 + .../templates/extension.json.j2 | 4 +- superset-extensions-cli/tests/test_cli_build.py | 43 +- superset-extensions-cli/tests/test_cli_dev.py | 12 +- superset-extensions-cli/tests/test_cli_init.py | 34 +- superset-extensions-cli/tests/test_templates.py | 2 +- superset-extensions-cli/tests/utils.py | 2 +- superset-frontend/.gitignore | 3 + superset-frontend/.storybook/main.js | 61 +- superset-frontend/.storybook/preview.jsx | 3 +- .../test-runner.ts} | 40 +- .../cypress/e2e/chart_list/list.test.ts | 12 +- superset-frontend/cypress-base/package-lock.json | 354 +- superset-frontend/cypress-base/package.json | 5 + superset-frontend/jest.config.js | 2 +- superset-frontend/package-lock.json | 81824 +++++++++---------- superset-frontend/package.json | 96 +- .../packages/superset-core/package.json | 8 +- .../src/ui/components/Alert/Alert.stories.tsx | 11 +- .../src/shared-controls/sharedControls.tsx | 2 +- .../packages/superset-ui-core/package.json | 17 +- .../src/chart/components/createLoadableRenderer.ts | 3 +- .../src/components/AsyncAceEditor/index.tsx | 15 +- .../src/components/CodeEditor/index.tsx | 6 +- .../src/components/DesignSystem.stories.tsx | 117 +- .../src/components/Icons/AntdEnhanced.tsx | 2 + .../src/components/ListViewCard/ImageLoader.tsx | 6 +- .../ListViewCard/ListViewCard.stories.tsx | 61 +- .../src/components/Table/VirtualTable.tsx | 5 +- .../TableCollection/TableCollection.test.tsx | 83 + .../src/components/TableCollection/index.tsx | 4 +- .../superset-ui-core/src/components/Tabs/Tabs.tsx | 5 +- .../superset-ui-core/src/connection/types.ts | 27 +- .../superset-ui-core/src/query/api/legacy/types.ts | 6 +- .../superset-ui-core/src/query/types/Query.ts | 4 +- .../src/query/types/QueryResponse.ts | 3 +- .../superset-ui-core/src/utils/featureFlags.ts | 1 + .../superset-ui-core/types/react-table-config.d.ts | 24 +- .../packages/superset-ui-demo/.storybook/main.js | 15 +- .../packages/superset-ui-demo/package.json | 16 +- .../storybook/stories/ExampleApp.stories.jsx | 3 +- superset-frontend/playwright.config.ts | 31 +- .../playwright/components/core/Modal.ts | 118 + .../playwright/components/core/Table.ts | 102 + .../playwright/components/core/Toast.ts | 105 + .../playwright/components/core/index.ts | 2 + .../components/modals/DeleteConfirmationModal.ts | 75 + .../components/modals/DuplicateDatasetModal.ts | 73 + .../components/{core => modals}/index.ts | 7 +- superset-frontend/playwright/global-setup.ts | 93 + .../playwright/helpers/api/database.ts | 79 + .../playwright/helpers/api/dataset.ts | 133 + .../playwright/helpers/api/requests.ts | 193 + superset-frontend/playwright/pages/AuthPage.ts | 74 +- .../playwright/pages/DatasetListPage.ts | 115 + superset-frontend/playwright/pages/ExplorePage.ts | 88 + .../playwright/tests/auth/login.spec.ts | 113 +- .../playwright/tests/experimental/README.md | 112 +- .../experimental/dataset/dataset-list.spec.ts | 254 + .../playwright/utils/{urls.ts => constants.ts} | 29 +- superset-frontend/playwright/utils/urls.ts | 11 + .../legacy-plugin-chart-calendar/package.json | 2 +- .../plugins/legacy-plugin-chart-chord/package.json | 2 +- .../legacy-plugin-chart-country-map/package.json | 2 +- .../legacy-plugin-chart-horizon/package.json | 2 +- .../legacy-plugin-chart-world-map/package.json | 2 +- .../legacy-preset-chart-deckgl/package.json | 16 +- .../src/layers/Geojson/Geojson.test.ts | 121 + .../src/layers/Geojson/Geojson.tsx | 151 +- .../src/layers/Geojson/controlPanel.ts | 265 +- .../src/layers/Scatter/buildQuery.ts | 3 +- .../src/utilities/Shared_DeckGL.tsx | 2 +- .../src/utilities/controls.ts | 1 + .../plugins/legacy-preset-chart-nvd3/package.json | 4 +- .../plugin-chart-ag-grid-table/package.json | 5 +- .../src/utils/useColDefs.ts | 21 +- .../plugins/plugin-chart-echarts/package.json | 4 +- .../plugin-chart-echarts/src/BigNumber/types.ts | 3 +- .../plugin-chart-echarts/src/BoxPlot/types.ts | 3 +- .../plugin-chart-echarts/src/Bubble/types.ts | 3 +- .../plugin-chart-echarts/src/Funnel/types.ts | 3 +- .../plugin-chart-echarts/src/Gantt/types.ts | 3 +- .../plugin-chart-echarts/src/Gauge/types.ts | 3 +- .../plugin-chart-echarts/src/Graph/types.ts | 3 +- .../src/MixedTimeseries/types.ts | 3 +- .../plugins/plugin-chart-echarts/src/Pie/types.ts | 3 +- .../plugin-chart-echarts/src/Radar/types.ts | 3 +- .../src/Sunburst/controlPanel.tsx | 4 +- .../plugin-chart-echarts/src/Sunburst/types.ts | 3 +- .../plugin-chart-echarts/src/Timeseries/types.ts | 3 +- .../plugins/plugin-chart-echarts/src/Tree/types.ts | 3 +- .../plugin-chart-echarts/src/Treemap/types.ts | 3 +- .../plugin-chart-echarts/src/utils/series.ts | 12 +- .../test/Gantt/transformProps.test.ts | 1 - .../plugin-chart-echarts/test/utils/series.test.ts | 17 +- .../plugins/plugin-chart-handlebars/package.json | 4 +- .../plugins/plugin-chart-pivot-table/package.json | 2 +- .../plugins/plugin-chart-table/package.json | 5 +- .../src/DataTable/types/react-table.d.ts | 18 +- .../plugins/plugin-chart-table/src/TableChart.tsx | 3 +- .../plugin-chart-table/test/TableChart.test.tsx | 72 + superset-frontend/spec/helpers/shim.tsx | 6 + superset-frontend/spec/helpers/testing-library.tsx | 3 +- superset-frontend/src/SqlLab/actions/sqlLab.js | 28 +- .../src/SqlLab/actions/sqlLab.test.js | 195 +- .../components/QueryTable/QueryTable.test.tsx | 97 +- .../src/SqlLab/components/QueryTable/index.tsx | 119 +- .../src/SqlLab/components/QueryTable/styles.ts | 7 + .../src/SqlLab/components/ResultSet/index.tsx | 50 +- .../AlteredSliceTag/AlteredSliceTag.stories.tsx | 4 +- .../{ChartContainer.jsx => ChartContainer.tsx} | 6 +- .../src/components/Chart/chartAction.js | 14 +- .../src/components/Chart/chartActions.test.js | 22 + .../DatasourceEditor/DatasourceEditor.jsx | 128 +- .../DashboardLinksExternal.test.tsx | 129 +- .../DatasetUsageTab/DatasetUsageTab.test.tsx | 49 + .../components/DatasetUsageTab/index.tsx | 26 +- .../tests/DatasourceEditor.test.tsx | 723 +- .../tests/DatasourceEditor.test.utils.tsx | 177 + .../tests/DatasourceEditorCurrency.test.tsx | 274 +- .../tests/DatasourceEditorRTL.test.tsx | 129 - .../src/components/Datasource/utils/index.js | 12 +- .../components/ListView/Filters/Search.test.tsx | 230 + .../src/components/ListView/Filters/Search.tsx | 3 + .../src/components/ListView/Filters/index.test.tsx | 132 + .../src/components/ListView/Filters/index.tsx | 5 +- superset-frontend/src/components/ListView/types.ts | 2 + .../{mockMessageToasts.js => mockMessageToasts.ts} | 6 +- superset-frontend/src/core/sqlLab/index.ts | 10 +- .../src/dashboard/components/Dashboard.test.jsx | 69 + .../DashboardBuilder/DashboardBuilder.tsx | 5 + .../{MissingChart.jsx => MissingChart.tsx} | 11 +- .../dnd/{handleHover.js => handleHover.ts} | 13 +- .../dashboard/components/dnd/handleScroll/index.ts | 2 +- .../{FilterFieldItem.jsx => FilterFieldItem.tsx} | 16 +- .../{FilterFieldTree.jsx => FilterFieldTree.tsx} | 47 +- .../{FilterScopeTree.jsx => FilterScopeTree.tsx} | 45 +- ...reeNodes.jsx => renderFilterFieldTreeNodes.tsx} | 29 +- ...reeNodes.jsx => renderFilterScopeTreeNodes.tsx} | 36 +- .../filterscope/{treeIcons.jsx => treeIcons.tsx} | 0 .../gridComponents/Chart/{index.js => index.ts} | 0 .../gridComponents/Column/{index.js => index.ts} | 0 .../gridComponents/Divider/{index.js => index.ts} | 0 .../gridComponents/Markdown/{index.js => index.ts} | 0 .../gridComponents/Tab/{index.js => index.ts} | 0 .../components/gridComponents/Tabs/Tabs.jsx | 2 +- .../gridComponents/Tabs/{index.js => index.ts} | 0 .../gridComponents/TabsRenderer/TabsRenderer.tsx | 30 +- .../gridComponents/{index.js => index.ts} | 0 .../new/{NewColumn.jsx => NewColumn.tsx} | 0 .../new/{NewDivider.jsx => NewDivider.tsx} | 0 .../new/{NewHeader.jsx => NewHeader.tsx} | 0 .../new/{NewMarkdown.jsx => NewMarkdown.tsx} | 0 .../new/{NewTabs.jsx => NewTabs.tsx} | 0 .../components/menu/ShareMenuItems/index.tsx | 5 +- .../FiltersConfigModal/FiltersConfigModal.test.tsx | 16 +- .../{DashboardGrid.jsx => DashboardGrid.tsx} | 7 +- .../{FilterScope.jsx => FilterScope.tsx} | 7 +- .../containers/{SliceAdder.jsx => SliceAdder.tsx} | 17 +- .../util/activeAllDashboardFilters.test.ts | 150 + .../dashboard/util/activeAllDashboardFilters.ts | 17 +- ...h.js => getChartAndLabelComponentIdFromPath.ts} | 12 +- ...ieldNodesTree.js => getFilterFieldNodesTree.ts} | 25 +- ...ParentNodes.js => getFilterScopeParentNodes.ts} | 21 +- ....js => getSelectedChartIdForFilterScopeTree.ts} | 7 +- ...ChildChartIds.js => findNonTabChildChartIds.ts} | 26 +- ...ComponentIds.js => findTopLevelComponentIds.ts} | 33 +- ...nent.js => getLoadStatsPerTopLevelComponent.ts} | 21 +- ...terValues.js => serializeActiveFilterValues.ts} | 38 +- ...arentsList.js => updateComponentParentsList.ts} | 14 +- superset-frontend/src/database/actions.ts | 3 +- .../src/explore/components/ControlHeader.tsx | 8 + .../ExploreChartHeader/ExploreChartHeader.test.tsx | 45 +- .../components/ExploreViewContainer/index.jsx | 4 + .../controls/ColorBreakpointsControl/types.ts | 5 +- .../components/controls/ContourControl/types.ts | 5 +- .../ColumnSelectPopoverTrigger.tsx | 3 +- .../DndColumnSelectControl/DndFilterSelect.tsx | 5 +- .../{AggregateOption.jsx => AggregateOption.tsx} | 20 +- ...nitionOption.jsx => MetricDefinitionOption.tsx} | 39 +- .../components/controls/VizTypeControl/VizTile.tsx | 10 +- .../{saveModalReducer.js => saveModalReducer.ts} | 29 +- .../src/features/alerts/AlertReportModal.test.tsx | 94 + .../src/features/alerts/AlertReportModal.tsx | 32 +- .../alerts/components/NotificationMethod.tsx | 137 +- .../features/alerts/components/RecipientIcon.tsx | 6 + superset-frontend/src/features/alerts/types.ts | 2 + .../databases/DatabaseModal/ExtraOptions.tsx | 14 +- .../databases/DatabaseModal/index.test.tsx | 81 + .../src/features/databases/DatabaseModal/index.tsx | 58 +- .../datasets/AddDataset/Footer/Footer.test.tsx | 1 + .../features/datasets/AddDataset/Footer/index.tsx | 10 +- .../src/features/home/DashboardTable.test.tsx | 623 +- .../src/features/home/DashboardTable.tsx | 1 + .../src/features/home/RightMenu.test.tsx | 7 +- superset-frontend/src/features/home/RightMenu.tsx | 21 +- .../src/features/home/SavedQueries.tsx | 43 +- .../src/features/queries/SyntaxHighlighterCopy.tsx | 6 +- superset-frontend/src/features/reports/types.ts | 2 +- .../src/pages/AlertReportList/index.tsx | 1 + .../src/pages/AnnotationLayerList/index.tsx | 1 + .../src/pages/ChartCreation/ChartCreation.test.tsx | 227 + .../src/pages/ChartCreation/index.tsx | 39 +- superset-frontend/src/pages/GroupsList/index.tsx | 1 + superset-frontend/src/pages/RolesList/index.tsx | 1 + .../src/pages/RowLevelSecurityList/index.tsx | 1 + superset-frontend/src/pages/Tags/index.tsx | 1 + .../src/utils/getControlsForVizType.js | 52 - superset-frontend/src/utils/reducerUtils.js | 71 - superset-frontend/src/views/CRUD/utils.tsx | 3 + ...eTag.stories.tsx => test-runner-jest.config.js} | 22 +- superset-frontend/webpack.config.js | 13 +- superset-websocket/package-lock.json | 613 +- superset-websocket/package.json | 12 +- .../utils/client-ws-app/package-lock.json | 12 +- superset/commands/chart/importers/v1/utils.py | 2 +- .../commands/dashboard/importers/v1/__init__.py | 42 +- superset/commands/security/create.py | 4 +- superset/commands/security/update.py | 4 +- superset/config.py | 3 + superset/daos/base.py | 2 +- superset/datasets/schemas.py | 1 + superset/extensions/discovery.py | 3 +- superset/extensions/utils.py | 55 +- superset/initialization/__init__.py | 4 +- superset/mcp_service/README.md | 558 + superset/mcp_service/chart/schemas.py | 10 + superset/mcp_service/chart/tool/generate_chart.py | 84 +- .../explore/tool/generate_explore_link.py | 24 +- superset/mcp_service/sql_lab/execute_sql_core.py | 221 - superset/mcp_service/sql_lab/schemas.py | 42 +- superset/mcp_service/sql_lab/sql_lab_utils.py | 243 - superset/mcp_service/sql_lab/tool/execute_sql.py | 136 +- superset/mcp_service/utils/schema_utils.py | 21 +- ...8d8526_fix_form_data_string_in_query_context.py | 108 + superset/models/core.py | 34 + superset/reports/models.py | 1 + superset/reports/notifications/__init__.py | 1 + superset/reports/notifications/webhook.py | 144 + superset/security/guest_token.py | 3 +- superset/security/manager.py | 27 +- superset/sql/execution/__init__.py | 20 + superset/sql/execution/celery_task.py | 486 + superset/sql/execution/executor.py | 1108 + superset/sql/parse.py | 17 + superset/tasks/async_queries.py | 19 +- superset/utils/webdriver.py | 2 + superset/views/base.py | 2 + superset/views/users/api.py | 27 +- .../charts/commands/importers/v1/utils_test.py | 41 + .../commands/importers/v1/import_command_test.py | 214 + .../datasets/commands/importers/v1/import_test.py | 95 +- tests/unit_tests/extensions/test_types.py | 258 + .../explore/tool/test_generate_explore_link.py | 96 + .../mcp_service/sql_lab/tool/test_execute_sql.py | 490 +- tests/unit_tests/models/core_test.py | 84 + .../reports/notifications/webhook_tests.py | 225 + .../security/exclude_users_filter_test.py | 165 + tests/unit_tests/sql/execution/__init__.py | 16 + tests/unit_tests/sql/execution/conftest.py | 324 + tests/unit_tests/sql/execution/test_celery_task.py | 1077 + tests/unit_tests/sql/execution/test_executor.py | 2114 + tests/unit_tests/sql/parse_tests.py | 93 + tests/unit_tests/tasks/test_async_queries.py | 96 + 348 files changed, 60732 insertions(+), 47129 deletions(-)
