This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch chore/sqla2-mark-fixed-warnings
in repository https://gitbox.apache.org/repos/asf/superset.git
omit cd70c01beb9 refactor(sqla2): migrate off sqlalchemy.ext.declarative,
lock in 3 more 2.0 warnings
add baff395d983 feat(mcp): add list_themes, get_theme_info, and
create_theme tools (#41497)
add bea5f8d4a44 fix(dashboard): stagger manual refresh to prevent worker
saturation (#40512)
add 43bfc85941c fix(db): validate schema and table cache timeout to reject
negative values (#38490)
add 2380d576d54 fix(cli): avoid DetachedInstanceError in
compute-thumbnails (#41530)
add 1bfb7c60e7c fix(ci): repair stale mock target breaking Python-Unit on
master (#41911)
add a899e1db414 feat(versioning): entity-version base infrastructure
(gated off, dark launch) (#41176)
add 0ff52d46e07 fix(docs): correct broken In the Wild logo for Région
Hauts-de-France (#41918)
add ea76d0d785e chore(deps): bump cookie from 1.1.1 to 2.0.1 in
/superset-websocket (#41874)
add be600f78fc6 chore(deps): upgrade ag-grid to 36.0.0 (#41882)
add 597c9c6fea6 fix: do not require recaptcha public key for LDAP
authentication (#37009)
add e2ba378b699 fix(sqllab): redirect legacy /superset/sql/<db_id>/ deep
links (#41759)
add 38707866c02 chore(deps-dev): bump baseline-browser-mapping from
2.10.40 to 2.10.41 in /superset-frontend (#41929)
add 169c05f8ce8 chore(deps-dev): bump tsx from 4.22.4 to 4.22.5 in
/superset-frontend (#41928)
add 2a3d65f61a6 chore(deps): bump docker/login-action from 4.3.0 to 4.4.0
(#41927)
add 1ddc3e45d77 chore(deps): bump @deck.gl/mapbox from 9.3.5 to 9.3.6 in
/superset-frontend (#41926)
add 1631d52b650 fix(CollectionControl): a11y drag handle and vertical axis
lock (#39863)
add 2112fbd3798 feat(subjects): add read-only Subject REST API and DAO
(#41897)
add a6ce2fd76b0 fix(mcp): patch list_metrics DAOs via module object to
avoid Python 3.10 mock resolution bug (#41881)
add 5b8e94de267 feat(semantic layers): dashboard filters (#40475)
add bd61e09b4ea fix(mcp): bind Big Number chart to a temporal column for
dashboard time filters (#41895)
add bc80d138fdc chore(deps): bump slack-sdk from 3.42.0 to 3.43.0 (#41893)
add 35712ff9770 fix(sqllab): show truncated table list warning (#41617)
add 4dde4d2c706 fix(versioning): make baseline capture atomic (#41941)
add 38181521912 fix(mcp): user/role tools demanded a permission FAB never
registers (#41858)
add 51ce2b11ad3 chore(deps-dev): update impyla requirement from
<0.23,>0.16.2 to >=0.24.0,<0.25 (#41951)
add 7a752d1c228 fix(dashboard): restore arrow key navigation in modal
inputs opened from dropdown (#37978)
add 5c12f216d51 feat(mcp): add delete_chart and delete_dashboard tools
(#41472)
add 678fcba8b48 feat(helm): Superset 6 structured config schema with
deprecation path (#41777)
add b641008da6a fix(versioning): preserve complete multi-flush history
(#41940)
add df209cedbf8 chore(deps-dev): update sqlalchemy-firebird requirement
from <2.2,>=0.7.0 to >=0.8.0,<2.2 (#41950)
add e8521471820 test: add edge-case tests for datetime_to_epoch function
(#39404)
add a03cabffa77 perf(csv): avoid regex in CSV value escaping (#40195)
add 0ecf34d80e1 fix(a11y): add aria-label to ViewportControl text inputs
(#41931)
add b237aefb1ea fix(a11y): add aria-label to RightMenu documentation and
bug-report icon links (#41903)
add f5deda78641 fix(dataset): copy catalog field when duplicating a
BigQuery dataset (#41106)
add 189f258e0ce fix(drill): coerce temporal drill filter values (#40180)
add 5e6b29d1a32 chore(deps-dev): bump sqlalchemy-hana from 0.4.0 to 3.0.3
(#41953)
add 49dc0acd827 fix(pre-commit): prettier hook drops first file and never
batches (#41944)
add b8c0171976d test(rls): assert related/subjects honors search filter
for roles (#31466) (#41969)
add 958d1ab256a test(rls): assert dataset search returns all mask matches
(#29707) (#41968)
add 13c5a324027 fix(tests): correct stale TYPE_CHECKING import path in
base_data_loader (#41972)
add a1d1d69f5ea ci: enforce SQLAlchemy 2.0 deprecation warnings in
unit-test CI (#41915)
add 2a18a556b09 chore(frontend): lint Emotion CSS-in-JS with Stylelint
(#41871)
add db1912c6d98 chore(deps): bump cachetools from 6.2.1 to 7.1.4 (#41947)
add 0ca51d9796a fix(Database Connection Form): Added validation to db
credential input (#37919)
add e403d9b0742 chore(lint): convert legacy plugin chart components to
function components (#39452)
add 12f28ce2354 chore(deps): bump holidays from 0.82 to 0.99 (#41949)
add 98c3ec7a718 chore(deps): bump sqlglot from 30.8.0 to 30.12.0 (#41948)
add d380663e710 chore(deps-dev): bump syntaqlite from 0.4.2 to 0.6.0
(#41952)
add c0e5f5226d4 fix(explore): let chart owners overwrite when owners come
through as objects (#41352)
add c762b75ddc5 chore(lint): upgrade no-unused-vars rule from warn to
error (#41132)
add 8f339545adb chore(deps-dev): bump baseline-browser-mapping from
2.10.41 to 2.10.42 in /superset-frontend (#41993)
add 73925922a9a chore(deps): bump react-arborist from 3.12.0 to 3.13.2 in
/superset-frontend (#41992)
add bb5d7dbb17b chore(deps): bump immer from 11.1.9 to 11.1.11 in
/superset-frontend (#41991)
add 9180ace1ddc chore(deps): bump actions/labeler from 6.1.0 to 6.2.0
(#41988)
add 96bf1a1e4cd chore(deps): bump caniuse-lite from 1.0.30001800 to
1.0.30001802 in /docs (#41987)
add 0cf217cdea5 chore(deps-dev): bump vitest from 4.1.9 to 4.1.10 in
/superset-websocket (#41986)
add f7b7bad9a88 chore(deps-dev): bump tsx from 4.22.5 to 4.23.0 in
/superset-frontend (#41985)
add 1c7a3f395f4 chore(deps): bump fs-extra from 11.3.2 to 11.3.6 in
/superset-frontend (#41990)
add 3c6982252b2 chore(deps-dev): bump webpack from 5.108.3 to 5.108.4 in
/superset-frontend (#41989)
add 029d49539bc fix(event-log): match embedded routes precisely in logger
middleware (#41942)
add 2fac66d1a30 feat(mcp): add update_dataset_metric tool for editing
saved dataset metrics (#40975)
add 8f75f1a353d fix(dashboard): deleted Display Control reappears after
Apply Filters (#41999)
add 68ebc22e1ee refactor: replace Engine.execute() with
Connection.execute() (#41917)
add db3bfcbe847 refactor(sqla2): migrate off sqlalchemy.ext.declarative,
lock in 3 more 2.0 warnings
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 (cd70c01beb9)
\
N -- N -- N refs/heads/chore/sqla2-mark-fixed-warnings
(db3bfcbe847)
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/check-python-deps.yml | 2 +-
.github/workflows/labeler.yml | 2 +-
.github/workflows/superset-python-unittest.yml | 6 +
...sync-requirements-for-python-dep-upgrade-pr.yml | 2 +-
.pre-commit-config.yaml | 8 +-
.rat-excludes | 1 +
RESOURCES/INTHEWILD.yaml | 2 +-
UPDATING.md | 11 +
docs/docs/faq.mdx | 17 +
docs/package.json | 2 +-
docs/yarn.lock | 8 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 59 +-
helm/superset/UPGRADING.md | 161 +++
helm/superset/templates/NOTES.txt | 6 +
helm/superset/templates/_helpers.tpl | 641 ++++++++++-
helm/superset/templates/deployment-beat.yaml | 10 +-
helm/superset/templates/deployment-flower.yaml | 5 +-
helm/superset/templates/deployment-worker.yaml | 10 +-
helm/superset/templates/deployment-ws.yaml | 3 +
helm/superset/templates/deployment.yaml | 12 +-
helm/superset/templates/secret-env.yaml | 36 +-
.../superset/templates/secret-superset-config.yaml | 4 +-
helm/superset/tests/checksum_test.yaml | 132 +++
helm/superset/tests/config_test.yaml | 94 ++
.../superset/tests/deprecation_test.yaml | 23 +-
helm/superset/tests/initscript_test.yaml | 63 ++
helm/superset/tests/secret_env_test.yaml | 71 ++
.../superset/tests/serviceaccount_test.yaml | 44 +-
.../superset/tests/values_defaults_test.yaml | 24 +-
helm/superset/values.schema.json | 140 +++
helm/superset/values.yaml | 148 ++-
pyproject.toml | 19 +-
requirements/base.txt | 11 +-
requirements/development.txt | 15 +-
scripts/benchmark_migration.py | 9 +-
scripts/{check-custom-rules.sh => stylelint.sh} | 9 +-
superset-core/src/superset_core/common/daos.py | 54 +-
superset-core/src/superset_core/common/models.py | 62 ++
.../src/superset_core/semantic_layers/types.py | 2 +-
superset-frontend/.storybook/preview.jsx | 2 +-
superset-frontend/.stylelintignore | 9 +
superset-frontend/oxlint.json | 9 +-
superset-frontend/package-lock.json | 996 ++++++++++++++++--
superset-frontend/package.json | 21 +-
.../superset-core/src/theme/GlobalStyles.tsx | 8 +-
.../packages/superset-ui-core/package.json | 4 +-
.../components/Matrixify/MatrixifyGridCell.tsx | 2 +-
.../components/Matrixify/MatrixifyGridRenderer.tsx | 3 +-
.../src/components/AsyncAceEditor/index.tsx | 1 -
.../DropdownContainer/DropdownContainer.tsx | 4 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 8 +
.../superset-ui-core/src/components/Form/types.ts | 5 +
.../src/components/Icons/Icons.stories.tsx | 6 +-
.../src/components/Label/index.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 4 +-
.../components/ModalTrigger/ModalTrigger.test.tsx | 42 +-
.../src/components/ModalTrigger/index.tsx | 20 +-
.../src/components/TimezoneSelector/index.tsx | 2 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 2 +
.../tests/dashboard/delete-display-control.spec.ts | 263 +++++
.../legacy-plugin-chart-calendar/src/Calendar.ts | 2 +-
.../src/CountryMap.ts | 2 +-
.../src/HorizonChart.tsx | 101 +-
.../legacy-plugin-chart-horizon/src/HorizonRow.tsx | 268 +++--
.../test/HorizonChart.test.tsx | 51 +
.../test/HorizonRow.test.tsx | 102 ++
.../src/PairedTTest.tsx | 77 +-
.../src/TTestTable.tsx | 545 +++++-----
.../test/TTestTable.test.tsx | 365 +++++++
.../src/AgGridTableChart.tsx | 1 -
.../src/renderers/NumericCellRenderer.tsx | 16 +-
.../src/styles/index.tsx | 1 -
.../src/utils/useColDefs.ts | 4 +-
.../test/AgGridTableChart.test.tsx | 18 +-
.../src/BigNumber/BigNumberViz.tsx | 4 -
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 9 +-
.../src/PivotTableChart.tsx | 84 +-
.../test/PivotTableChart.test.tsx | 370 +++++++
.../plugins/plugin-chart-table/src/TableChart.tsx | 36 +-
.../plugin-chart-table/test/TableChart.test.tsx | 49 +
.../src/chart/WordCloud.tsx | 273 ++---
.../test/WordCloud.test.tsx | 161 +++
.../plugins/preset-chart-deckgl/package.json | 2 +-
.../src/SqlLab/SqlLabGlobalStyles.tsx | 10 +-
.../src/SqlLab/components/EditorWrapper/index.tsx | 4 +-
.../src/SqlLab/components/ResultSet/index.tsx | 1 -
.../TableExploreTree/TreeNodeRenderer.tsx | 1 -
.../src/components/Chart/ChartRenderer.tsx | 1 -
.../Datasource/FoldersEditor/TreeItem.styles.ts | 2 +-
.../DatasourceEditor/DatasourceEditor.tsx | 9 -
.../ErrorMessage/FrontendNetworkErrorMessage.tsx | 1 -
.../FilterableTable/FilterableTable.test.tsx | 55 +-
.../src/components/GridTable/index.tsx | 1 -
.../src/components/MessageToasts/Toast.tsx | 2 +-
.../components/Modal/CollapsibleModalSection.tsx | 2 -
.../src/components/Modal/ModalFormField.tsx | 4 -
.../src/components/Modal/StandardModal.tsx | 6 -
.../src/components/ResizableSidebar/index.tsx | 2 +-
.../TableSelector/TableSelector.test.tsx | 40 +-
.../src/components/TableSelector/index.tsx | 6 +
.../src/components/Tag/utils.test.tsx | 2 +-
superset-frontend/src/core/sqlLab/models.ts | 4 +-
.../src/dashboard/actions/dashboardState.test.ts | 44 +
.../components/AddSliceCard/AddSliceCard.tsx | 2 +-
.../src/dashboard/components/Dashboard.tsx | 4 -
.../DashboardBuilder/DashboardBuilder.tsx | 4 +-
.../src/dashboard/components/DashboardGrid.tsx | 8 +-
.../dashboard/components/FiltersBadge/Styles.tsx | 1 -
.../src/dashboard/components/Header/index.tsx | 2 +-
.../Header/useHeaderAutoRefresh.test.tsx | 154 +++
.../components/Header/useHeaderAutoRefresh.ts | 31 +-
.../src/dashboard/components/SaveModal.tsx | 8 +-
.../components/filterscope/FilterScopeSelector.tsx | 2 +-
.../gridComponents/Divider/Divider.test.tsx | 2 +-
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 2 -
.../src/dashboard/components/menu/HoverMenu.tsx | 2 +-
.../useFilterConfigModal.tsx | 4 +-
.../FilterControls/FilterControlShared.tsx | 4 +-
.../FilterBar/FilterControls/FilterControls.tsx | 2 +-
.../FilterBar/FilterControls/FilterValue.tsx | 9 +-
.../nativeFilters/FilterBar/Vertical.tsx | 4 +-
.../components/nativeFilters/FilterBar/index.tsx | 13 +-
.../FiltersConfigForm/ColumnSelect.tsx | 92 +-
.../FiltersConfigForm/DatasetSelect.test.tsx | 45 +
.../FiltersConfigForm/DatasetSelect.tsx | 102 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 196 +++-
.../FiltersConfigForm/RemovedFilter.tsx | 2 +-
.../FiltersConfigForm/getControlItemsMap.tsx | 4 +
.../FiltersConfigForm/utils.test.ts | 76 +-
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 91 +-
.../hooks/useCustomizationOperations.ts | 2 +-
.../hooks/useFilterOperations.ts | 2 +-
.../transformers/buildTarget.test.ts | 74 ++
.../FiltersConfigModal/transformers/buildTarget.ts | 61 ++
.../transformers/customizationTransformer.ts | 13 +-
.../transformers/filterTransformer.ts | 16 +-
.../nativeFilters/FiltersConfigModal/types.ts | 3 +
.../nativeFilters/FiltersConfigModal/utils.ts | 10 +-
.../dashboard/components/nativeFilters/utils.ts | 6 +-
.../src/dashboard/reducers/dashboardInfo.test.ts | 24 +-
.../src/dashboard/reducers/dashboardInfo.ts | 1 +
superset-frontend/src/dashboard/types.ts | 3 +
.../util/charts/getFormDataWithExtraFilters.ts | 17 +-
.../util/getFormDataWithExtraFilters.test.ts | 43 +
.../src/dashboard/util/getRelatedCharts.test.ts | 65 +-
.../src/dashboard/util/getRelatedCharts.ts | 17 +-
.../explore/components/ControlPanelsContainer.tsx | 8 +-
.../explore/components/DataTableControl/index.tsx | 2 +-
.../DataTablesPane/components/SamplesPane.tsx | 1 -
.../DatasourcePanelDragOption/index.tsx | 2 +-
.../src/explore/components/ExploreAlert.tsx | 2 +-
.../components/ExploreViewContainer/index.tsx | 7 +-
.../src/explore/components/SaveModal.test.tsx | 21 +
.../src/explore/components/SaveModal.tsx | 22 +-
.../CollectionControl/CollectionControl.test.tsx | 8 +
.../controls/CollectionControl/index.tsx | 35 +-
.../controls/DatasourceControl/index.tsx | 1 -
.../FilterControl/AdhocFilterEditPopover/index.tsx | 2 +-
.../components/controls/TextControl/index.tsx | 7 +-
.../components/controls/ViewportControl.tsx | 1 +
.../controls/VizTypeControl/VizTypeGallery.tsx | 2 +-
.../components/controls/VizTypeControl/index.tsx | 1 -
.../src/features/alerts/AlertReportModal.tsx | 2 +-
.../alerts/components/NotificationMethod.tsx | 2 +-
.../src/features/allEntities/AllEntitiesTable.tsx | 2 +-
.../src/features/annotations/AnnotationModal.tsx | 2 +-
.../DatabaseConnectionForm/EncryptedField.test.tsx | 142 ++-
.../DatabaseConnectionForm/EncryptedField.tsx | 73 +-
.../databases/DatabaseModal/ExtraOptions.test.tsx | 68 ++
.../databases/DatabaseModal/ExtraOptions.tsx | 36 +-
.../databases/DatabaseModal/index.test.tsx | 67 +-
.../src/features/databases/DatabaseModal/index.tsx | 16 +-
.../src/features/databases/DatabaseModal/styles.ts | 31 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 4 +-
.../features/databases/UploadDataModel/index.tsx | 4 +-
.../features/datasets/DatasetSelectLabel/index.tsx | 24 +-
superset-frontend/src/features/home/RightMenu.tsx | 2 +
.../src/features/home/SavedQueries.tsx | 1 -
.../src/features/roles/RoleListEditModal.test.tsx | 2 +-
.../src/features/semanticLayers/label.ts | 12 +
.../src/features/tags/BulkTagModal.tsx | 2 +-
superset-frontend/src/features/tags/TagModal.tsx | 2 +-
.../src/features/userInfo/UserInfoModal.tsx | 2 +-
superset-frontend/src/features/users/utils.ts | 2 +-
superset-frontend/src/middleware/logger.test.ts | 25 +
.../src/middleware/loggerMiddleware.ts | 11 +-
superset-frontend/src/pages/AllEntities/index.tsx | 4 +-
.../pages/ChartList/ChartList.permissions.test.tsx | 6 +-
.../DashboardList.permissions.test.tsx | 7 +-
superset-frontend/src/pages/GroupsList/index.tsx | 2 +-
superset-frontend/src/pages/UsersList/index.tsx | 2 +-
superset-frontend/src/setup/setupCodeOverrides.ts | 4 +-
superset-frontend/src/theme/ThemeController.ts | 7 +-
.../src/visualizations/TimeTable/TimeTable.tsx | 2 +-
...t-runner-jest.config.js => stylelint.config.js} | 27 +-
superset-websocket/package-lock.json | 264 ++---
superset-websocket/package.json | 7 +-
superset-websocket/src/index.ts | 4 +-
superset/charts/api.py | 192 +++-
superset/cli/test_db.py | 14 +-
superset/cli/thumbnails.py | 30 +-
superset/commands/dashboard/copy.py | 13 +
.../commands/dashboard/importers/v1/__init__.py | 62 +-
superset/commands/dashboard/update.py | 42 +-
superset/commands/dataset/duplicate.py | 73 +-
superset/commands/importers/v1/__init__.py | 13 +
superset/commands/importers/v1/assets.py | 44 +-
superset/commands/importers/v1/utils.py | 32 +
superset/config.py | 35 +-
superset/connectors/sqla/models.py | 46 +-
superset/constants.py | 2 +
superset/core/api/core_api_injection.py | 16 +-
superset/daos/dataset.py | 209 ++--
superset/daos/{security.py => subject.py} | 11 +-
superset/daos/version.py | 69 ++
superset/dashboards/api.py | 183 +++-
superset/databases/schemas.py | 70 +-
superset/datasets/api.py | 234 ++++-
superset/db_engine_specs/databricks.py | 17 +-
superset/db_engine_specs/doris.py | 12 +-
superset/db_engine_specs/duckdb.py | 13 +-
superset/db_engine_specs/hive.py | 36 +-
superset/db_engine_specs/impala.py | 11 +-
superset/db_engine_specs/postgres.py | 15 +-
superset/db_engine_specs/presto.py | 8 +-
superset/db_engine_specs/snowflake.py | 13 +-
superset/db_engine_specs/starrocks.py | 42 +-
superset/extensions/__init__.py | 25 +
superset/initialization/__init__.py | 242 ++++-
superset/mcp_service/app.py | 20 +-
superset/mcp_service/auth.py | 4 +
superset/mcp_service/chart/chart_utils.py | 112 +-
superset/mcp_service/chart/plugins/big_number.py | 2 +-
superset/mcp_service/chart/schemas.py | 52 +-
superset/mcp_service/chart/tool/__init__.py | 2 +
superset/mcp_service/chart/tool/delete_chart.py | 186 ++++
superset/mcp_service/dashboard/schemas.py | 44 +
superset/mcp_service/dashboard/tool/__init__.py | 2 +
.../mcp_service/dashboard/tool/delete_dashboard.py | 235 +++++
superset/mcp_service/dataset/dataset_utils.py | 50 +
superset/mcp_service/dataset/schemas.py | 151 +++
superset/mcp_service/dataset/tool/__init__.py | 2 +
superset/mcp_service/dataset/tool/query_dataset.py | 30 +-
.../dataset/tool/update_dataset_metric.py | 294 ++++++
superset/mcp_service/role/tool/get_role_info.py | 4 +
superset/mcp_service/role/tool/list_roles.py | 4 +
.../mcp_service/theme}/__init__.py | 5 +-
superset/mcp_service/{tag => theme}/schemas.py | 158 ++-
.../{database => theme}/tool/__init__.py | 10 +-
superset/mcp_service/theme/tool/create_theme.py | 159 +++
.../tool/get_theme_info.py} | 65 +-
.../list_tags.py => theme/tool/list_themes.py} | 104 +-
superset/mcp_service/user/tool/get_user_info.py | 4 +
superset/mcp_service/user/tool/list_users.py | 4 +
superset/middleware/legacy_prefix_redirect.py | 42 +-
...-28_19-50_56cd24c07170_add_versioning_tables.py | 574 ++++++++++
...3_12-00_8f3a1b2c4d5e_shadow_live_row_indexes.py | 180 ++++
superset/models/dashboard.py | 27 +
superset/models/helpers.py | 123 ++-
superset/models/slice.py | 37 +
superset/security/manager.py | 1 +
superset/semantic_layers/api.py | 9 +-
superset/semantic_layers/mapper.py | 15 +-
superset/sql/dialects/firebolt.py | 5 +-
superset/subjects/api.py | 123 +++
superset/subjects/filters.py | 22 +
superset/subjects/schemas.py | 14 +
superset/subjects/sync.py | 71 +-
superset/subjects/views.py | 50 -
superset/utils/csv.py | 48 +-
superset/utils/mock_data.py | 16 +-
.../common => superset/versioning}/__init__.py | 0
superset/versioning/api_helpers.py | 219 ++++
superset/versioning/baseline/__init__.py | 69 ++
superset/versioning/baseline/children.py | 212 ++++
superset/versioning/baseline/collection.py | 153 +++
superset/versioning/baseline/dirty.py | 243 +++++
superset/versioning/baseline/insertion.py | 150 +++
superset/versioning/baseline/listener.py | 132 +++
superset/versioning/baseline/shadow.py | 92 ++
superset/versioning/changes/__init__.py | 76 ++
superset/versioning/changes/listener.py | 433 ++++++++
superset/versioning/changes/shadow_queries.py | 323 ++++++
superset/versioning/changes/state.py | 233 ++++
superset/versioning/changes/table.py | 90 ++
superset/versioning/diff.py | 1111 ++++++++++++++++++++
superset/versioning/etag.py | 78 ++
superset/versioning/factory.py | 312 ++++++
superset/versioning/queries.py | 518 +++++++++
superset/versioning/schemas.py | 152 +++
superset/versioning/utils.py | 50 +
superset/views/base.py | 6 +-
.../example_data/data_loading/base_data_loader.py | 2 +-
.../data_loading/pandas/pandas_data_loader.py | 3 +-
tests/integration_tests/celery_tests.py | 6 +-
tests/integration_tests/conftest.py | 90 +-
.../dashboards/superset_factory_util.py | 16 +-
.../databases/commands/upload_test.py | 55 +-
tests/integration_tests/datasets/api_tests.py | 27 +-
tests/integration_tests/datasets/commands_tests.py | 20 +-
tests/integration_tests/datasource_tests.py | 36 +-
.../db_engine_specs/hive_tests.py | 20 +-
.../db_engine_specs/presto_tests.py | 30 +-
.../integration_tests/fixtures/energy_dashboard.py | 3 +-
.../fixtures/unicode_dashboard.py | 3 +-
.../fixtures/world_bank_dashboard.py | 3 +-
tests/integration_tests/reports/commands_tests.py | 20 +-
.../security/row_level_security_tests.py | 107 ++
tests/integration_tests/sqllab_tests.py | 44 +-
.../integration_tests/subjects}/__init__.py | 0
tests/integration_tests/subjects/api_tests.py | 142 +++
tests/integration_tests/superset_test_config.py | 8 +
.../integration_tests/versioning}/__init__.py | 0
.../versioning/capture_disabled_tests.py | 171 +++
tests/integration_tests/versioning/conftest.py | 94 ++
.../versioning/snapshot_projection_tests.py | 70 ++
.../versioning/transaction_correctness_tests.py | 224 ++++
.../versioning/versions_api_tests.py | 458 ++++++++
tests/unit_tests/cli/thumbnails_test.py | 79 ++
.../unit_tests/commands/dataset/test_duplicate.py | 13 +
tests/unit_tests/dao/dataset_test.py | 65 ++
tests/unit_tests/dao/subject_test.py | 61 ++
.../databases/commands/importers/v1/import_test.py | 6 +-
tests/unit_tests/databases/schema_tests.py | 273 ++++-
tests/unit_tests/db_engine_specs/test_datastore.py | 2 +-
tests/unit_tests/db_engine_specs/test_doris.py | 17 +-
tests/unit_tests/db_engine_specs/test_starrocks.py | 6 +-
tests/unit_tests/db_engine_specs/test_trino.py | 14 +-
tests/unit_tests/examples/generic_loader_test.py | 4 +-
tests/unit_tests/initialization_test.py | 98 ++
.../mcp_service/chart/test_big_number_chart.py | 121 +++
.../mcp_service/chart/test_chart_utils.py | 84 +-
.../mcp_service/chart/tool/test_delete_chart.py | 229 ++++
.../dashboard/tool/test_delete_dashboard.py | 254 +++++
.../mcp_service/dataset/tool/test_query_dataset.py | 32 +-
.../dataset/tool/test_update_dataset_metric.py | 541 ++++++++++
.../semantic_layer/tool/test_list_metrics.py | 40 +-
tests/unit_tests/mcp_service/test_auth_rbac.py | 66 ++
.../unit_tests/mcp_service/theme}/__init__.py | 0
.../unit_tests/mcp_service/theme/tool}/__init__.py | 0
.../mcp_service/theme/tool/test_create_theme.py | 260 +++++
.../mcp_service/theme/tool/test_get_theme_info.py | 133 +++
.../mcp_service/theme/tool/test_list_themes.py | 128 +++
.../middleware/test_legacy_prefix_redirect.py | 75 +-
tests/unit_tests/models/core_test.py | 5 +-
tests/unit_tests/models/helpers_test.py | 264 ++++-
tests/unit_tests/semantic_layers/api_test.py | 3 +
tests/unit_tests/semantic_layers/mapper_test.py | 22 +
tests/unit_tests/utils/csv_tests.py | 3 +
tests/unit_tests/utils/test_date_parsing.py | 91 ++
tests/unit_tests/versioning/test_diff_caps.py | 218 ++++
tests/unit_tests/versioning/test_listener.py | 204 ++++
tests/unit_tests/views/test_bootstrap_auth.py | 21 +
354 files changed, 20506 insertions(+), 2410 deletions(-)
create mode 100644 helm/superset/UPGRADING.md
create mode 100644 helm/superset/tests/checksum_test.yaml
create mode 100644 helm/superset/tests/config_test.yaml
copy MANIFEST.in => helm/superset/tests/deprecation_test.yaml (66%)
create mode 100644 helm/superset/tests/initscript_test.yaml
create mode 100644 helm/superset/tests/secret_env_test.yaml
copy .dockerignore => helm/superset/tests/serviceaccount_test.yaml (63%)
copy docker/entrypoints/docker-ci.sh =>
helm/superset/tests/values_defaults_test.yaml (71%)
mode change 100755 => 100644
create mode 100644 helm/superset/values.schema.json
copy scripts/{check-custom-rules.sh => stylelint.sh} (81%)
create mode 100644 superset-frontend/.stylelintignore
create mode 100644
superset-frontend/playwright/tests/dashboard/delete-display-control.spec.ts
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-horizon/test/HorizonChart.test.tsx
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-horizon/test/HorizonRow.test.tsx
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-paired-t-test/test/TTestTable.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-pivot-table/test/PivotTableChart.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/test/WordCloud.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/Header/useHeaderAutoRefresh.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/buildTarget.test.ts
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/buildTarget.ts
copy superset-frontend/{test-runner-jest.config.js => stylelint.config.js}
(65%)
copy superset/daos/{security.py => subject.py} (73%)
create mode 100644 superset/daos/version.py
create mode 100644 superset/mcp_service/chart/tool/delete_chart.py
create mode 100644 superset/mcp_service/dashboard/tool/delete_dashboard.py
create mode 100644 superset/mcp_service/dataset/dataset_utils.py
create mode 100644 superset/mcp_service/dataset/tool/update_dataset_metric.py
copy {superset-core/src/superset_core =>
superset/mcp_service/theme}/__init__.py (86%)
copy superset/mcp_service/{tag => theme}/schemas.py (56%)
copy superset/mcp_service/{database => theme}/tool/__init__.py (81%)
create mode 100644 superset/mcp_service/theme/tool/create_theme.py
copy superset/mcp_service/{tag/tool/get_tag_info.py =>
theme/tool/get_theme_info.py} (55%)
copy superset/mcp_service/{tag/tool/list_tags.py => theme/tool/list_themes.py}
(56%)
create mode 100644
superset/migrations/versions/2026-05-28_19-50_56cd24c07170_add_versioning_tables.py
create mode 100644
superset/migrations/versions/2026-06-03_12-00_8f3a1b2c4d5e_shadow_live_row_indexes.py
create mode 100644 superset/subjects/api.py
delete mode 100644 superset/subjects/views.py
copy {superset-core/src/superset_core/common =>
superset/versioning}/__init__.py (100%)
create mode 100644 superset/versioning/api_helpers.py
create mode 100644 superset/versioning/baseline/__init__.py
create mode 100644 superset/versioning/baseline/children.py
create mode 100644 superset/versioning/baseline/collection.py
create mode 100644 superset/versioning/baseline/dirty.py
create mode 100644 superset/versioning/baseline/insertion.py
create mode 100644 superset/versioning/baseline/listener.py
create mode 100644 superset/versioning/baseline/shadow.py
create mode 100644 superset/versioning/changes/__init__.py
create mode 100644 superset/versioning/changes/listener.py
create mode 100644 superset/versioning/changes/shadow_queries.py
create mode 100644 superset/versioning/changes/state.py
create mode 100644 superset/versioning/changes/table.py
create mode 100644 superset/versioning/diff.py
create mode 100644 superset/versioning/etag.py
create mode 100644 superset/versioning/factory.py
create mode 100644 superset/versioning/queries.py
create mode 100644 superset/versioning/schemas.py
create mode 100644 superset/versioning/utils.py
copy {superset-core/src/superset_core/common =>
tests/integration_tests/subjects}/__init__.py (100%)
create mode 100644 tests/integration_tests/subjects/api_tests.py
copy {superset-core/src/superset_core/common =>
tests/integration_tests/versioning}/__init__.py (100%)
create mode 100644 tests/integration_tests/versioning/capture_disabled_tests.py
create mode 100644 tests/integration_tests/versioning/conftest.py
create mode 100644
tests/integration_tests/versioning/snapshot_projection_tests.py
create mode 100644
tests/integration_tests/versioning/transaction_correctness_tests.py
create mode 100644 tests/integration_tests/versioning/versions_api_tests.py
create mode 100644 tests/unit_tests/cli/thumbnails_test.py
create mode 100644 tests/unit_tests/dao/subject_test.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_delete_chart.py
create mode 100644
tests/unit_tests/mcp_service/dashboard/tool/test_delete_dashboard.py
create mode 100644
tests/unit_tests/mcp_service/dataset/tool/test_update_dataset_metric.py
copy {superset-core/src/superset_core/common =>
tests/unit_tests/mcp_service/theme}/__init__.py (100%)
copy {superset-core/src/superset_core/common =>
tests/unit_tests/mcp_service/theme/tool}/__init__.py (100%)
create mode 100644 tests/unit_tests/mcp_service/theme/tool/test_create_theme.py
create mode 100644
tests/unit_tests/mcp_service/theme/tool/test_get_theme_info.py
create mode 100644 tests/unit_tests/mcp_service/theme/tool/test_list_themes.py
create mode 100644 tests/unit_tests/versioning/test_diff_caps.py
create mode 100644 tests/unit_tests/versioning/test_listener.py