This is an automated email from the ASF dual-hosted git repository.
hainenber pushed a change to branch feat/migrate-to-vitest
in repository https://gitbox.apache.org/repos/asf/superset.git
from 6be13ab782 chore: resolve prettier issues
add 35d0aad854 feat(explore): Add Echarts option editor (#37868)
add 69732d9dca fix(superset-ui-core): achieve 100% coverage for npm run
core:cover (#38397)
add 832fee3ff8 refactor(mcp): move superset_core MCP module from mcp to
api/mcp (#38394)
add 19f949276c refactor(config): SIGNAL_CACHE_CONFIG →
DISTRIBUTED_COORDINATION_CONFIG (#38395)
add aff6e26089 build(deps): replace monolithic `googleapis` with
lightweight `@googleapis/sheet` sub-package (#38124)
add 3d5694ee0f chore: regular `npm audit fix` (#38248)
add 3b656f9cc2 fix(dashboard): restore filterState prop for cross-filter
functionality (#38349)
add c25adbc395 test(DashboardList): migrate Cypress E2E tests to RTL
(#38368)
add e2ebc135e4 test(playwright): add dashboard list E2E tests (#38377)
add 27d54f8421 fix(build/backend): migrate to deps-free `pygeohash` with
pre-built wheels at runtime (#37524)
add 796c206ee7 fix(charts): apply resample before rolling window in
post-processing pipeline (#37987)
add 63e7ee70bf fix(echarts): adaptive formatting labels (#38017)
add 8c9efe5659 feat: support for import/export masked_encrypted_extra
(backend) (#38077)
add dc995328a8 chore(deps): bump cryptography from 44.0.3 to 46.0.5
(#37912)
add 8f28a8734a chore(deps): bump flask from 2.3.3 to 3.1.3 (#38168)
add 1bfd41df0c chore(deps): bump aquasecurity/trivy-action from 0.34.1 to
0.34.2 (#38352)
add 88241d3e71 chore(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in
/superset-frontend (#38353)
add a79dcbbb66 chore(deps): update d3-cloud requirement from ^1.2.8 to
^1.2.9 in /superset-frontend/plugins/plugin-chart-word-cloud (#38381)
add 939e4194c6 fix(alerts): fix error toast when editing report with saved
tab selection (#38198)
add 0d5827ac42 chore(extensions): unified contribution api and automatic
prefixing (#38412)
add 5a2a72cf31 chore(deps): bump svgo from 3.3.2 to 3.3.3 in /docs (#38422)
add fdf19db5e6 chore(deps): bump svgo from 3.3.2 to 3.3.3 in
/superset-frontend (#38421)
add a96259dcfc Merge branch 'master' into feat/migrate-to-vitest
No new revisions were added by this update.
Summary of changes:
.github/workflows/docker.yml | 2 +-
UPDATING.md | 8 +-
docs/admin_docs/configuration/cache.mdx | 16 +-
.../extensions/contribution-types.md | 51 +-
docs/developer_docs/extensions/development.md | 62 +-
docs/developer_docs/extensions/mcp.md | 6 +-
docs/developer_docs/extensions/overview.md | 2 +-
docs/developer_docs/extensions/quick-start.md | 44 +-
docs/developer_docs/extensions/tasks.md | 4 +-
docs/yarn.lock | 18 +-
pyproject.toml | 8 +-
requirements/base.txt | 4 +-
requirements/development.txt | 8 +-
.../superset_core/{mcp/__init__.py => api/mcp.py} | 2 +-
superset-core/src/superset_core/api/rest_api.py | 97 ++-
.../cypress/e2e/dashboard_list/filter.test.ts | 47 --
.../cypress/e2e/dashboard_list/list.test.ts | 279 -------
superset-frontend/package-lock.json | 538 ++++++++++++--
superset-frontend/package.json | 5 +-
.../packages/superset-core/src/api/editors.ts | 10 +-
.../src/shared-controls/sharedControls.tsx | 15 +
.../superset-ui-chart-controls/src/types.ts | 1 +
.../src/utils/metricColumnFilter.test.ts | 8 +
.../test/utils/getColorFormatters.test.ts | 41 +
.../Matrixify/MatrixifyGridGenerator.test.ts | 120 +++
.../components/Matrixify/MatrixifyGridGenerator.ts | 8 +-
.../types/matrixify.mocks.test.ts} | 12 +-
.../src/chart/types/matrixify.test.ts | 82 ++
.../superset-ui-core/src/chart/types/matrixify.ts | 36 +-
.../src/components/AsyncAceEditor/index.tsx | 6 +
.../AsyncAceEditor/useJsonValidation.test.ts | 25 +
.../src/components/List/List.test.tsx | 10 +
.../src/components/Select/constants.test.ts | 49 ++
.../Table/utils/InteractiveTableUtils.test.ts | 574 ++++++++++++++
.../superset-ui-core/src/components/index.ts | 1 +
.../src/types/react-syntax-highlighter.d.ts | 7 -
.../src/utils/rankedSearchCompare.test.ts | 20 +
.../index.ts => utils/withLabel.test.ts} | 24 +-
.../test/connection/SupersetClient.test.ts | 6 +
.../test/connection/SupersetClientClass.test.ts | 33 +
.../test/currency-format/CurrencyFormatter.test.ts | 78 ++
.../test/currency-format/utils.test.ts | 193 +++++
.../test/query/types/Column.test.ts | 14 +
.../test/query/types/Dashboard.test.ts | 33 +
.../playwright/helpers/api/dashboard.ts | 170 +++++
.../playwright/helpers/fixtures/testAssets.ts | 24 +-
.../{ChartListPage.ts => DashboardListPage.ts} | 67 +-
.../experimental/dashboard/dashboard-list.spec.ts | 403 ++++++++++
.../dashboard-test-helpers.ts} | 47 +-
.../plugins/plugin-chart-echarts/package.json | 4 +-
.../BigNumberWithTrendline/buildQuery.test.ts | 4 +-
.../BigNumber/BigNumberWithTrendline/buildQuery.ts | 2 +-
.../src/MixedTimeseries/buildQuery.ts | 2 +-
.../src/MixedTimeseries/controlPanel.tsx | 1 +
.../src/MixedTimeseries/transformProps.ts | 20 +-
.../src/Timeseries/Area/controlPanel.tsx | 1 +
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 1 +
.../src/Timeseries/Regular/Line/controlPanel.tsx | 1 +
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 1 +
.../src/Timeseries/buildQuery.ts | 6 +-
.../src/Timeseries/transformProps.ts | 23 +-
.../plugins/plugin-chart-echarts/src/index.ts | 3 +
.../src/utils/eChartOptionsSchema.ts | 827 +++++++++++++++++++++
.../plugin-chart-echarts/src/utils/formatters.ts | 91 ++-
.../src/utils/mergeCustomEChartOptions.test.ts | 163 ++++
.../src/utils/mergeCustomEChartOptions.ts | 79 ++
.../src/utils/safeEChartOptionsParser.test.ts | 525 +++++++++++++
.../src/utils/safeEChartOptionsParser.ts | 477 ++++++++++++
.../test/MixedTimeseries/transformProps.test.ts | 2 +-
.../test/Timeseries/Scatter/transformProps.test.ts | 8 +-
.../test/Timeseries/transformProps.test.ts | 6 +-
.../test/utils/formatters.test.ts | 174 ++++-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../scripts/eslint-metrics-uploader.js | 144 ----
.../scripts/oxlint-metrics-uploader.js | 7 +-
superset-frontend/src/components/Chart/Chart.tsx | 2 +
.../src/core/editors/AceEditorProvider.tsx | 3 +
.../components/gridComponents/Chart/Chart.test.tsx | 30 +
.../components/gridComponents/Chart/Chart.tsx | 1 +
.../components/controls/JSEditorControl.test.tsx | 125 ++++
.../components/controls/JSEditorControl.tsx | 105 +++
.../src/explore/components/controls/index.ts | 2 +
.../src/features/alerts/AlertReportModal.test.tsx | 467 +++++++++++-
.../src/features/alerts/AlertReportModal.tsx | 40 +-
superset-frontend/src/features/alerts/types.ts | 7 +
.../DashboardList/DashboardList.behavior.test.tsx | 394 ++++++++++
.../DashboardList/DashboardList.cardview.test.tsx | 417 +++++++++++
.../DashboardList/DashboardList.listview.test.tsx | 402 ++++++++++
.../DashboardList.permissions.test.tsx | 340 +++++++++
.../src/pages/DashboardList/DashboardList.test.tsx | 391 +++++-----
.../DashboardList/DashboardList.testHelpers.tsx | 360 +++++++++
superset/commands/database/export.py | 9 +
superset/commands/database/importers/v1/utils.py | 26 +-
superset/commands/distributed_lock/acquire.py | 2 +-
superset/commands/distributed_lock/base.py | 6 +-
superset/commands/distributed_lock/release.py | 2 +-
superset/commands/importers/v1/__init__.py | 4 +
superset/commands/importers/v1/assets.py | 4 +
superset/commands/importers/v1/utils.py | 19 +
superset/config.py | 20 +-
superset/core/api/core_api_injection.py | 64 +-
superset/core/mcp/core_mcp_injection.py | 74 +-
superset/databases/api.py | 14 +
superset/databases/schemas.py | 62 ++
superset/distributed_lock/__init__.py | 2 +-
superset/extensions/context.py | 90 +++
superset/extensions/contributions.py | 94 +++
superset/importexport/api.py | 13 +
superset/initialization/__init__.py | 5 +-
superset/mcp_service/CLAUDE.md | 16 +-
superset/mcp_service/app.py | 2 +-
.../chart/prompts/create_chart_guided.py | 2 +-
superset/mcp_service/chart/tool/generate_chart.py | 2 +-
superset/mcp_service/chart/tool/get_chart_data.py | 2 +-
superset/mcp_service/chart/tool/get_chart_info.py | 2 +-
.../mcp_service/chart/tool/get_chart_preview.py | 2 +-
superset/mcp_service/chart/tool/list_charts.py | 2 +-
superset/mcp_service/chart/tool/update_chart.py | 2 +-
.../mcp_service/chart/tool/update_chart_preview.py | 2 +-
.../tool/add_chart_to_existing_dashboard.py | 2 +-
.../dashboard/tool/generate_dashboard.py | 2 +-
.../dashboard/tool/get_dashboard_info.py | 2 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 2 +-
.../mcp_service/dataset/tool/get_dataset_info.py | 2 +-
superset/mcp_service/dataset/tool/list_datasets.py | 2 +-
.../explore/tool/generate_explore_link.py | 2 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 2 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 2 +-
superset/mcp_service/system/prompts/quickstart.py | 2 +-
.../mcp_service/system/tool/get_instance_info.py | 2 +-
superset/mcp_service/system/tool/get_schema.py | 2 +-
superset/mcp_service/system/tool/health_check.py | 2 +-
superset/tasks/decorators.py | 15 +-
superset/tasks/locks.py | 4 +-
superset/tasks/manager.py | 8 +-
superset/utils/cache_manager.py | 34 +-
superset/utils/json.py | 43 ++
superset/utils/pandas_postprocessing/geography.py | 6 +-
superset/viz.py | 24 +-
tests/integration_tests/databases/api_tests.py | 91 +++
tests/integration_tests/fixtures/importexport.py | 26 +
.../integration_tests/tasks/test_sync_join_wait.py | 4 +-
tests/unit_tests/databases/api_test.py | 70 ++
.../databases/commands/importers/v1/import_test.py | 123 +++
tests/unit_tests/databases/schema_tests.py | 106 +++
tests/unit_tests/importexport/api_test.py | 52 ++
tests/unit_tests/tasks/test_handlers.py | 4 +-
tests/unit_tests/tasks/test_manager.py | 34 +-
tests/unit_tests/tasks/test_timeout.py | 32 +-
tests/unit_tests/utils/json_tests.py | 139 ++++
150 files changed, 9235 insertions(+), 1128 deletions(-)
rename superset-core/src/superset_core/{mcp/__init__.py => api/mcp.py} (99%)
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard_list/filter.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts
copy
superset-frontend/packages/superset-ui-core/src/{components/EmptyState/Empty.test.tsx
=> chart/types/matrixify.mocks.test.ts} (72%)
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/Select/constants.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/Table/utils/InteractiveTableUtils.test.ts
copy
superset-frontend/packages/superset-ui-core/src/{color/colorSchemes/index.ts =>
utils/withLabel.test.ts} (53%)
create mode 100644 superset-frontend/playwright/helpers/api/dashboard.ts
copy superset-frontend/playwright/pages/{ChartListPage.ts =>
DashboardListPage.ts} (56%)
create mode 100644
superset-frontend/playwright/tests/experimental/dashboard/dashboard-list.spec.ts
copy
superset-frontend/playwright/tests/experimental/{dataset/dataset-test-helpers.ts
=> dashboard/dashboard-test-helpers.ts} (53%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/eChartOptionsSchema.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/mergeCustomEChartOptions.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/mergeCustomEChartOptions.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts
delete mode 100644 superset-frontend/scripts/eslint-metrics-uploader.js
create mode 100644
superset-frontend/src/explore/components/controls/JSEditorControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/JSEditorControl.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.behavior.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.cardview.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.listview.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.permissions.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.testHelpers.tsx
create mode 100644 superset/extensions/context.py
create mode 100644 superset/extensions/contributions.py