You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/10/21 16:42:44 UTC

(superset) branch feat/color-picker-consolidation updated (f3006199000 -> a788aeb7161)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a change to branch feat/color-picker-consolidation
in repository https://gitbox.apache.org/repos/asf/superset.git


    from f3006199000 test(pop-kpi): assert decrease path uses custom decreaseColor
     add 0a17a75f9a8 chore(deps): bump the storybook group across 2 directories with 4 updates (#45513)
     add d5bccecf581 chore(deps): bump chromaui/action from 18.11.0 to 18.12.1 (#45512)
     add 77b0fd62ea7 docs: add Plum to In the Wild (#45518)
     add 3cf94c87aef chore(deps-dev): bump @types/node from 26.6.4 to 26.6.5 in /superset-embedded-sdk (#45514)
     add 1df897b3bba fix(pivot-table): blank mixed-metric totals in exports and reports (#45311)
     add 38353434467 fix(cache): honor disabled datasource suggestion caches (#45288)
     add ad30c898f86 fix(dashboard): copy a layout that omits the source's current charts (#45472)
     add 3988a771f37 fix(dataset): warn immediately when normalize_columns is toggled on (#44617)
     add 3c42a68d439 test(mcp): refresh native tool inventory for PNG chart previews (#45511)
     add 1811fe5167f fix(dashboard): stop Edit Properties hanging on dashboards with many charts (#45354)
     add 65cfc1ed18c fix(deck.gl): set maplibre-gl 6's worker URL so vector basemaps load (#45396)
     add 973ac9b8efb fix(export): honor CSV_EXPORT encoding in streaming CSV exports (#45351)
     add a708a08cdb0 feat(semantic-layers): declare provider obligations and add a registration test fixture (#45393)
     add 488a3c53b45 fix(soft-delete): show Recently Archived in the menu to everyone who can open it (#45523)
     add 82a7ec91d6e feat(semantic-layers): apply a default chronological order for time-series queries (#45389)
     add fe79ab48e93 fix(tags): make owner-tag creation safe under concurrent creates (#45498)
     add e315ed365e8 test(reports): cover scheduled reports on semantic-view charts (#45526)
     add 036d1dafe2c fix(semantic-layers): report async chart query validation errors as failures (#45525)
     add d73c9b93398 fix(alerts): don't flag "Every minute" schedule as invalid in cron picker (#45468)
     add 63c6d273616 chore(plugin-chart-ag-grid-table): remove unused useTableTheme hook (#45469)
     add aa3df7caf77 fix(explore): hide empty Actual range for comparison header (#44996)
     add f0b43df751a fix(dashboard): remap native filter scopes when duplicating charts on save as (#45038)
     add b1fe28b5791 fix(ci): narrow nullable filters in metric_filter_test and resync oxfmt formatting (#45239)
     add 875dcbb1bb0 feat(action-log): open JSON payloads in a tree modal (#45337)
     add c01e784fc64 fix(ci): restore the full-repo mypy check on two semantic-layer and sqla test files (#45315)
     add 293f159deaf fix(sqllab): keep the results grid header opaque when rows scroll under it (#45480)
     add 25186586572 fix(chart): keep the chart on screen during a dashboard auto-refresh (#45234)
     add fcff5931594 fix(sqllab): ignore a Run/Stop click whose gesture started on the other action (#45336)
     add 87dc979e986 fix(table-chart): show the record count in the search box (#45497)
     add ec40973ae81 fix(semantic-layer): reject SQL extras in direct mapper calls (#45534)
     add ddbf152ac92 fix(dashboard): keep archived charts' membership when restoring a version (#45482)
     add 208438b18b6 test(tasks): cover the embedded-guest error text on task show and list (#45533)
     add 2d0203e3699 fix(plugin-chart-echarts): merge a series object in ECharts Options into every series (#45421)
     add 77ded19ba5c fix(sqllab): commit the recomputed row limit before async dispatch (#45178)
     add a1fd5b1f81e fix(sqllab): resolve query datasources when opening SQL Lab (#45374)
     add c06005afb1e fix(dashboard): load the saved description into dashboard info (#45298)
     add 2978799419e fix(models): keep NULL rows in !=, NOT LIKE and NOT ILIKE filters (#45317)
     add 33687492472 test(explore): cover chart header actions, chart pills, and view container wiring (#44848)
     add 304f5a38b58 test(playwright): add Featured Charts render smoke and Explore image download (#44844)
     add 6842e2f76b3 test(explore): cover cartodiagram and primitive explore controls (#44850)
     add c807ee7f909 fix(native-filters): keep pending removal timers when another filter is removed (#44837)
     add 7ff5709882f fix(candlestick): give OHLC labels their own translatable strings (#45458)
     add 0f376ba9f97 fix(semantic-layers): show per-view errors when adding semantic views (#45524)
     add 190873e9832 fix(version-history): preview banner, history panel layout, scope labels and current-version marking (#45471)
     add 6dc0641c91a fix(reports): keep the first column header in XLSX exports of semantic-view tables (#45527)
     add 4e7e2b7390d fix(tests): narrow Optional StatementResult.data in async result tests (#45517)
     add 836c0f3f95d fix(table): reset default margins on the pagination list (#45365)
     add 8d3ade7e0a8 test(trino): close db_engine_spec test gaps (#45361)
     add 3d902d9eb3a chore(deps): bump the security group across 2 directories with 2 updates (#45542)
     add 527021d5819 chore(deps): bump react-virtualized-auto-sizer from 1.0.26 to 2.0.3 in /superset-frontend (#45197)
     add c11f993af37 fix(auth): close forced-password-change redirect loop and sweep stale legacy password perms from all roles (#44857)
     add 7d0e1c939ee fix(frontend): retry a failed lazy import before surfacing ChunkLoadError (#43215)
     add abc1b50f65d fix(mcp): clean up nits from PNG chart preview review (#45509)
     add b6ef0bf48d8 chore(tags): stop auto-generating type:/editor:/favorited_by: tags (#43471)
     add cb04282f501 chore(deps): bump swagger-ui-react from 5.33.1 to 5.33.2 in /docs (#45567)
     add f1d8161777c chore(deps): bump chromaui/action from 18.12.1 to 18.12.2 (#45564)
     add f9aec7515b4 chore(deps): bump actions/setup-java from 6.0.1 to 6.1.0 in the gh-actions group (#45563)
     add 75be8f981a6 feat(improvements): let deployments withhold assets from list queries and commands (#45451)
     add f9a0d8af493 chore(deps-dev): bump oxlint from 1.87.0 to 1.88.0 in /docs (#45566)
     add fa8a035fcf6 fix(mcp): stop rejecting titles that contain "data:" in prose (#45485)
     add e8824351f19 fix(mcp): isolate dashboard copies and clarify chart evidence (#45504)
     add cdc9430597c fix(db_engine_specs): patch oceanbase_py's dialect for SQLAlchemy 2.0 (#45507)
     add 8a72271c37e Merge master into feat/color-picker-consolidation
     add a788aeb7161 fix(bullet): ignore range_colors when the automatic fallback band is used

No new revisions were added by this update.

Summary of changes:
 .github/workflows/chromatic.yml                    |    2 +-
 .github/workflows/generate-FOSSA-report.yml        |    2 +-
 .github/workflows/license-check.yml                |    2 +-
 .github/workflows/superset-docs-deploy.yml         |    2 +-
 .github/workflows/superset-python-unittest.yml     |    6 +
 RESOURCES/INTHEWILD.yaml                           |    5 +
 UPDATING.md                                        |  117 ++-
 docs/admin_docs/configuration/cache.mdx            |   16 +
 docs/admin_docs/configuration/mcp-server.mdx       |   70 +-
 docs/admin_docs/security/security.mdx              |   63 ++
 .../extensions/contribution-types.md               |   57 ++
 docs/developer_docs/semantic-query-errors.md       |   11 +-
 .../creating-your-first-dashboard.mdx              |   12 +-
 docs/docs/using-superset/exploring-data.mdx        |   13 +
 docs/docs/using-superset/recently-archived.mdx     |    4 +
 docs/docs/using-superset/version-history.mdx       |    8 +-
 docs/package.json                                  |    8 +-
 docs/static/img/logos/plum.svg                     |  Bin 0 -> 4215 bytes
 docs/yarn.lock                                     |  284 +++---
 scripts/change_detector.py                         |    1 +
 superset-core/pyproject.toml                       |    3 +
 .../src/superset_core/semantic_layers/layer.py     |   12 +
 .../src/superset_core/semantic_layers/testing.py   |   61 ++
 .../src/superset_core/semantic_layers/types.py     |   20 +
 .../src/superset_core/semantic_layers/view.py      |   14 +-
 .../tests/semantic_layers/example_provider.py      |  167 ++++
 .../tests/semantic_layers/test_registration.py     |  153 +++
 superset-embedded-sdk/package-lock.json            |   34 +-
 superset-embedded-sdk/package.json                 |    2 +-
 superset-frontend/package-lock.json                |  836 ++++++----------
 superset-frontend/package.json                     |   14 +-
 .../packages/superset-ui-core/package.json         |    2 +-
 .../src/components/CronPicker/CronPicker.test.tsx  |   28 +-
 .../src/components/CronPicker/index.tsx            |    6 +-
 .../src/components/Typography/index.tsx            |    3 +-
 .../playwright/helpers/api/dashboard.ts            |   28 +
 superset-frontend/playwright/pages/ExplorePage.ts  |   23 +-
 .../tests/dashboard/featured-charts-render.spec.ts |  234 +++++
 .../dashboard/version-history-placement.spec.ts    |   39 +-
 ...ults.spec.ts => explore-download-image.spec.ts} |   44 +-
 .../tests/version-history/activity-log.spec.ts     |   14 +-
 .../src/utils/useTableTheme.ts                     |   42 -
 .../src/components/OlChartMap.tsx                  |   18 +-
 .../test/components/OlChartMap.test.tsx            |  108 ++
 .../src/Bullet/transformProps.ts                   |    7 +-
 .../src/Candlestick/constants.ts                   |   12 +-
 .../src/Candlestick/controlPanel.tsx               |    8 +-
 .../src/utils/mergeCustomEChartOptions.test.ts     |   67 ++
 .../src/utils/mergeCustomEChartOptions.ts          |   17 +
 .../test/Bullet/transformProps.test.ts             |   12 +
 .../test/Candlestick/controlPanel.test.ts          |   10 +
 .../test/Candlestick/transformProps.test.ts        |   17 +
 .../test/Timeseries/transformProps.test.ts         |    4 +
 .../src/MapLibre.tsx                               |   33 +-
 .../test/MapLibre.test.tsx                         |   69 +-
 .../plugins/plugin-chart-table/src/Styles.tsx      |    4 +
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    7 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |  129 ++-
 .../src/CategoricalDeckGLContainer.test.tsx        |  213 +++-
 .../src/CategoricalDeckGLContainer.tsx             |   73 +-
 .../src/DeckGLContainer.test.tsx                   |   28 +
 .../preset-chart-deckgl/src/DeckGLContainer.tsx    |   11 +
 .../preset-chart-deckgl/src/Multi/Multi.tsx        |   25 +-
 .../preset-chart-deckgl/src/Multi/MultiV1.test.tsx |   66 +-
 .../plugins/preset-chart-deckgl/src/Multi/index.ts |    2 +-
 .../src/Multi}/transformProps.test.ts              |   36 +-
 .../src/Multi}/transformProps.ts                   |   16 +-
 .../preset-chart-deckgl/src/factory.test.tsx       |  117 +++
 .../plugins/preset-chart-deckgl/src/factory.tsx    |   25 +
 .../preset-chart-deckgl/src/layers/Arc/Arc.test.ts |    6 +
 .../src/layers/Polygon/Polygon.test.tsx            |  100 ++
 .../src/layers/Polygon/Polygon.tsx                 |   22 +
 .../types/global.d.ts                              |    2 +-
 superset-frontend/spec/helpers/runStopButton.ts    |   55 +
 .../src/SqlLab/actions/sqlLab.test.ts              |  251 +++++
 superset-frontend/src/SqlLab/actions/sqlLab.ts     |   36 +-
 .../SqlLab/components/ResultSet/ResultSet.test.tsx |   13 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |   10 +-
 .../RunQueryActionButton.test.tsx                  |  545 +++++++++-
 .../components/RunQueryActionButton/index.tsx      |   37 +-
 .../SqlLab/components/SqlEditor/SqlEditor.test.tsx |   17 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |   10 +-
 .../TableExploreTree/TableExploreTree.test.tsx     |   13 +-
 .../SqlLab/components/TableExploreTree/index.tsx   |   10 +-
 .../components/TablePreview/TablePreview.test.tsx  |   13 +-
 .../src/SqlLab/components/TablePreview/index.tsx   |    8 +-
 .../Chart/ChartRenderer.refresh.test.tsx           |  302 ++++++
 .../src/components/Chart/ChartRenderer.test.tsx    |   19 +
 .../src/components/Chart/ChartRenderer.tsx         |   90 +-
 .../FoldersEditor/FoldersEditor.test.tsx           |   17 +-
 .../components/Datasource/FoldersEditor/index.tsx  |   12 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |   45 +-
 ...atasourceEditorNormalizeColumnsWarning.test.tsx |  146 +++
 .../src/components/GridTable/GridTable.test.tsx    |   25 +-
 .../src/components/GridTable/index.tsx             |    9 +-
 .../src/components/JsonModal/JsonModal.test.tsx    |   18 +
 .../src/components/JsonModal/utils.ts              |   10 +-
 .../DashboardBuilder/DashboardBuilder.test.tsx     |  137 ++-
 .../DashboardBuilder/DashboardBuilder.tsx          |  155 +--
 .../DashboardBuilder/DashboardWrapper.tsx          |    2 +-
 .../src/dashboard/components/Header/index.tsx      |    4 +-
 .../PropertiesModal.manyCharts.test.tsx            |  107 ++
 .../dashboard/components/PropertiesModal/index.tsx |    9 +-
 .../src/dashboard/components/SliceAdder.test.tsx   |    2 +-
 .../src/dashboard/components/SliceAdder.tsx        |    8 +-
 .../hooks/useFilterOperations.test.ts              |  145 ++-
 .../hooks/useItemStateManager.ts                   |   28 +-
 .../src/dashboard/containers/DashboardPage.tsx     |    5 +-
 superset-frontend/src/dashboard/types.ts           |    2 +-
 superset-frontend/src/embedded/index.tsx           |    5 +-
 .../components/ChartPills.behavior.test.tsx        |  158 +++
 .../DatasourcePanel.real-autosizer.test.tsx        |    7 +-
 .../DatasourcePanel/DatasourcePanel.test.tsx       |   13 +-
 .../explore/components/DatasourcePanel/index.tsx   |   10 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |  289 ++++++
 .../ExploreViewContainer.test.tsx                  |  276 ++++-
 .../components/ExploreViewContainer/index.tsx      |    6 +-
 .../RunQueryButton/RunQueryButton.test.tsx         |  361 ++++++-
 .../explore/components/RunQueryButton/index.tsx    |    6 +-
 .../controls/ComparisonRangeLabel.test.tsx         |   38 +-
 .../components/controls/ComparisonRangeLabel.tsx   |   24 +-
 .../index.test.tsx}                                |   39 +-
 .../components/controls/JSEditorControl.test.tsx   |    9 +-
 .../components/controls/JSEditorControl.tsx        |   10 +-
 .../LayerConfigsControl.test.tsx                   |  271 +++++
 .../MapViewControl/MapViewControl.test.tsx         |  134 +++
 .../MapViewControl/MapViewPopoverContent.test.tsx  |   78 ++
 .../components/controls/SliderControl.test.tsx     |   71 ++
 .../components/controls/SwitchControl.test.tsx     |   57 ++
 .../controls/TimeRangeControl/index.test.tsx       |   55 +
 .../controls/VerticalRadioControl.test.tsx         |   83 ++
 .../controls/ViewQueryModalFooter.test.tsx         |  142 ++-
 .../controls/VizTypeControl/VizTypeGallery.tsx     |   24 +-
 .../ZoomConfigControl/ZoomConfigControl.test.tsx   |  195 ++--
 .../ZoomConfigControl/ZoomConfigsChart.test.tsx    |  178 ++++
 .../src/features/home/RightMenu.test.tsx           |   76 ++
 superset-frontend/src/features/home/RightMenu.tsx  |   16 +
 .../semanticViews/AddSemanticViewModal.test.tsx    |  251 ++++-
 .../semanticViews/AddSemanticViewModal.tsx         |  121 ++-
 .../src/features/semanticViews/creationResult.ts   |   90 ++
 .../src/features/versionHistory/ActionRow.tsx      |    5 +-
 .../versionHistory/CurrentVersionSection.tsx       |   12 +-
 .../DashboardVersionHistory.test.tsx               |    4 +-
 .../features/versionHistory/SaveGroupItem.test.tsx |   88 +-
 .../src/features/versionHistory/SaveGroupItem.tsx  |   66 +-
 .../versionHistory/VersionHistoryPanel.test.tsx    |  107 +-
 .../versionHistory/VersionHistoryPanel.tsx         |   53 +-
 .../src/features/versionHistory/display.test.ts    |   28 +
 .../src/features/versionHistory/display.ts         |   28 +
 .../versionHistory/useVersionActivity.test.ts      |    4 +-
 .../src/hooks/apiResources/dashboards.test.ts      |   48 +
 .../src/hooks/apiResources/dashboards.ts           |    1 +
 superset-frontend/src/hooks/useRunStopButton.ts    |  181 ++++
 .../src/pages/ActionLog/ActionLog.test.tsx         |   76 ++
 superset-frontend/src/pages/ActionLog/index.tsx    |   67 +-
 superset-frontend/src/types/Dashboard.ts           |    1 +
 superset-frontend/src/types/bootstrapTypes.ts      |    1 +
 superset-frontend/src/utils/lazyWithRetry.test.tsx |  140 +++
 superset-frontend/src/utils/lazyWithRetry.ts       |  135 +++
 superset-frontend/src/views/routes.tsx             |   83 +-
 superset-websocket/package-lock.json               |  168 ++--
 superset-websocket/package.json                    |    4 +-
 superset/app.py                                    |    8 +-
 superset/charts/client_processing.py               |  168 ++--
 superset/charts/data/api.py                        |    4 +-
 superset/charts/filters.py                         |    8 +
 superset/cli/update.py                             |   17 -
 superset/commands/report/base.py                   |   73 ++
 superset/commands/sql_lab/execute.py               |   12 +
 superset/commands/streaming_export/base.py         |   34 +-
 superset/common/tags.py                            |  496 ---------
 superset/config.py                                 |   36 +
 superset/daos/dashboard.py                         |  158 ++-
 superset/dashboards/api.py                         |    3 +
 superset/dashboards/filters.py                     |    7 +
 superset/datasource/api.py                         |   32 +-
 superset/db_engine_specs/oceanbase.py              |   86 ++
 superset/mcp_service/app.py                        |    4 +-
 .../chart/prompts/create_chart_guided.py           |    4 +-
 .../mcp_service/chart/resources/chart_configs.py   |   14 +-
 superset/mcp_service/chart/schemas.py              |   84 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |   32 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   10 +-
 superset/mcp_service/dashboard/schemas.py          |  139 ++-
 .../dashboard/tool/duplicate_dashboard.py          |   14 +-
 .../dashboard/tool/get_dashboard_data.py           |   96 +-
 superset/mcp_service/dashboard_scope_sql.py        |    7 +-
 superset/mcp_service/database/schemas.py           |    8 +-
 superset/mcp_service/dataset/schemas.py            |    9 +-
 .../dataset/tool/update_dataset_metric.py          |    2 +-
 superset/mcp_service/middleware.py                 |   29 +-
 superset/mcp_service/report/schemas.py             |    4 +
 superset/mcp_service/tag/tool/get_tag_info.py      |    6 +-
 superset/mcp_service/tag/tool/list_tags.py         |    6 +-
 superset/mcp_service/utils/response_size_utils.py  |    4 +
 superset/mcp_service/utils/sanitization.py         |  114 ++-
 superset/mcp_service/utils/schema_utils.py         |   19 +
 superset/mcp_service/utils/validation.py           |   89 +-
 ...ep_legacy_password_view_perms_from_all_roles.py |  120 +++
 superset/models/helpers.py                         |   86 +-
 superset/reports/api.py                            |   15 +-
 superset/reports/filters.py                        |   37 +
 superset/security/password_change.py               |  101 +-
 superset/semantic_layers/cache_policy.py           |   14 +-
 superset/semantic_layers/cache_repository.py       |   14 +-
 superset/semantic_layers/cache_transform.py        |   17 +-
 superset/semantic_layers/mapper.py                 |   72 +-
 superset/semantic_layers/ordering.py               |   59 ++
 superset/sqllab/api.py                             |    4 +-
 superset/tags/core.py                              |   98 +-
 superset/tags/models.py                            |  311 ++----
 superset/tasks/async_queries.py                    |   19 +-
 superset/tasks/schemas.py                          |    9 +
 superset/translations/ar/LC_MESSAGES/messages.po   |   30 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |   27 +-
 superset/translations/de/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/en/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/es/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/it/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |   29 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |   25 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |   27 +-
 superset/translations/messages.pot                 |   47 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |   26 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |   26 +-
 superset/translations/ro/LC_MESSAGES/messages.po   |   27 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |   27 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |   27 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |   28 +-
 superset/translations/sr/LC_MESSAGES/messages.po   |   27 +-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |   27 +-
 superset/translations/ta/LC_MESSAGES/messages.po   |   26 +-
 superset/translations/th/LC_MESSAGES/messages.po   |   25 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |   25 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |   28 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |   25 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |   25 +-
 superset/utils/excel.py                            |    7 +-
 superset/utils/filters.py                          |  111 ++-
 superset/versioning/restore.py                     |   41 +-
 superset/views/archived_assets.py                  |   18 +-
 superset/views/base.py                             |    4 +
 tests/integration_tests/charts/api_tests.py        |    8 +-
 tests/integration_tests/dashboards/api_tests.py    |  119 ++-
 .../dashboards/version_restore_tests.py            |  358 +++++++
 tests/integration_tests/tagging_tests.py           |  294 ------
 tests/integration_tests/tags/dao_tests.py          |   94 +-
 tests/integration_tests/tags/race_tests.py         |   94 ++
 tests/integration_tests/tasks/api_tests.py         |   78 +-
 .../db_engine_specs/test_oceanbase.py              |   94 +-
 .../charts/data/streaming_filename_test.py         |   18 +-
 tests/unit_tests/charts/test_client_processing.py  |  506 ++++++++--
 tests/unit_tests/charts/test_filters.py            |  110 ++
 tests/unit_tests/commands/report/base_test.py      |  239 +++++
 .../unit_tests/commands/report/conftest.py         |    6 +-
 .../commands/report/semantic_view_report_test.py   |  232 +++++
 tests/unit_tests/commands/sql_lab/test_execute.py  |   92 ++
 .../commands/streaming_export}/__init__.py         |    0
 .../commands/streaming_export/base_test.py         |   51 +
 tests/unit_tests/dao/dashboard_test.py             |  581 +++++++++++
 .../dao/test_copy_dashboard_legacy_ids.py          |   81 +-
 .../dashboards/semantic_view_access_test.py        |  141 ++-
 tests/unit_tests/db_engine_specs/test_oceanbase.py |  228 +++++
 tests/unit_tests/db_engine_specs/test_trino.py     | 1052 +++++++++++++++++++-
 .../mcp_service/chart/test_chart_examples.py       |   48 +
 .../mcp_service/chart/test_chart_schemas.py        |   21 +
 .../mcp_service/chart/tool/test_get_chart_data.py  |    3 +
 .../chart/tool/test_get_chart_preview.py           |   40 +
 .../common/test_list_scope_validation.py           |  105 ++
 .../dashboard/test_dashboard_schemas.py            |   39 +
 .../dashboard/tool/test_duplicate_dashboard.py     |   86 +-
 .../dashboard/tool/test_get_dashboard_data.py      |  507 ++++++++++
 .../dashboard/tool/test_list_dashboards.py         |   85 ++
 .../mcp_service/native_tool_inventory.json         |   78 +-
 .../mcp_service/test_dashboard_scope_sql.py        |   24 +
 tests/unit_tests/mcp_service/test_mcp_config.py    |    9 +
 .../mcp_service/test_mcp_tool_registration.py      |   23 +
 .../test_sanitization_warning_inputs.py            |  450 ++++++++-
 .../mcp_service/test_validation_contract.py        |   23 +
 .../mcp_service/utils/test_sanitization.py         |  163 +++
 .../test_sweep_legacy_password_view_perms.py       |  190 ++++
 tests/unit_tests/models/helpers_test.py            |  622 +++++++++++-
 tests/unit_tests/models/test_multivalue_filter.py  |  138 +++
 tests/unit_tests/reports/filters_test.py           |   53 +
 tests/unit_tests/scripts/change_detector_test.py   |   13 +
 tests/unit_tests/security/test_password_change.py  |   63 ++
 .../unit_tests/security/test_password_recovery.py  |   12 +-
 .../semantic_layers/cache_transform_test.py        |    8 +-
 tests/unit_tests/semantic_layers/conftest.py       |   64 ++
 .../semantic_layers/default_order_test.py          |  376 +++++++
 .../semantic_layers/e2e_stub_extension_test.py     |   56 +-
 .../semantic_layers/execution_context_test.py      |    3 +-
 tests/unit_tests/semantic_layers/mapper_test.py    |  244 ++---
 .../semantic_layers/metric_filter_test.py          |    1 +
 .../semantic_layers/query_errors_test.py           |   34 +-
 .../semantic_layers/values_endpoint_test.py        |  184 ++++
 .../unit_tests/sql/execution/test_async_results.py |    2 +
 tests/unit_tests/sqllab/api_test.py                |   24 +-
 tests/unit_tests/tags/models_test.py               |    6 +-
 tests/unit_tests/tags/race_test.py                 |   84 ++
 tests/unit_tests/tasks/test_async_queries.py       |   95 +-
 tests/unit_tests/tasks/test_schemas.py             |   62 ++
 tests/unit_tests/utils/excel_tests.py              |   13 +
 tests/unit_tests/utils/filters_test.py             |  260 ++++-
 tests/unit_tests/views/test_archived_assets.py     |   86 ++
 312 files changed, 19359 insertions(+), 3781 deletions(-)
 create mode 100644 docs/static/img/logos/plum.svg
 create mode 100644 superset-core/src/superset_core/semantic_layers/testing.py
 create mode 100644 superset-core/tests/semantic_layers/example_provider.py
 create mode 100644 superset-core/tests/semantic_layers/test_registration.py
 create mode 100644 superset-frontend/playwright/tests/dashboard/featured-charts-render.spec.ts
 copy superset-frontend/playwright/tests/explore/{explore-no-results.spec.ts => explore-download-image.spec.ts} (53%)
 delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/test/components/OlChartMap.test.tsx
 copy superset-frontend/plugins/{plugin-chart-parallel-coordinates/test => preset-chart-deckgl/src/Multi}/transformProps.test.ts (52%)
 copy superset-frontend/{src/chartCustomizations/components/DeckglLayerVisibility => plugins/preset-chart-deckgl/src/Multi}/transformProps.ts (72%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/factory.test.tsx
 copy superset-frontend/plugins/{plugin-chart-point-cluster-map => preset-chart-deckgl}/types/global.d.ts (92%)
 create mode 100644 superset-frontend/spec/helpers/runStopButton.ts
 create mode 100644 superset-frontend/src/components/Chart/ChartRenderer.refresh.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorNormalizeColumnsWarning.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.manyCharts.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ChartPills.behavior.test.tsx
 copy superset-frontend/src/explore/components/controls/{DateFilterControl/tests/CurrentCalendarFrame.test.tsx => CustomListItem/index.test.tsx} (50%)
 create mode 100644 superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewPopoverContent.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/SliderControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/SwitchControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/TimeRangeControl/index.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/VerticalRadioControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigsChart.test.tsx
 create mode 100644 superset-frontend/src/features/semanticViews/creationResult.ts
 create mode 100644 superset-frontend/src/hooks/useRunStopButton.ts
 create mode 100644 superset-frontend/src/utils/lazyWithRetry.test.tsx
 create mode 100644 superset-frontend/src/utils/lazyWithRetry.ts
 delete mode 100644 superset/common/tags.py
 create mode 100644 superset/migrations/versions/2026-09-30_00-00_d623a0cb6bb0_sweep_legacy_password_view_perms_from_all_roles.py
 create mode 100644 superset/semantic_layers/ordering.py
 delete mode 100644 tests/integration_tests/tagging_tests.py
 create mode 100644 tests/integration_tests/tags/race_tests.py
 copy superset-extensions-cli/src/superset_extensions_cli/constants.py => tests/unit_tests/commands/report/conftest.py (82%)
 create mode 100644 tests/unit_tests/commands/report/semantic_view_report_test.py
 copy {scripts => tests/unit_tests/commands/streaming_export}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/streaming_export/base_test.py
 create mode 100644 tests/unit_tests/mcp_service/common/test_list_scope_validation.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_list_dashboards.py
 create mode 100644 tests/unit_tests/migrations/test_sweep_legacy_password_view_perms.py
 create mode 100644 tests/unit_tests/semantic_layers/default_order_test.py
 create mode 100644 tests/unit_tests/tags/race_test.py
 create mode 100644 tests/unit_tests/views/test_archived_assets.py