You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jl...@apache.org on 2026/08/14 14:05:31 UTC
(superset) branch showtime-master updated (e4bb1bc825c -> 74a364dc137)
This is an automated email from the ASF dual-hosted git repository.
sadpandajoe pushed a change to branch showtime-master
in repository https://gitbox.apache.org/repos/asf/superset.git
from e4bb1bc825c Merge remote-tracking branch 'origin/master' into HEAD
add 5554b892ffa fix(mcp): preserve table chart state during updates (#42655)
add 762fdccfdef fix(oauth2): log database token failures (#42644)
add e1777737a71 fix(docs): sync live component demos to the docs site's dark mode toggle (#42602)
add c8305b0ba98 feat(ci): publish Python unit test results as PR check annotations (#42503)
add fbeba10f750 fix(sqllab): make MenuDotsDropdown trigger focusable for tab rename (#43015)
add d5ae93c9b8d test(echarts): pin Bar chart X Axis Title flows through untouched (#42560) (#42599)
add 25c2ca11276 ci: run pre-commit checks via prek (#42500)
add b8ca729f9fc fix(sql): only force a LIMIT onto query expressions (#43097)
add d0658bacc89 fix(mcp): give concurrent tool calls isolated db sessions (#42629)
add ec136f6d8df fix(charts): decode CSV bytes payload before feeding pandas StringIO (#32370) (#42735)
add c8cb09d4589 fix(dev): stop the webpack dev-proxy from hanging on a mid-stream backend disconnect (#42811)
add e1468a709c0 fix(sunburst): keep SQL null and literal string "null" as distinct groups (#43013)
add 117b92a517a fix(mcp): expose table column formatting (#42658)
add 5b281585194 fix(helm): stop shipping conflicting podDisruptionBudget defaults (#42995)
add 6211f9936b3 feat(mobile): Add mobile-friendly dashboard consumption mode (#37141)
add 67bbe0ac173 ci: speed up backend CI with astral-sh/setup-uv and apt package caching (#42498)
add dc9547554b4 fix(echarts): normalize BigInt metric values before summing/dividing in stacked charts (#36401) (#42594)
add f7a2f0ec501 feat(table): allow choosing Sum or Average for the "Show summary" totals row (#43027)
add 3c7633f935f fix(encrypt): stop naive padding from truncating secrets ending in '*' (#43074)
add 01d0772d4f3 fix(box-plot): distribute across field not marked as required for datasets without a temporal column (#43087)
add a63483b9b1a fix(sql): rebase Dremio dialect on sqlglot's native dialect (#43099)
add 3fb58900b9a chore(duckdb): remove cursor.description workaround, no longer reproducible (#43101)
add 930ba64fdf3 fix(ci): format ErrorMessage tests (#43114)
add 8f78f9eb9c7 chore: update CODEOWNERS for extension and config files (#43142)
add 537f0fd2dbe fix(sqllab): use dialect-specific quote chars for autocomplete identifiers (#41492)
add a188e9473ab feat(chart): let Drill By scope to the clicked x-axis value (#42296)
add bacaf08a22f docs(perf): add Dashboard Performance guide covering virtualization, lazy tabs, and chart-count guidance (#40238)
add aec567f7d6c chore(deps): bump antd from 6.5.3 to 6.5.4 in /superset-frontend (#43162)
add a6db0d1cde2 chore(deps): bump query-string from 9.4.1 to 9.5.0 in /superset-frontend (#43161)
add 9bc3173e3a3 chore(deps): bump antd from 6.5.3 to 6.5.4 in /docs (#43160)
add 8523ea4d0a9 chore(deps): bump caniuse-lite from 1.0.30001806 to 1.0.30001807 in /docs (#43159)
add acf39e3ef0c chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43158)
add 3b99e092d08 chore(deps-dev): bump tsx from 4.23.9 to 4.23.10 in /superset-frontend (#43157)
add 9c5bde94918 chore(deps): bump mapbox-gl from 3.28.0 to 3.28.1 in /superset-frontend (#43156)
add 7c0c5283c3f chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43155)
add a4c47359e61 chore(deps): bump the storybook group in /docs with 2 updates (#43154)
add 84c371d56e1 chore: fix stale developer_portal paths (#43143)
add 92728169de9 docs: document the zstd prerequisite for the frontend dev server (#43109)
add 74a364dc137 Merge remote-tracking branch 'origin/master' into HEAD
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 16 +-
.github/actions/setup-backend/action.yml | 28 +-
.github/workflows/bump-python-package.yml | 5 +-
.github/workflows/pre-commit.yml | 31 +-
.github/workflows/superset-docs-deploy.yml | 6 +-
.github/workflows/superset-playwright.yml | 11 +
.../workflows/superset-python-unittest-report.yml | 70 +++
.github/workflows/superset-python-unittest.yml | 33 +-
.github/workflows/superset-translations.yml | 5 +-
AGENTS.md | 2 +-
CONTRIBUTING.md | 2 +-
UPDATING.md | 7 +
docker/pythonpath_dev/superset_config.py | 1 +
.../configuration/dashboard-performance.mdx | 184 ++++++++
.../contributing/development-setup.md | 24 ++
.../frontend/component-style-guidelines.md | 2 +-
docs/docs/using-superset/mobile-experience.mdx | 93 ++++
docs/package.json | 8 +-
docs/src/components/StorybookWrapper.jsx | 67 ++-
docs/static/feature-flags.json | 6 +
.../img/screenshots/mobile/mobile_dashboard.jpg | Bin 0 -> 68479 bytes
.../screenshots/mobile/mobile_dashboard_list.jpg | Bin 0 -> 82502 bytes
.../screenshots/mobile/mobile_filter_drawer.jpg | Bin 0 -> 58074 bytes
docs/static/img/screenshots/mobile/mobile_home.jpg | Bin 0 -> 35338 bytes
.../img/screenshots/mobile/mobile_nav_drawer.jpg | Bin 0 -> 35385 bytes
.../img/screenshots/mobile/mobile_unsupported.jpg | Bin 0 -> 42668 bytes
docs/yarn.lock | 52 +--
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 28 +-
helm/superset/templates/pdb-beat.yaml | 2 +-
helm/superset/templates/pdb-flower.yaml | 2 +-
helm/superset/templates/pdb-mcp.yaml | 2 +-
helm/superset/templates/pdb-worker.yaml | 2 +-
helm/superset/templates/pdb-ws.yaml | 2 +-
helm/superset/templates/pdb.yaml | 2 +-
helm/superset/tests/pdb_test.yaml | 87 ++++
helm/superset/values.yaml | 26 +-
superset-frontend/package-lock.json | 179 ++++----
superset-frontend/package.json | 18 +-
.../src/theme/SupersetThemeProvider.test.tsx | 205 +++++++++
.../superset-core/src/theme/Theme.test.tsx | 41 ++
.../packages/superset-core/src/theme/Theme.tsx | 88 +++-
.../src/utils/getTotalsMetrics.test.ts | 79 ++++
.../src/utils/getTotalsMetrics.ts | 43 ++
.../superset-ui-chart-controls/src/utils/index.ts | 1 +
.../superset-ui-core/src/chart/types/Base.ts | 7 +
.../src/components/AsyncAceEditor/index.tsx | 3 +
.../src/components/AsyncAceEditor/types.ts | 3 +
.../src/components/Dropdown/Dropdown.test.tsx | 35 +-
.../src/components/Dropdown/index.tsx | 28 +-
.../src/components/DynamicEditableTitle/index.tsx | 16 +
.../src/components/PageHeaderWithActions/index.tsx | 18 +
.../superset-ui-core/src/utils/featureFlags.ts | 1 +
superset-frontend/playwright.config.ts | 18 +
.../generators/docs/mobile-screenshots.spec.ts | 173 ++++++++
.../tests/mobile/mobile-dashboard.spec.ts | 284 ++++++++++++
.../tests/mobile/mobile-navigation.spec.ts | 192 +++++++++
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 24 +-
.../src/controlPanel.tsx | 27 +-
.../test/buildQuery.test.ts | 68 +++
.../src/BoxPlot/controlPanel.ts | 5 +-
.../src/Timeseries/EchartsTimeseries.test.tsx | 99 ++++-
.../src/Timeseries/EchartsTimeseries.tsx | 57 ++-
.../plugin-chart-echarts/src/utils/series.ts | 43 +-
.../plugin-chart-echarts/src/utils/treeBuilder.ts | 125 ++++--
.../src/utils/xAxisDrillByFilter.ts | 164 +++++++
.../test/BoxPlot/controlPanel.test.ts | 57 +++
.../test/Timeseries/Bar/transformProps.test.ts | 90 ++++
.../test/Timeseries/transformProps.test.ts | 32 ++
.../plugin-chart-echarts/test/utils/series.test.ts | 112 ++++-
.../test/utils/treeBuilder.test.ts | 72 ++++
.../test/utils/xAxisDrillByFilter.test.ts | 238 +++++++++++
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../plugins/plugin-chart-table/src/buildQuery.ts | 5 +
.../plugin-chart-table/src/controlPanel.tsx | 25 ++
.../plugin-chart-table/test/buildQuery.test.ts | 65 +++
superset-frontend/spec/helpers/mobileTestUtils.ts | 169 ++++++++
.../components/EditorWrapper/useKeywords.test.ts | 160 +++++++
.../SqlLab/components/EditorWrapper/useKeywords.ts | 63 ++-
.../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx | 8 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 15 +-
.../TabbedSqlEditors/TabbedSqlEditors.test.tsx | 6 +-
.../ChartContextMenu/ChartContextMenu.test.tsx | 70 ++-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 27 +-
.../Chart/DrillBy/DrillBySubmenu.test.tsx | 134 ++++++
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 112 ++++-
.../ErrorMessage/BasicErrorAlert.test.tsx | 9 +-
.../ErrorMessage/DatabaseErrorMessage.test.tsx | 9 +-
.../DatasetNotFoundErrorMessage.test.tsx | 9 +-
.../ErrorMessageWithStackTrace.test.tsx | 9 +-
.../FrontendNetworkErrorMessage.test.tsx | 9 +-
.../ErrorMessage/ParameterErrorMessage.test.tsx | 9 +-
.../ErrorMessage/TimeoutErrorMessage.test.tsx | 9 +-
.../src/components/ListView/CardCollection.tsx | 13 +
.../src/components/ListView/ListView.test.tsx | 224 ++++++++++
.../src/components/ListView/ListView.tsx | 103 ++++-
superset-frontend/src/components/ListView/utils.ts | 25 +-
.../MobileRouteGuard/MobileRouteGuard.test.tsx | 64 +++
.../src/components/MobileRouteGuard/index.tsx | 49 ++-
.../src/core/editors/AceEditorProvider.tsx | 14 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 49 +++
.../DashboardBuilder/DashboardBuilder.tsx | 87 +++-
.../DashboardBuilder/DashboardWrapper.tsx | 17 +
.../dashboard/components/DashboardBuilder/state.ts | 15 +-
.../dashboard/components/Header/Header.test.tsx | 7 +
.../src/dashboard/components/Header/index.tsx | 48 ++-
.../src/dashboard/components/Header/types.ts | 4 +
.../Header/useHeaderActionsDropdownMenu.tsx | 81 +++-
.../components/SliceHeader/SliceHeader.test.tsx | 42 ++
.../src/dashboard/components/SliceHeader/index.tsx | 7 +-
.../ChartHolder/ChartHolder.test.tsx | 147 ++++++-
.../gridComponents/ChartHolder/ChartHolder.tsx | 64 ++-
.../components/gridComponents/Row/Row.tsx | 22 +
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 55 ++-
.../nativeFilters/FilterBar/Vertical.tsx | 74 ++--
.../components/nativeFilters/FilterBar/index.tsx | 1 +
.../components/nativeFilters/FilterBar/types.ts | 5 +
.../components/resizable/ResizableContainer.tsx | 16 +
.../src/features/dashboards/DashboardCard.tsx | 12 +-
.../src/features/home/ActivityTable.tsx | 28 +-
.../src/features/home/EmptyState.test.tsx | 39 ++
superset-frontend/src/features/home/EmptyState.tsx | 10 +-
superset-frontend/src/features/home/Menu.tsx | 75 ++--
.../src/features/home/RightMenu.test.tsx | 127 ++++--
superset-frontend/src/features/home/RightMenu.tsx | 197 +++++++--
.../src/features/home/SubMenu.test.tsx | 32 ++
superset-frontend/src/features/home/SubMenu.tsx | 66 ++-
superset-frontend/src/features/home/types.ts | 1 +
superset-frontend/src/hooks/useIsMobile.ts | 88 ++++
.../src/pages/DashboardList/DashboardList.test.tsx | 7 +
.../src/pages/DashboardList/index.tsx | 33 +-
.../src/pages/Home/Home.mobile.test.tsx | 183 ++++++++
superset-frontend/src/pages/Home/Home.test.tsx | 7 +
superset-frontend/src/pages/Home/index.tsx | 43 +-
.../MobileUnsupported/MobileUnsupported.test.tsx | 95 +++++
.../src/pages/MobileUnsupported/index.tsx | 141 ++++++
superset-frontend/src/views/App.tsx | 37 +-
superset-frontend/src/views/CRUD/utils.tsx | 12 +
superset-frontend/src/views/routes.tsx | 36 +-
.../tools/webpack.proxy-config.test.js | 272 ++++++++++++
superset-frontend/webpack.proxy-config.js | 102 ++++-
superset/charts/client_processing.py | 16 +-
superset/commands/database/oauth2.py | 23 +-
superset/config.py | 5 +
superset/databases/api.py | 7 +-
superset/databases/schemas.py | 24 ++
superset/db_engine_specs/base.py | 21 +-
superset/db_engine_specs/bigquery.py | 7 +
superset/db_engine_specs/databricks.py | 5 +
superset/db_engine_specs/duckdb.py | 35 +-
superset/db_engine_specs/hive.py | 6 +
superset/db_engine_specs/mssql.py | 5 +
superset/db_engine_specs/mysql.py | 4 +
superset/db_engine_specs/sybase.py | 5 +
superset/exceptions.py | 13 +-
superset/initialization/__init__.py | 12 +-
superset/mcp_service/app.py | 28 ++
superset/mcp_service/auth.py | 71 ++-
superset/mcp_service/chart/chart_utils.py | 46 ++
superset/mcp_service/chart/compile.py | 28 +-
superset/mcp_service/chart/plugins/table.py | 19 +-
superset/mcp_service/chart/schemas.py | 64 +++
superset/mcp_service/chart/tool/update_chart.py | 212 ++++++++-
.../mcp_service/chart/tool/update_chart_preview.py | 3 +
superset/mcp_service/chart/validation/pipeline.py | 2 +-
superset/mcp_service/server.py | 10 +
superset/mcp_service/session_scope.py | 69 +++
superset/sql/dialects/dremio.py | 28 +-
superset/sql/parse.py | 29 +-
superset/sqllab/schemas.py | 36 +-
superset/sqllab/utils.py | 1 +
superset/templates/superset/spa.html | 7 +
superset/utils/encrypt.py | 57 ++-
superset/utils/log.py | 60 ++-
superset/utils/oauth2.py | 36 +-
superset/views/base_api.py | 75 +++-
tests/integration_tests/databases/api_tests.py | 40 ++
.../integration_tests/non_additive_totals_tests.py | 42 ++
tests/integration_tests/utils/encrypt_tests.py | 12 +-
tests/unit_tests/charts/test_client_processing.py | 90 +++-
tests/unit_tests/commands/databases/oauth2_test.py | 42 ++
tests/unit_tests/databases/api_test.py | 10 +
tests/unit_tests/databases/oauth2_api_test.py | 275 ++++++++++++
tests/unit_tests/databases/test_schemas.py | 54 +++
tests/unit_tests/db_engine_specs/test_base.py | 14 +-
tests/unit_tests/db_engine_specs/test_bigquery.py | 12 +
.../unit_tests/db_engine_specs/test_databricks.py | 17 +
tests/unit_tests/db_engine_specs/test_duckdb.py | 28 ++
tests/unit_tests/db_engine_specs/test_hive.py | 23 +
tests/unit_tests/db_engine_specs/test_mssql.py | 11 +
tests/unit_tests/db_engine_specs/test_mysql.py | 11 +
.../unit_tests/db_engine_specs/test_sybase.py | 21 +-
.../mcp_service/chart/test_chart_utils.py | 71 +++
tests/unit_tests/mcp_service/chart/test_compile.py | 40 ++
.../mcp_service/chart/test_new_chart_types.py | 60 +++
.../chart/tool/test_get_chart_type_schema.py | 9 +-
.../mcp_service/chart/tool/test_update_chart.py | 474 +++++++++++++++++++++
.../chart/tool/test_update_chart_preview.py | 12 +-
.../validation/test_column_name_normalization.py | 68 +++
.../mcp_service/test_auth_user_resolution.py | 7 +-
tests/unit_tests/mcp_service/test_session_scope.py | 233 ++++++++++
tests/unit_tests/sql/dialects/dremio_tests.py | 27 ++
tests/unit_tests/sql/parse_tests.py | 74 +++-
tests/unit_tests/sqllab/test_schemas.py | 54 +++
tests/unit_tests/sqllab/test_utils.py | 52 +++
tests/unit_tests/utils/encrypt_test.py | 61 +++
tests/unit_tests/utils/oauth2_tests.py | 104 ++++-
.../unit_tests/utils/test_encrypt_cbc_iv_reuse.py | 14 +-
208 files changed, 9525 insertions(+), 859 deletions(-)
create mode 100644 .github/workflows/superset-python-unittest-report.yml
create mode 100644 docs/admin_docs/configuration/dashboard-performance.mdx
create mode 100644 docs/docs/using-superset/mobile-experience.mdx
create mode 100644 docs/static/img/screenshots/mobile/mobile_dashboard.jpg
create mode 100644 docs/static/img/screenshots/mobile/mobile_dashboard_list.jpg
create mode 100644 docs/static/img/screenshots/mobile/mobile_filter_drawer.jpg
create mode 100644 docs/static/img/screenshots/mobile/mobile_home.jpg
create mode 100644 docs/static/img/screenshots/mobile/mobile_nav_drawer.jpg
create mode 100644 docs/static/img/screenshots/mobile/mobile_unsupported.jpg
create mode 100644 helm/superset/tests/pdb_test.yaml
create mode 100644 superset-frontend/packages/superset-core/src/theme/SupersetThemeProvider.test.tsx
create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/getTotalsMetrics.test.ts
create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/getTotalsMetrics.ts
create mode 100644 superset-frontend/playwright/generators/docs/mobile-screenshots.spec.ts
create mode 100644 superset-frontend/playwright/tests/mobile/mobile-dashboard.spec.ts
create mode 100644 superset-frontend/playwright/tests/mobile/mobile-navigation.spec.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/utils/xAxisDrillByFilter.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/BoxPlot/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/utils/xAxisDrillByFilter.test.ts
create mode 100644 superset-frontend/spec/helpers/mobileTestUtils.ts
create mode 100644 superset-frontend/src/components/MobileRouteGuard/MobileRouteGuard.test.tsx
copy superset-embedded-sdk/src/withTimeout.ts => superset-frontend/src/components/MobileRouteGuard/index.tsx (50%)
create mode 100644 superset-frontend/src/hooks/useIsMobile.ts
create mode 100644 superset-frontend/src/pages/Home/Home.mobile.test.tsx
create mode 100644 superset-frontend/src/pages/MobileUnsupported/MobileUnsupported.test.tsx
create mode 100644 superset-frontend/src/pages/MobileUnsupported/index.tsx
create mode 100644 superset-frontend/tools/webpack.proxy-config.test.js
create mode 100644 superset/mcp_service/session_scope.py
create mode 100644 tests/unit_tests/databases/oauth2_api_test.py
copy superset-frontend/netlify.toml => tests/unit_tests/db_engine_specs/test_sybase.py (60%)
create mode 100644 tests/unit_tests/mcp_service/test_session_scope.py
create mode 100644 tests/unit_tests/sqllab/test_schemas.py
create mode 100644 tests/unit_tests/sqllab/test_utils.py