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 02:27:34 UTC
(superset) branch fix/precommit-ci-skip-unneeded-installs updated (46a38a3bdbd -> 376caf56b83)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch fix/precommit-ci-skip-unneeded-installs
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 46a38a3bdbd fix(ci): keep Node setup for websocket-only changes, add css/json frontend test
omit 828fc1548d5 fix(ci): narrow frontend dependency-install path gate, fix stale comment, add docs test
omit a2a2f8c1056 fix(ci): eliminate SIGPIPE risk in pre-commit.yml's dependency-skip logic
omit 9995364f611 ci(pre-commit): skip frontend/docs dependency installs when unneeded
add d9bc4ea8580 fix(plugin-chart-pivot-table): sticky-position row labels and corner header cells (#43917)
add 2020fea4acb feat(storybook/build): generate Playwright-runnable tests from Storybook stories (#44964)
add e835d670d2e chore(deps-dev): bump prophet from 1.4.0 to 1.5.0 (#45324)
add 1aaabd8e435 fix(websocket): support Sentinel and full TLS options for Redis/Valkey (#45355)
add 3d82e3dfbcb chore(deps): bump cachetools from 7.2.0 to 7.2.1 (#45323)
add 5c5061b1c8e chore(deps-dev): bump clickhouse-connect from 1.9.0 to 1.10.0 (#45321)
add a23199762c5 fix(mypy): make UUIDMixin.uuid's nullable type resolve deterministically (#44817)
add e734cd00d43 chore(deps): bump react-syntax-highlighter from 16.1.1 to 16.1.2 in /superset-frontend (#45370)
add f2b71475ce2 chore(deps): bump @googleapis/sheets from 18.1.0 to 18.1.1 in /superset-frontend (#45369)
add 3dfb42a2937 chore(deps): bump astral-sh/setup-uv from 10.2.0 to 10.3.0 (#45368)
add 576cc9e0952 chore(deps): bump helm/chart-testing-action from 2.8.0 to 2.9.0 (#45367)
add 50d34f8aaa2 chore(deps-dev): bump syntaqlite from 0.9.0 to 0.12.1 (#45320)
add ad63b3eb7ab fix(impala): stop SQL Lab queries through the live cursor only (#45232)
add 86e186b5f60 fix(tests): stop the unit suite from retaining one Superset app per module (#45364)
add 19bb09461dc fix(examples): rewrite chart datasource references on import (#45378)
add 9c7ca9ba107 fix(docs): improve Kapa AI widget dark mode compatibility (#39102)
add 61d27b4aebe fix(sql): handle trailing comments after empty statements (#45274)
add 58b1de82815 fix(datasets): don't call physical datasets "virtual" in sync columns toast (#45376)
add 853f207c668 fix(dashboard): apply temporal x-axis cross-filters to target charts (#45310)
add c650cbd3c61 fix(import): return 422 instead of 500 for corrupt ZIP uploads (#45380)
add a9a7a35c4b4 fix(dashboard): show an access error for charts the viewer cannot read (#45398)
add 44eac5b37b2 fix(soft-delete): align dashboard card dialogs and archive permission hints (#45302)
add 21fad62645a fix(semantic-layer): resolve grain variants deterministically (#44454)
add a13af92ff34 fix(semantic-layer): return 400 for mapper validation refusals (#45292)
add a5d29a9d27d test(e2e): add a stub semantic-layer provider for Playwright (#45103)
add 84be38cfc90 chore(deps): update pygithub requirement from >=2.1.1 to >=2.10.0 (#45413)
add 31ee5719f77 fix(semantic layers): reject unknown compatibility selections (#45359)
add e336cd04c3c fix(mcp): keep refusal and rejection categories in get_chart_data (#45360)
add 5e1962e9a1d test(mcp): correct Dublin fold timestamp expectations (#45358)
add ae71281c519 fix(dashboard): resolve to a fixed point when un-clipping scrollable chart content (#44102)
add 4569608fc44 fix(pivot-table): keep MIN/MAX of non-numeric columns off the additive fast-path (#45408)
add dfd13baab0e fix(versioning): don't record dataset column and metric extra rewrites as edits (#45349)
add 4f49d24151d test(i18n): run the babel_update.sh msgcat tests on CI (#45247)
add e837c37bc29 fix(semantic-layer): raise typed rejections from the E2E stub provider (#45401)
add 4ccd337b932 chore(deps-dev): bump oracledb from 4.0.2 to 26.0.0 (#44443)
add 297449d68e7 fix(semantic layers): return 400 for ambiguous variants in compatibility name check (#45426)
add 663d691c311 fix(embedded): apply the chart-data guest redaction to samples and the legacy query endpoint (#45273)
add acdd2d27667 chore(deps-dev): bump oxlint-tsgolint in /docs (#45450)
add b8a4a5e20ad chore(deps): bump the swc group across 2 directories with 1 update (#45449)
add c812be8019f chore(deps): bump EnricoMi/publish-unit-test-result-action from 2.24.0 to 2.25.0 (#45448)
add 22654af3337 chore(deps): bump express from 5.2.1 to 5.3.0 in /superset-websocket/utils/client-ws-app (#45447)
add 118acbcde35 chore(deps): bump pydantic from 2.13.5 to 2.14.0 (#45417)
add 56ff8920385 fix(security): don't let dataset editorship substitute for data access (#45266)
add 99ecfe5801c chore(deps): bump sqlalchemy-utils from 0.42.1 to 0.43.0 (#45416)
add f0cfaff7881 fix(sql): decode async SQLExecutor results from the results backend (#45348)
add 8e6e91e4dc0 feat(semantic-layers): add the provider execution context contract (#45251)
add 53f14e7b7b1 fix(semantic-layer): refuse a chart's own filter on a column the semantic view lacks (#45294)
add 98d5fa50b4c fix(semantic-layer): validate views before creation (#45287)
add d36febc96ec fix(versioning): don't record save-path defaults as user changes (#45352)
add 5a1831000a9 fix: add dblink and pg_* state-mutating functions to SQL denylist (#45089)
add 88e92663b8f fix(semantic-layers): restore mocking compatibility after implementation became a plain property (#45501)
add 152e1e9de9a fix(dataset): convert timezone-aware values with the dataset timezone (#45344)
add 25e94d00d37 fix(pivot-table): stop the grand-total corner from silently picking one metric (#44657)
add d285a1abae8 fix(dashboards): prevent horizontal filter bar from vanishing on cross-filter (#45050) (#45051)
add 15f55686ea9 fix(dashboard): respect DASHBOARD_AUTO_REFRESH_INTERVALS configuration in refresh dropdown (#45039)
add 1e18d01d76d feat(mcp): add caller-scoped PNG chart previews (#44558)
add 9c287d989a8 feat(build): migrate to Typescript 6 (#44726)
add 7b23ddea9f6 chore(build): migrate from external `copy-webpack-plugin` to Webpack-native `output.copy` (#44965)
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 78e7c0e49d9 ci(pre-commit): skip frontend/docs dependency installs when unneeded
add 9e7f80fdb2f fix(ci): eliminate SIGPIPE risk in pre-commit.yml's dependency-skip logic
add aa44422b97d fix(ci): narrow frontend dependency-install path gate, fix stale comment, add docs test
add 376caf56b83 fix(ci): keep Node setup for websocket-only changes, add css/json frontend test
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (46a38a3bdbd)
\
N -- N -- N refs/heads/fix/precommit-ci-skip-unneeded-installs (376caf56b83)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/workflows/bashlib.sh | 13 +
.github/workflows/bump-python-package.yml | 2 +-
.github/workflows/chromatic.yml | 2 +-
.github/workflows/pre-commit.yml | 14 +
.github/workflows/python-nightly-canary.yml | 6 +
.github/workflows/superset-e2e.yml | 14 +
.github/workflows/superset-frontend.yml | 2 +-
.github/workflows/superset-helm-lint-test.yml | 2 +-
.../workflows/superset-python-unittest-report.yml | 2 +-
.github/workflows/superset-python-unittest.yml | 13 +
.gitignore | 2 +
.pre-commit-config.yaml | 39 +-
RELEASING/requirements.txt | 2 +-
RESOURCES/INTHEWILD.yaml | 5 +
UPDATING.md | 138 +-
docs/admin_docs/configuration/cache.mdx | 16 +
docs/admin_docs/configuration/mcp-server.mdx | 5 +-
.../extensions/contribution-types.md | 83 +-
docs/developer_docs/extensions/development.md | 37 +
.../extensions/semantic-execution-context.md | 102 +
docs/developer_docs/semantic-layer-cache-clear.md | 17 +-
docs/developer_docs/semantic-query-errors.md | 21 +
.../creating-your-first-dashboard.mdx | 43 +-
docs/docs/using-superset/exploring-data.mdx | 13 +
docs/docs/using-superset/recently-archived.mdx | 4 +
.../using-superset/semantic-layer-connections.mdx | 6 +
docs/docs/using-superset/version-history.mdx | 8 +-
docs/docusaurus.config.ts | 53 +-
docs/package.json | 8 +-
docs/static/img/logos/plum.svg | Bin 0 -> 4215 bytes
docs/static/resources/openapi.json | 5 +
docs/yarn.lock | 256 +-
pyproject.toml | 16 +-
requirements/base.txt | 10 +-
requirements/development.in | 2 +-
requirements/development.txt | 18 +-
scripts/change_detector.py | 1 +
superset-core/pyproject.toml | 5 +-
.../src/superset_core/semantic_layers/context.py | 62 +
.../src/superset_core/semantic_layers/layer.py | 45 +-
.../src/superset_core/semantic_layers/testing.py | 61 +
.../src/superset_core/semantic_layers/types.py | 42 +-
.../src/superset_core/semantic_layers/view.py | 25 +-
.../tests/semantic_layers/example_provider.py | 167 +
.../semantic_layers/test_execution_context.py | 71 +
.../tests/semantic_layers/test_registration.py | 153 +
superset-embedded-sdk/package-lock.json | 8 +-
superset-embedded-sdk/package.json | 2 +-
.../templates/frontend/package.json.j2 | 1 -
superset-frontend/.storybook/main.mjs | 10 +-
.../playwright.storybook-ci.config.ts} | 23 +-
superset-frontend/.storybook/setup-stories.test.ts | 156 +
superset-frontend/.storybook/setup-stories.ts | 179 +
.../.storybook/stories.spec.ts | 12 +-
superset-frontend/.storybook/test-runner.ts | 38 -
superset-frontend/jest.config.js | 3 +-
superset-frontend/package-lock.json | 34544 +++++++++----------
superset-frontend/package.json | 30 +-
.../packages/superset-core/package.json | 2 +-
.../packages/superset-core/tsconfig.json | 18 +-
.../src/operators/utils/extractExtraMetrics.ts | 4 +-
.../components/RadioButtonControl.tsx | 9 +-
.../src/utils/getTemporalColumns.ts | 4 +-
.../src/utils/metricColumnFilter.ts | 4 +-
.../superset-ui-chart-controls/tsconfig.json | 18 +-
.../packages/superset-ui-core/package.json | 4 +-
.../src/components/CronPicker/CronPicker.test.tsx | 28 +-
.../src/components/CronPicker/index.tsx | 6 +-
.../DropdownContainer/DropdownContainer.test.tsx | 28 +
.../src/components/DropdownContainer/types.ts | 4 +-
.../src/components/Loading/Loading.stories.tsx | 5 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 2 +-
.../src/components/Typography/index.tsx | 3 +-
.../packages/superset-ui-core/tsconfig.json | 18 +-
.../packages/superset-ui-switchboard/tsconfig.json | 18 +-
.../playwright/helpers/api/dashboard.ts | 28 +
.../playwright/helpers/api/semanticLayer.test.ts | 65 +
.../playwright/helpers/api/semanticLayer.ts | 136 +
.../playwright/helpers/fixtures/testAssets.ts | 25 +-
superset-frontend/playwright/pages/ExplorePage.ts | 23 +-
.../tests/dashboard/dashboard-test-helpers.ts | 20 +-
.../tests/dashboard/featured-charts-render.spec.ts | 234 +
.../dashboard/version-history-placement.spec.ts | 39 +-
...ults.spec.ts => explore-download-image.spec.ts} | 44 +-
.../semantic-view/semantic-view-dashboard.spec.ts | 204 +
.../tests/version-history/activity-log.spec.ts | 14 +-
.../src/utils/useTableTheme.ts | 42 -
.../plugin-chart-ag-grid-table/tsconfig.json | 18 +-
.../plugins/plugin-chart-calendar/tsconfig.json | 18 +-
.../src/components/OlChartMap.tsx | 18 +-
.../test/components/OlChartMap.test.tsx | 108 +
.../plugin-chart-cartodiagram/tsconfig.json | 18 +-
.../plugin-chart-cartodiagram/types/external.d.ts | 2 +
.../plugins/plugin-chart-chord/tsconfig.json | 18 +-
.../plugins/plugin-chart-country-map/tsconfig.json | 18 +-
.../src/Candlestick/constants.ts | 12 +-
.../src/Candlestick/controlPanel.tsx | 8 +-
.../src/Timeseries/EchartsTimeseries.tsx | 4 +
.../src/utils/mergeCustomEChartOptions.test.ts | 67 +
.../src/utils/mergeCustomEChartOptions.ts | 17 +
.../test/Candlestick/controlPanel.test.ts | 10 +
.../test/Candlestick/transformProps.test.ts | 17 +
.../test/Rose/buildQuery.test.ts | 12 +-
.../test/Timeseries/EchartsTimeseries.test.tsx | 6 +
.../test/Timeseries/transformProps.test.ts | 4 +
.../plugins/plugin-chart-echarts/tsconfig.json | 18 +-
.../plugins/plugin-chart-handlebars/tsconfig.json | 18 +-
.../plugins/plugin-chart-horizon/tsconfig.json | 18 +-
.../plugin-chart-paired-t-test/tsconfig.json | 18 +-
.../tsconfig.json | 18 +-
.../plugins/plugin-chart-partition/tsconfig.json | 18 +-
.../src/PivotTableChart.tsx | 2 +
.../src/plugin/buildQuery.ts | 35 +-
.../src/plugin/controlPanel.tsx | 54 +-
.../src/plugin/resultAggregation.ts | 121 +
.../src/plugin/transformProps.ts | 37 +-
.../src/plugin/utilities.ts | 42 +-
.../src/react-pivottable/Styles.ts | 98 +-
.../src/react-pivottable/TableRenderers.tsx | 106 +-
.../src/react-pivottable/utilities.ts | 739 +-
.../plugins/plugin-chart-pivot-table/src/types.ts | 1 +
.../test/PivotTableChart.test.tsx | 22 +
.../test/plugin/buildQuery.test.ts | 21 +
.../test/plugin/transformProps.test.ts | 82 +-
.../test/plugin/utilities.test.ts | 49 +-
.../test/react-pivottable/Styles.test.tsx | 328 +
.../test/react-pivottable/tableRenders.test.tsx | 90 +-
.../test/react-pivottable/utilities.test.ts | 890 +-
.../plugin-chart-pivot-table/test/testData.ts | 68 +
.../plugins/plugin-chart-pivot-table/tsconfig.json | 18 +-
.../src/MapLibre.tsx | 35 +-
.../test/MapLibre.test.tsx | 69 +-
.../plugin-chart-point-cluster-map/tsconfig.json | 16 +-
.../types/external.d.ts | 2 +
.../plugins/plugin-chart-table/src/Styles.tsx | 4 +
.../plugins/plugin-chart-table/src/TableChart.tsx | 7 +-
.../plugin-chart-table/test/TableChart.test.tsx | 129 +-
.../plugins/plugin-chart-table/tsconfig.json | 18 +-
.../plugins/plugin-chart-word-cloud/tsconfig.json | 18 +-
.../plugins/plugin-chart-world-map/tsconfig.json | 18 +-
.../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 +
.../plugins/preset-chart-deckgl/tsconfig.json | 16 +-
.../preset-chart-deckgl/types/external.d.ts | 2 +
.../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 +-
.../RunQueryActionButton.test.tsx | 545 +-
.../components/RunQueryActionButton/index.tsx | 37 +-
.../src/components/Chart/Chart.test.tsx | 38 +
superset-frontend/src/components/Chart/Chart.tsx | 8 +
.../Chart/ChartRenderer.refresh.test.tsx | 302 +
.../src/components/Chart/ChartRenderer.test.tsx | 19 +
.../src/components/Chart/ChartRenderer.tsx | 90 +-
.../src/components/Chart/chartAction.ts | 34 +
.../src/components/Chart/chartActions.test.ts | 62 +
.../DatasourceEditor/DatasourceEditor.tsx | 45 +-
...atasourceEditorNormalizeColumnsWarning.test.tsx | 146 +
.../src/components/Datasource/utils/index.ts | 12 +-
.../src/components/Datasource/utils/utils.test.tsx | 28 +-
.../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 +-
.../src/dashboard/actions/hydrate.test.ts | 43 +
superset-frontend/src/dashboard/actions/hydrate.ts | 32 +-
.../components/AnchorLink/AnchorLink.test.tsx | 2 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 137 +-
.../DashboardBuilder/DashboardBuilder.tsx | 149 +-
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../src/dashboard/components/Header/index.tsx | 4 +-
.../PropertiesModal.manyCharts.test.tsx | 107 +
.../dashboard/components/PropertiesModal/index.tsx | 9 +-
.../PropertiesModal/sections/AccessSection.tsx | 2 +-
.../RefreshFrequencySelect.test.tsx | 99 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 43 +-
.../components/gridComponents/Header/Header.tsx | 2 +-
.../DownloadMenuItems/DownloadMenuItems.test.tsx | 4 +-
.../FilterControls.overflow.test.tsx | 269 +
.../FilterBar/FilterControls/FilterControls.tsx | 4 +-
.../FilterBar/FilterControls/FilterValue.test.tsx | 20 +
.../FilterBar/FilterControls/FilterValue.tsx | 12 +-
.../hooks/useFilterOperations.test.ts | 145 +-
.../hooks/useItemStateManager.ts | 28 +-
superset-frontend/src/dashboard/types.ts | 2 +-
.../util/charts/getFormDataWithExtraFilters.ts | 7 +-
.../util/getFormDataWithExtraFilters.test.ts | 49 +
.../src/explore/actions/saveModalActions.test.ts | 212 +
.../src/explore/actions/saveModalActions.ts | 14 +
.../components/ChartPills.behavior.test.tsx | 158 +
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 289 +
.../ExploreChartPanel/ExploreChartPanel.test.tsx | 28 +-
.../explore/components/ExploreChartPanel/index.tsx | 6 +
.../ExploreViewContainer.test.tsx | 276 +-
.../components/LegacyAggregationAlert.test.tsx | 302 +
.../explore/components/LegacyAggregationAlert.tsx | 115 +
.../RunQueryButton/RunQueryButton.test.tsx | 361 +-
.../explore/components/RunQueryButton/index.tsx | 6 +-
.../controls/ComparisonRangeLabel.test.tsx | 38 +-
.../components/controls/ComparisonRangeLabel.tsx | 24 +-
.../ConditionalFormattingControl.test.tsx | 112 +-
.../ConditionalFormattingControl.tsx | 12 +-
.../index.test.tsx} | 39 +-
.../DatasourceControl/DatasourceControl.test.tsx | 2 +-
.../controls/FixedOrMetricControl/index.tsx | 2 +-
.../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 +
superset-frontend/src/explore/constants.ts | 10 +
.../exploreUtils/legacyAggregationTag.test.ts | 137 +
.../explore/exploreUtils/legacyAggregationTag.ts | 93 +
superset-frontend/src/explore/types.ts | 2 +
.../src/features/charts/ChartCard.test.tsx | 32 +
.../src/features/charts/ChartCard.tsx | 10 +-
.../src/features/dashboards/DashboardCard.test.tsx | 47 +-
.../src/features/dashboards/DashboardCard.tsx | 14 +-
.../src/features/home/DashboardTable.test.tsx | 58 +-
.../src/features/home/DashboardTable.tsx | 31 +-
.../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 +
superset-frontend/src/features/tags/tags.ts | 2 +-
.../src/features/versionHistory/ActionRow.tsx | 5 +-
.../versionHistory/CurrentVersionSection.tsx | 12 +-
.../DashboardVersionHistory.test.tsx | 4 +-
.../versionHistory/RelatedUpdateRow.test.tsx | 27 +
.../features/versionHistory/RelatedUpdateRow.tsx | 5 +-
.../features/versionHistory/SaveGroupItem.test.tsx | 88 +-
.../src/features/versionHistory/SaveGroupItem.tsx | 66 +-
.../versionHistory/VersionHistoryPanel.test.tsx | 139 +-
.../versionHistory/VersionHistoryPanel.tsx | 54 +-
.../src/features/versionHistory/display.test.ts | 75 +
.../src/features/versionHistory/display.ts | 61 +-
.../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 +-
.../pages/ChartList/ChartList.permissions.test.tsx | 27 +-
superset-frontend/src/pages/ChartList/index.tsx | 10 +-
.../DashboardList/DashboardList.cardview.test.tsx | 77 +-
.../DashboardList.permissions.test.tsx | 34 +-
.../src/pages/DashboardList/index.tsx | 31 +-
.../DatasetList/DatasetList.permissions.test.tsx | 30 +
superset-frontend/src/pages/DatasetList/index.tsx | 10 +-
superset-frontend/src/types/Dashboard.ts | 1 +
superset-frontend/src/types/bootstrapTypes.ts | 1 +
superset-frontend/tsconfig.json | 18 +-
superset-frontend/webpack.config.js | 36 +-
superset-websocket/README.md | 25 +
superset-websocket/config.example.json | 10 +-
superset-websocket/package-lock.json | 64 +-
superset-websocket/package.json | 4 +-
superset-websocket/spec/config.test.ts | 42 +
superset-websocket/spec/index.test.ts | 161 +-
superset-websocket/src/config.ts | 75 +
superset-websocket/src/index.ts | 93 +-
.../utils/client-ws-app/package-lock.json | 147 +-
.../utils/client-ws-app/package.json | 2 +-
superset/app.py | 28 +-
superset/charts/api.py | 7 +-
superset/charts/client_processing.py | 302 +-
superset/charts/data/api.py | 48 +-
superset/charts/data/dashboard_filter_context.py | 22 +
superset/commands/chart/data/get_data_command.py | 37 +-
superset/commands/chart/exceptions.py | 4 +
superset/commands/dataset/create.py | 69 +-
superset/commands/dataset/duplicate.py | 48 +-
superset/commands/dataset/exceptions.py | 46 +
superset/commands/dataset/importers/v1/utils.py | 194 +-
superset/commands/dataset/update.py | 127 +-
superset/commands/importers/v1/examples.py | 8 +-
superset/commands/importers/v1/utils.py | 49 +-
superset/commands/semantic_layer/create.py | 44 +-
superset/commands/semantic_layer/utils.py | 2 +-
superset/commands/sql_lab/execute.py | 12 +
superset/commands/streaming_export/base.py | 34 +-
superset/common/db_query_status.py | 6 +
superset/common/form_data_query_context.py | 30 +
superset/common/query_context_factory.py | 20 +-
superset/common/query_context_processor.py | 26 +-
superset/common/query_object_factory.py | 31 +-
superset/common/utils/time_range_utils.py | 32 +-
superset/config.py | 16 +
superset/daos/dashboard.py | 151 +-
superset/dashboards/api.py | 11 +-
superset/dashboards/schemas.py | 3 +
superset/databases/api.py | 7 +-
superset/datasets/api.py | 7 +-
superset/datasource/api.py | 150 +-
superset/db_engine_specs/impala.py | 47 +-
superset/db_engine_specs/trino.py | 33 +-
superset/errors.py | 1 +
superset/exceptions.py | 27 +
superset/extensions/metadb.py | 3 +-
superset/importexport/api.py | 7 +-
superset/initialization/__init__.py | 27 +-
superset/jinja_context.py | 17 +
superset/key_value/types.py | 3 +
superset/mcp_service/README.md | 41 +
superset/mcp_service/chart/chart_helpers.py | 7 +
superset/mcp_service/chart/schemas.py | 42 +-
superset/mcp_service/chart/tool/get_chart_data.py | 53 +-
.../mcp_service/chart/tool/get_chart_preview.py | 141 +-
superset/mcp_service/constants.py | 1 +
superset/mcp_service/dashboard_scope_sql.py | 7 +-
superset/mcp_service/mcp_config.py | 3 +
superset/mcp_service/middleware.py | 27 +
...141b8ada7731_tag_pivot_tables_with_restored_.py | 334 +
superset/models/dashboard.py | 13 +
superset/models/helpers.py | 175 +-
superset/queries/saved_queries/api.py | 7 +-
superset/result_set.py | 5 +
superset/security/manager.py | 65 +-
superset/semantic_layers/api.py | 8 +-
superset/semantic_layers/cache_host.py | 19 +-
superset/semantic_layers/cache_policy.py | 14 +-
superset/semantic_layers/cache_repository.py | 14 +-
superset/semantic_layers/cache_transform.py | 17 +-
superset/semantic_layers/dimension_resolution.py | 117 +
superset/semantic_layers/execution.py | 286 +
superset/semantic_layers/mapper.py | 341 +-
superset/semantic_layers/models.py | 164 +-
superset/semantic_layers/ordering.py | 59 +
superset/sql/execution/celery_task.py | 79 +-
superset/sql/execution/executor.py | 233 +-
superset/sql/execution/serialization.py | 130 +
superset/sql/parse.py | 54 +-
superset/sql_lab.py | 10 +-
superset/sqllab/api.py | 4 +-
superset/tags/models.py | 84 +-
superset/tasks/async_queries.py | 34 +-
superset/tasks/schemas.py | 9 +
superset/themes/api.py | 7 +-
superset/translations/ar/LC_MESSAGES/messages.po | 353 +-
superset/translations/ca/LC_MESSAGES/messages.po | 327 +-
superset/translations/cs/LC_MESSAGES/messages.po | 335 +-
superset/translations/de/LC_MESSAGES/messages.po | 327 +-
superset/translations/en/LC_MESSAGES/messages.po | 309 +-
superset/translations/es/LC_MESSAGES/messages.po | 327 +-
superset/translations/fa/LC_MESSAGES/messages.po | 321 +-
superset/translations/fi/LC_MESSAGES/messages.po | 343 +-
superset/translations/fr/LC_MESSAGES/messages.po | 329 +-
superset/translations/it/LC_MESSAGES/messages.po | 349 +-
superset/translations/ja/LC_MESSAGES/messages.po | 323 +-
superset/translations/ko/LC_MESSAGES/messages.po | 336 +-
superset/translations/lv/LC_MESSAGES/messages.po | 335 +-
superset/translations/messages.pot | 321 +-
superset/translations/mi/LC_MESSAGES/messages.po | 327 +-
superset/translations/nl/LC_MESSAGES/messages.po | 321 +-
superset/translations/pl/LC_MESSAGES/messages.po | 324 +-
superset/translations/pt/LC_MESSAGES/messages.po | 349 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 321 +-
superset/translations/ro/LC_MESSAGES/messages.po | 338 +-
superset/translations/ru/LC_MESSAGES/messages.po | 336 +-
superset/translations/sk/LC_MESSAGES/messages.po | 335 +-
superset/translations/sl/LC_MESSAGES/messages.po | 343 +-
superset/translations/sr/LC_MESSAGES/messages.po | 357 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 357 +-
superset/translations/ta/LC_MESSAGES/messages.po | 327 +-
superset/translations/th/LC_MESSAGES/messages.po | 335 +-
superset/translations/tr/LC_MESSAGES/messages.po | 322 +-
superset/translations/uk/LC_MESSAGES/messages.po | 343 +-
superset/translations/zh/LC_MESSAGES/messages.po | 313 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 313 +-
superset/utils/core.py | 11 +-
superset/utils/date_parser.py | 7 +-
superset/utils/error_sanitization.py | 38 +
superset/utils/excel.py | 7 +-
superset/utils/screenshot_utils.py | 34 +-
superset/utils/webdriver.py | 4 +-
superset/versioning/changes/shadow_queries.py | 9 +-
superset/versioning/diff.py | 124 +-
superset/versioning/restore.py | 41 +-
superset/views/api.py | 5 +
superset/views/archived_assets.py | 18 +-
superset/views/base.py | 4 +
superset/views/datasource/views.py | 80 +-
.../src/superset_e2e_semantic_stub/__init__.py | 290 +
.../semantic_stub/dist/manifest.json | 10 +
tests/integration_tests/dashboards/api_tests.py | 91 +
.../dashboards/version_restore_tests.py | 358 +
tests/integration_tests/datasource/api_tests.py | 237 +-
tests/integration_tests/security_tests.py | 113 +-
...ist_off.py => superset_test_config_semantic.py} | 24 +-
tests/integration_tests/tags/race_tests.py | 94 +
tests/integration_tests/tasks/api_tests.py | 78 +-
.../common => tests/mypy_fixtures}/__init__.py | 8 +-
tests/mypy_fixtures/uuid_mixin_nullable.py | 44 +
.../charts/commands/data/test_get_data_command.py | 63 +-
.../charts/commands/importers/v1/import_test.py | 46 +
.../charts/data/streaming_filename_test.py | 18 +-
tests/unit_tests/charts/test_client_processing.py | 822 +-
tests/unit_tests/commands/dataset/test_create.py | 268 +-
.../unit_tests/commands/dataset/test_duplicate.py | 136 +-
tests/unit_tests/commands/dataset/update_test.py | 475 +-
.../commands/importers/v1/examples_test.py | 51 +
.../unit_tests/commands/importers/v1/utils_test.py | 143 +
.../unit_tests/commands/report/conftest.py | 6 +-
.../commands/report/semantic_view_report_test.py | 232 +
.../commands/semantic_layer/create_test.py | 148 +-
.../commands/semantic_layer/update_test.py | 12 +-
tests/unit_tests/commands/sql_lab/test_estimate.py | 27 +
tests/unit_tests/commands/sql_lab/test_execute.py | 92 +
.../commands/streaming_export}/__init__.py | 0
.../commands/streaming_export/base_test.py | 51 +
.../common/test_query_context_factory.py | 35 +
.../common/test_query_context_processor.py | 76 +-
tests/unit_tests/common/test_time_range_utils.py | 27 +
tests/unit_tests/conftest.py | 53 +-
tests/unit_tests/dao/dashboard_test.py | 581 +
tests/unit_tests/dao/query_stop_isolation_test.py | 126 +
.../dao/test_copy_dashboard_legacy_ids.py | 51 +
tests/unit_tests/daos/test_query_dao.py | 21 +-
tests/unit_tests/dashboards/datasets_test.py | 86 +
tests/unit_tests/databases/api_test.py | 47 +-
.../datasets/commands/importers/v1/import_test.py | 608 +-
tests/unit_tests/datasource/test_compatible_api.py | 98 +
.../db_engine_specs/test_impala_pending.py | 129 +-
tests/unit_tests/db_engine_specs/test_trino.py | 1104 +-
tests/unit_tests/exceptions_test.py | 46 +
tests/unit_tests/importexport/api_test.py | 42 +
tests/unit_tests/initialization_test.py | 9 +-
.../mcp_service/chart/test_bullet_chart.py | 18 +-
.../mcp_service/chart/test_bullet_tool_paths.py | 21 +-
.../mcp_service/chart/test_chart_helpers.py | 25 +
.../chart/test_native_chart_regressions.py | 24 +
.../mcp_service/chart/test_new_chart_types.py | 26 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 325 +-
.../chart/tool/test_get_chart_preview.py | 413 +
.../mcp_service/dataset/tool/test_query_dataset.py | 44 +-
.../mcp_service/native_tool_inventory.json | 30 +-
.../test_compatibility_selection_validation.py | 9 +-
.../semantic_layer/tool/test_get_table.py | 27 +-
.../semantic_layer/tool/test_list_metrics.py | 25 +-
.../mcp_service/test_dashboard_scope_sql.py | 24 +
tests/unit_tests/mcp_service/test_middleware.py | 5 +-
.../mcp_service/test_validation_contract.py | 2 +-
...t_tag_pivot_tables_with_restored_aggregation.py | 461 +
tests/unit_tests/models/helpers_test.py | 622 +-
tests/unit_tests/models/template_params_test.py | 68 +
tests/unit_tests/models/test_multivalue_filter.py | 138 +
tests/unit_tests/scripts/change_detector_test.py | 13 +
.../scripts/translations/babel_update_test.py | 105 +-
tests/unit_tests/security/manager_test.py | 174 +
tests/unit_tests/semantic_layers/api_test.py | 123 +-
.../unit_tests/semantic_layers/cache_host_test.py | 6 +
.../semantic_layers/cache_transform_test.py | 8 +-
tests/unit_tests/semantic_layers/conftest.py | 171 +
.../semantic_layers/default_order_test.py | 376 +
.../semantic_layers/dimension_resolution_test.py | 161 +
.../semantic_layers/e2e_stub_extension_test.py | 220 +
.../semantic_layers/execution_context_test.py | 1141 +
.../semantic_layers/grain_validation_test.py | 6 +-
.../semantic_layers/integer_precision_test.py | 14 +-
tests/unit_tests/semantic_layers/mapper_test.py | 989 +-
.../semantic_layers/metadata_contract_test.py | 92 +-
.../semantic_layers/metric_filter_test.py | 137 +-
tests/unit_tests/semantic_layers/models_test.py | 252 +-
.../semantic_layers/query_errors_test.py | 301 +-
.../semantic_layers/simple_cache_clear_test.py | 106 +-
.../semantic_layers/values_endpoint_test.py | 212 +
tests/unit_tests/sql/execution/conftest.py | 5 +-
.../unit_tests/sql/execution/test_async_results.py | 1500 +
tests/unit_tests/sql/execution/test_celery_task.py | 136 +-
tests/unit_tests/sql/execution/test_executor.py | 39 +
tests/unit_tests/sql/parse_tests.py | 110 +
tests/unit_tests/sqllab/api_test.py | 24 +-
tests/unit_tests/tags/models_test.py | 6 +-
tests/unit_tests/tags/race_test.py | 225 +
tests/unit_tests/tasks/test_async_queries.py | 139 +-
tests/unit_tests/tasks/test_schemas.py | 62 +
tests/unit_tests/test_app_reinitialization.py | 114 +
tests/unit_tests/themes/api_test.py | 33 +
tests/unit_tests/utils/excel_tests.py | 13 +
tests/unit_tests/utils/test_core.py | 20 +
tests/unit_tests/utils/test_error_sanitization.py | 94 +
tests/unit_tests/utils/test_screenshot_utils.py | 134 +
.../versioning/test_dataset_child_extra.py | 148 +
.../versioning/test_diff_save_defaults.py | 264 +
tests/unit_tests/versioning/test_shadow_queries.py | 79 +
tests/unit_tests/views/datasource/views_test.py | 440 +-
tests/unit_tests/views/test_archived_assets.py | 86 +
tests/unit_tests/views/test_base.py | 72 +
508 files changed, 60753 insertions(+), 23052 deletions(-)
create mode 100644 docs/developer_docs/extensions/semantic-execution-context.md
create mode 100644 docs/static/img/logos/plum.svg
create mode 100644 superset-core/src/superset_core/semantic_layers/context.py
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_execution_context.py
create mode 100644 superset-core/tests/semantic_layers/test_registration.py
copy superset-frontend/{packages/superset-ui-core/src/components/EmptyState/Empty.tsx => .storybook/playwright.storybook-ci.config.ts} (64%)
create mode 100644 superset-frontend/.storybook/setup-stories.test.ts
create mode 100644 superset-frontend/.storybook/setup-stories.ts
copy docs/src/types/yaml.d.ts => superset-frontend/.storybook/stories.spec.ts (77%)
delete mode 100644 superset-frontend/.storybook/test-runner.ts
create mode 100644 superset-frontend/playwright/helpers/api/semanticLayer.test.ts
create mode 100644 superset-frontend/playwright/helpers/api/semanticLayer.ts
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%)
create mode 100644 superset-frontend/playwright/tests/semantic-view/semantic-view-dashboard.spec.ts
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
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/src/plugin/resultAggregation.ts
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/test/react-pivottable/Styles.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
create mode 100644 superset-frontend/src/explore/components/LegacyAggregationAlert.test.tsx
create mode 100644 superset-frontend/src/explore/components/LegacyAggregationAlert.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/explore/exploreUtils/legacyAggregationTag.test.ts
create mode 100644 superset-frontend/src/explore/exploreUtils/legacyAggregationTag.ts
create mode 100644 superset-frontend/src/features/semanticViews/creationResult.ts
create mode 100644 superset-frontend/src/hooks/useRunStopButton.ts
create mode 100644 superset/migrations/versions/2026-09-25_00-00_141b8ada7731_tag_pivot_tables_with_restored_.py
create mode 100644 superset/semantic_layers/dimension_resolution.py
create mode 100644 superset/semantic_layers/execution.py
create mode 100644 superset/semantic_layers/ordering.py
create mode 100644 superset/sql/execution/serialization.py
create mode 100644 tests/e2e_extensions/semantic_stub/dist/backend/src/superset_e2e_semantic_stub/__init__.py
create mode 100644 tests/e2e_extensions/semantic_stub/dist/manifest.json
copy tests/integration_tests/{superset_test_config_sqllab_backend_persist_off.py => superset_test_config_semantic.py} (52%)
create mode 100644 tests/integration_tests/tags/race_tests.py
copy {superset-core/src/superset_core/common => tests/mypy_fixtures}/__init__.py (75%)
create mode 100644 tests/mypy_fixtures/uuid_mixin_nullable.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/dao/query_stop_isolation_test.py
create mode 100644 tests/unit_tests/datasource/test_compatible_api.py
create mode 100644 tests/unit_tests/exceptions_test.py
create mode 100644 tests/unit_tests/migrations/test_tag_pivot_tables_with_restored_aggregation.py
create mode 100644 tests/unit_tests/models/template_params_test.py
create mode 100644 tests/unit_tests/semantic_layers/default_order_test.py
create mode 100644 tests/unit_tests/semantic_layers/dimension_resolution_test.py
create mode 100644 tests/unit_tests/semantic_layers/e2e_stub_extension_test.py
create mode 100644 tests/unit_tests/semantic_layers/execution_context_test.py
create mode 100644 tests/unit_tests/sql/execution/test_async_results.py
create mode 100644 tests/unit_tests/tags/race_test.py
create mode 100644 tests/unit_tests/test_app_reinitialization.py
create mode 100644 tests/unit_tests/versioning/test_dataset_child_extra.py
create mode 100644 tests/unit_tests/versioning/test_diff_save_defaults.py
create mode 100644 tests/unit_tests/views/test_archived_assets.py