This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch feat/testcontainers-nightly-pilot
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 3d8ba4ea64a fix(deps): drop broken oceanbase pip extra
omit 2a5d8ada638 fix(docs,deps): regenerate cockroachdb pypi_packages doc,
mark oceanbase extra as unresolvable
omit e81c0f29c4f feat(ci): add nightly-only opt-out for heavy
testcontainers dialects (#43662)
omit 76007c0280e feat(ci): expand testcontainers coverage to mariadb,
timescaledb, yugabytedb, monetdb, mongodb (#43640)
omit 29ab724bd7d fix(deps): regenerate development.txt lockfile for
ibm-db-sa
omit 70862095a32 fix(testcontainers): address remaining reviewer feedback
(db2 arm64, cockroachdb DBAPI docs, stale workflow refs)
omit 10bf775b004 fix(testcontainers): address reviewer feedback on
cockroachdb DBAPI, CI isolation, and test rigor
omit d63f631e070 refactor(testcontainers): extract shared pagination-test
body
omit 99cf6391a50 test(db_engine_specs): fix test_test_connection_failed
regression from mssql extra
omit c665c23a873 fix(cockroachdb): replace abandoned cockroachdb package
with sqlalchemy-cockroachdb
omit 936bd24ef73 feat(ci): expand testcontainers coverage to mssql, oracle,
db2, elasticsearch
omit c76d5ebbebd fix(deps): bump docker floor to 7.2.0 for testcontainers
compatibility
omit abb1e8da387 temp: run nightly-testcontainers on this PR + add
actions-timeline
omit 541c0e6557b test(ci): assert mapped generic/sqla type in Trino column
test
omit 579d03606c5 feat(ci): add nightly testcontainers-based db_engine_specs
tests
add f3896ccf209 fix(explore): say when filter-value suggestions could not
be loaded (#43779)
add c03f3441bd5 feat(mcp): gauge chart type plugin (#43568)
add 87f138cc80a docs(mcp): add theme management tools to AI/MCP tools
reference (#43899)
add df3abe474c4 docs(theming): document new component sizing tokens and
HIDE_NAVBAR_LOGO (#43639)
add 7d09490bb82 fix(security): grant SQL Lab query authors an explore
access bypass (#39296) (#42590)
add 0db9ca74012 chore(deps): bump @ant-design/icons from 6.3.2 to 6.3.3 in
/docs (#43951)
add 7c9c32651c7 chore(deps): bump react-error-boundary from 6.1.3 to 6.1.4
in /superset-frontend (#43959)
add 07052752b68 chore(deps-dev): bump tsx from 4.23.12 to 4.23.13 in
/superset-frontend (#43958)
add b8fb5a268c9 chore(deps): bump zod from 4.4.3 to 4.5.4 in
/superset-frontend (#43957)
add e5e6d748195 chore(deps-dev): bump webpack from 5.110.1 to 5.110.2 in
/superset-frontend (#43956)
add a5377541c92 chore(deps): bump zizmorcore/zizmor-action from 0.6.2 to
0.6.3 (#43954)
add 06913244de4 chore(deps-dev): bump webpack from 5.110.1 to 5.110.2 in
/docs (#43952)
add 4eff13b81e9 chore(deps-dev): bump webpack from 5.110.0 to 5.110.2 in
/superset-embedded-sdk (#43953)
add 92bd2ba0572 chore(deps): bump @ant-design/icons from 6.3.2 to 6.3.3 in
/superset-frontend (#43955)
add 53070fa4c04 fix(dashboard): resolve metric Label in Chart Data (View
as table) results grid (#43719)
add 4440887dc2b fix(security): use self-repository syntax for
setup-backend action ref (#43968)
add 233f6379ae5 fix(ci): use self-repository syntax for supersetbot setup
in tag-release (#43965)
add d22069a7af3 fix(security): use GitHub self-repository syntax for local
action refs (#43969)
add 574d121cd86 fix(security): use self-repository uses syntax in
supersetbot workflow (#43962)
add 8d6044a1475 fix(sqllab): wrap cost-estimate JSON parse to prevent raw
JSONDecodeError leak (#43888)
add 1fb6b989413 fix: downgrade md5 namespace-fallback deprecation log to
info (#43884)
add 1b3758d2a4d ci: add ASF GitHub Actions allowlist check (#43844)
add bd3ab309073 chore(deps): bump @ant-design/icons from 6.3.3 to 6.3.4 in
/superset-frontend (#43982)
add 89786160f97 chore(deps): bump @ant-design/icons from 6.3.3 to 6.3.4 in
/docs (#43981)
add cdb6c8e0c90 chore(deps-dev): bump the typescript-eslint group in
/superset-frontend with 2 updates (#43980)
add c4e145b071f fix(sql_lab): raise 400 not 500 on malformed Jinja during
CSV export access check (#43866)
add 7d0cf1acfc8 docs(scarf-404): replace dead links by the Scarf homepage
(#43973)
add 7382ee0bfec fix(dashboard): prevent header metadata bar from
overlapping action buttons at narrow widths (#43845)
add ad319bd8a3c fix(docs): unbreak Netlify docs preview build (#44001)
add 056fd218d44 fix: handle missing table element in downloadAsPivotExcel
(#39386)
add 08694d64cb8 fix(plugin-chart-table): declare DataTable hooks before
the early return (#43150)
add 204ccc7ce7f fix(datasets): apply Schema filter on the combined
datasource list (#43829)
add 33c6df77c99 fix(database): don't reattach stored connection details
when the effective destination changes (#44003)
add c45fc6a31a2 feat(embedded): diagnose guest-token header size budgets
(#43944)
add 57eafd75e0c docs(handlebars): correct helper names that are not
registered (#44020)
add 067a356b6f0 fix(chart): include echart_options in Matrixify
render-trigger allowlist (#43946)
add 3ccab2ea7aa fix(time-format): share DateWithFormatter and stop reading
four-digit years as epoch offsets (#43909)
add a114b4cc468 fix(import): skip redundant has_table check when dataset
import has no data URI (#43808)
add 85ea6e900a4 docs(mcp): document MCP_STATELESS_HTTP and its multi-pod
tradeoff (#43902)
add 60553b4326a docs(ag-grid): document Show summary support for Raw
Records mode (#43905)
add 7029c468c4d fix(reports): bound CSV transport retries and sanitize
failures (#43977)
add bc35151350c docs(handlebars): correct helper names in the 6.1.0
versioned docs (#44024)
add 04ab089962f chore(deps): bump @swc/html from 1.15.43 to 1.16.2 in
/docs in the security group across 1 directory (#44023)
add 5986fe92c2f fix(rls): roll back db.session after RLS failure in
get_from_clause (#43883)
add e6d088d6b1b fix(mcp): surface rejected filter columns in get_chart_sql
(#43680)
add 10866337c5c docs(helm): document Gateway API HTTPRoute support (#43635)
add 1339bdc6ce1 ci: bump ASF allowlist-check to v1.0.1 for self-repository
syntax support (#44014)
add 7b65d222050 chore(tags): TAGGING_SYSTEM to True by default (#39888)
add 83d5d1ccdad fix(security): use GitHub self-repository syntax for local
action ref (#43961)
add 02ea5775c10 fix(ci): use self-repository syntax for local supersetbot
action ref (#43963)
add 9d89dbddc7b fix(security): use self-repository syntax for
change-detector action ref (#43971)
add 0e6170aaa3b fix(security): use self-repository syntax for
setup-backend ref in unit-test workflow (#43970)
add 380675662d8 fix(ci): use self-repository syntax for local actions in
presto-hive workflow (#43975)
add 3564baabf6e fix(security): suppress zizmor self-repository false
positive for setup-backend step (#44018)
add 335a2a78ea8 fix(dashboard): expand clipped scrollable content before
screenshot/PDF export (#43979)
add fa31e9c1c32 fix(security): suppress zizmor self-repository false
positive for cached-dependencies (#43972)
add 362d3509cb0 fix(security): suppress zizmor self-repository false
positive for cached-dependencies in presto-hive workflow (#43984)
add 3828dcb9225 fix(security): suppress zizmor self-repository false
positive for cached-dependencies in presto-hive workflow (#43976)
add 91f4d01ca2c fix(chart-creation): stop antd v6 Steps from doubling the
icon-content gap (#43730)
add c510946df55 fix: BigQuery pivot-table Custom SQL row label with a
space drops from GROUPING SETS (#43720)
add 9de50b85e5a chore(deps): bump the security group across 1 directory
with 3 updates (#44029)
add d0f139c2104 feat(deps): bump `flask-caching` from 2.4.1 to 2.5.0 +
bump `flask` from v2 to v3 (#43875)
add 2875c76d55a chore(deps): bump react-ace from 14.0.1 to 15.0.0 in
/superset-frontend (#42833)
add acb29937aed chore(deps): bump the security group across 1 directory
with 3 updates (#44030)
add 986b648f1ca fix(versioning): resolve dashboard M2M membership by
attach/detach windows, not end_transaction_id (#44010)
add e652896b79b feat(ci): add nightly testcontainers-based db_engine_specs
tests
add 7c8ad05f0ed test(ci): assert mapped generic/sqla type in Trino column
test
add ae759c00c24 temp: run nightly-testcontainers on this PR + add
actions-timeline
add dde46dd2261 fix(deps): bump docker floor to 7.2.0 for testcontainers
compatibility
add 73b1ae13202 feat(ci): expand testcontainers coverage to mssql, oracle,
db2, elasticsearch
add 8aefbf9b912 fix(cockroachdb): replace abandoned cockroachdb package
with sqlalchemy-cockroachdb
add 5d200a27db3 test(db_engine_specs): fix test_test_connection_failed
regression from mssql extra
add 23108abc203 refactor(testcontainers): extract shared pagination-test
body
add 8797e2c0257 fix(testcontainers): address reviewer feedback on
cockroachdb DBAPI, CI isolation, and test rigor
add 26c665468e7 fix(testcontainers): address remaining reviewer feedback
(db2 arm64, cockroachdb DBAPI docs, stale workflow refs)
add 8b968f98b5e fix(deps): regenerate development.txt lockfile for
ibm-db-sa
add f535c4734bc feat(ci): expand testcontainers coverage to mariadb,
timescaledb, yugabytedb, monetdb, mongodb (#43640)
add 6a5a81890e1 feat(ci): add nightly-only opt-out for heavy
testcontainers dialects (#43662)
add ee29b2c35ce fix(docs,deps): regenerate cockroachdb pypi_packages doc,
mark oceanbase extra as unresolvable
add 70768011dbe fix(deps): drop broken oceanbase pip extra
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 (3d8ba4ea64a)
\
N -- N -- N refs/heads/feat/testcontainers-nightly-pilot
(70768011dbe)
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/actions/change-detector/label-draft-pr.yml | 23 --
.github/actions/setup-docker/action.yml | 6 +-
.github/workflows/asf-allowlist-check.yml | 46 +++
.github/workflows/github-action-validator.yml | 2 +-
.../workflows/superset-python-integrationtest.yml | 2 +-
.github/workflows/superset-python-presto-hive.yml | 22 +-
.github/workflows/superset-python-unittest.yml | 4 +-
.github/workflows/superset-translations.yml | 14 +-
.github/workflows/supersetbot.yml | 2 +-
.github/workflows/tag-release.yml | 6 +-
.pre-commit-config.yaml | 2 +-
UPDATING.md | 28 ++
docs/admin_docs/configuration/alerts-reports.mdx | 33 ++
docs/admin_docs/configuration/mcp-server.mdx | 3 +
docs/admin_docs/configuration/theming.mdx | 124 +++++++
docs/admin_docs/installation/docker-compose.mdx | 2 +-
docs/admin_docs/installation/kubernetes.mdx | 50 ++-
.../version-6.1.0/installation/docker-compose.mdx | 2 +-
.../version-6.1.0/installation/kubernetes.mdx | 2 +-
.../creating-your-first-dashboard.mdx | 9 +
docs/docs/using-superset/embedding.mdx | 48 +++
docs/docs/using-superset/handlebars-chart.mdx | 76 +++--
.../docs/using-superset/using-ai-with-superset.mdx | 8 +
docs/netlify.toml | 7 +-
docs/package.json | 4 +-
docs/static/feature-flags.json | 12 +-
.../version-6.0.0/installation/docker-compose.mdx | 2 +-
.../version-6.0.0/installation/kubernetes.mdx | 2 +-
.../using-superset/handlebars-chart.mdx | 76 +++--
docs/yarn.lock | 253 ++++++---------
pyproject.toml | 2 +-
requirements/base.txt | 9 +-
requirements/development.txt | 9 +-
superset-embedded-sdk/package-lock.json | 8 +-
superset-embedded-sdk/package.json | 2 +-
superset-frontend/package-lock.json | 357 ++++++++++-----------
superset-frontend/package.json | 6 +-
.../superset-ui-chart-controls/package.json | 2 +-
.../packages/superset-ui-core/package.json | 6 +-
.../src/chart/components/StatefulChart.test.tsx | 98 ++++++
.../src/chart/components/StatefulChart.tsx | 30 ++
.../AsyncAceEditor/AsyncAceEditor.test.tsx | 55 ++++
.../PageHeaderWithActions.stories.tsx | 102 ++++++
.../PageHeaderWithActions.test.tsx | 19 +-
.../src/components/PageHeaderWithActions/index.tsx | 6 +-
.../src/time-format}/DateWithFormatter.ts | 13 +-
.../superset-ui-core/src/time-format/index.ts | 1 +
.../src/time-format/utils/stringifyTimeInput.ts | 15 +-
.../test/time-format}/DateWithFormatter.test.ts | 23 +-
.../time-format/utils/stringifyTimeInput.test.ts | 23 ++
.../src/transformProps.ts | 2 +-
.../src/utils/formatValue.ts | 2 +-
.../src/utils/useColDefs.ts | 7 +-
...rmatter.test.ts => formatDurationValue.test.ts} | 23 +-
.../plugins/plugin-chart-echarts/package.json | 2 +-
.../src/react-pivottable/TableRenderers.tsx | 34 +-
.../test/react-pivottable/tableRenders.test.tsx | 39 +++
.../plugin-chart-point-cluster-map/package.json | 4 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 154 +++++----
.../plugins/plugin-chart-table/src/TableChart.tsx | 2 +-
.../plugin-chart-table/src/transformProps.ts | 2 +-
.../src/utils/DateWithFormatter.ts | 62 ----
.../plugin-chart-table/src/utils/formatValue.ts | 2 +-
.../test/DataTable/DataTable.test.tsx | 129 ++++++++
.../plugin-chart-table/test/TableChart.test.tsx | 2 +-
...rmatter.test.ts => formatDurationValue.test.ts} | 23 +-
.../plugins/preset-chart-deckgl/package.json | 2 +-
.../ChartContextMenu/ChartContextMenu.test.tsx | 70 +++-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 11 +-
.../SliceHeaderControls.test.tsx | 114 +++++++
.../components/SliceHeaderControls/index.tsx | 15 +-
.../src/embedded/guestTokenDiagnostics.test.ts | 101 ++++++
.../src/embedded/guestTokenDiagnostics.ts | 71 ++++
superset-frontend/src/embedded/index.test.tsx | 191 ++++++++---
superset-frontend/src/embedded/index.tsx | 46 ++-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 200 +++++++++++-
.../index.tsx | 81 +++--
.../VizTypeControl/VizTypeControl.test.tsx | 46 ++-
.../controls/VizTypeControl/VizTypeGallery.tsx | 2 +-
.../src/hooks/apiResources/datasets.test.ts | 115 ++++++-
.../src/hooks/apiResources/datasets.ts | 52 ++-
superset-frontend/src/hooks/usePermissions.ts | 1 +
.../src/pages/ChartCreation/ChartCreation.test.tsx | 14 +
.../src/pages/ChartCreation/index.tsx | 7 +
superset-frontend/src/types/bootstrapTypes.ts | 5 +-
.../src/utils/downloadAsPivotExcel.test.ts | 19 ++
.../src/utils/downloadAsPivotExcel.ts | 7 +
superset/app.py | 13 +-
superset/commands/database/exceptions.py | 29 ++
superset/commands/database/importers/v1/utils.py | 60 ++--
superset/commands/database/test_connection.py | 41 ++-
superset/commands/database/update.py | 87 +++++
superset/commands/database/utils.py | 96 ++++++
superset/commands/database/validate.py | 47 ++-
superset/commands/dataset/importers/v1/utils.py | 34 +-
superset/commands/datasource/list.py | 112 ++++++-
superset/commands/explore/get.py | 50 ++-
superset/commands/report/chart_data.py | 194 +++++++++++
superset/commands/report/execute.py | 91 +++---
superset/commands/sql_lab/estimate.py | 14 +-
superset/commands/sql_lab/export.py | 10 +
superset/common/query_actions.py | 78 ++++-
superset/config.py | 12 +-
superset/daos/database.py | 17 +-
superset/daos/datasource.py | 4 +
superset/datasets/api.py | 2 +
superset/datasets/schemas.py | 50 +--
superset/embedded/view.py | 7 +-
superset/explore/utils.py | 7 +-
superset/extensions/metastore_cache.py | 3 +-
superset/key_value/utils.py | 6 +-
superset/mcp_service/chart/chart_helpers.py | 77 +++++
superset/mcp_service/chart/chart_utils.py | 35 ++
superset/mcp_service/chart/plugins/__init__.py | 3 +
.../mcp_service/chart/plugins/{pie.py => gauge.py} | 82 +++--
superset/mcp_service/chart/schemas.py | 81 ++++-
superset/mcp_service/chart/tool/generate_chart.py | 11 +-
superset/mcp_service/chart/tool/get_chart_data.py | 64 +---
superset/mcp_service/chart/tool/get_chart_sql.py | 19 +-
.../chart/tool/get_chart_type_schema.py | 10 +-
superset/models/helpers.py | 43 ++-
superset/security/api.py | 24 +-
superset/security/guest_token.py | 19 ++
superset/security/manager.py | 68 ++++
superset/tags/models.py | 31 ++
superset/tasks/scheduler.py | 16 +-
superset/utils/cache.py | 2 +-
superset/utils/cache_manager.py | 4 -
superset/utils/csv.py | 9 +-
superset/utils/screenshot_utils.py | 97 ++++++
superset/utils/webdriver.py | 68 ++++
superset/versioning/activity/impact.py | 152 ++++++---
superset/versioning/activity/queries.py | 95 +-----
superset/versioning/activity/scope.py | 2 +-
superset/versioning/activity/windows.py | 66 ++++
superset/versioning/membership.py | 86 +++++
superset/versioning/restore.py | 50 ++-
tests/integration_tests/base_tests.py | 19 ++
tests/integration_tests/charts/api_tests.py | 8 +-
tests/integration_tests/charts/commands_tests.py | 14 +-
tests/integration_tests/dashboard_tests.py | 3 +-
.../integration_tests/dashboards/commands_tests.py | 3 +
.../dashboards/security/security_dataset_tests.py | 5 +-
.../dashboards/version_restore_tests.py | 70 ++++
tests/integration_tests/datasets/api_tests.py | 60 +++-
tests/integration_tests/datasource/api_tests.py | 62 ++++
tests/integration_tests/embedded/test_view.py | 17 +-
.../explore/form_data/commands_tests.py | 186 ++++++++++-
tests/integration_tests/fixtures/tags.py | 21 +-
tests/integration_tests/reports/commands_tests.py | 109 ++++++-
tests/integration_tests/sql_lab/commands_tests.py | 16 +
tests/integration_tests/tags/api_tests.py | 8 +-
.../charts/commands/data/test_get_data_command.py | 15 +-
.../commands/databases/test_connection_test.py | 60 ++++
tests/unit_tests/commands/databases/update_test.py | 297 +++++++++++++++++
.../unit_tests/commands/databases/validate_test.py | 205 ++++++++++++
tests/unit_tests/commands/datasource/list_test.py | 224 +++++++++++++
.../explore/test_get_query_authorship_bypass.py | 93 ++++++
.../commands/importers/v1/assets_test.py | 3 +
.../unit_tests/commands/report/chart_data_test.py | 298 +++++++++++++++++
tests/unit_tests/commands/report/execute_test.py | 148 ++++++++-
tests/unit_tests/commands/sql_lab/test_estimate.py | 42 +++
tests/unit_tests/common/test_query_actions.py | 97 ++++++
tests/unit_tests/dao/datasource_test.py | 31 ++
.../databases/commands/importers/v1/import_test.py | 43 +++
.../datasets/commands/importers/v1/import_test.py | 142 ++++++++
tests/unit_tests/datasets/schema_tests.py | 95 ++++++
tests/unit_tests/explore/utils_test.py | 117 +++++++
tests/unit_tests/initialization_test.py | 9 +-
tests/unit_tests/key_value/utils_test.py | 12 +-
.../mcp_service/chart/test_gauge_chart.py | 231 +++++++++++++
.../mcp_service/chart/tool/test_get_chart_data.py | 39 ++-
.../mcp_service/chart/tool/test_get_chart_sql.py | 102 ++++++
tests/unit_tests/models/helpers_test.py | 74 +++++
.../models/test_virtual_dataset_format.py | 25 ++
.../unit_tests/security/guest_token_audit_test.py | 87 +++++
tests/unit_tests/tags/commands/create_test.py | 19 +-
tests/unit_tests/tags/commands/update_test.py | 10 +-
.../tasks/test_scheduler_soft_timeout.py | 44 ++-
tests/unit_tests/utils/csv_tests.py | 27 +-
tests/unit_tests/utils/test_cache_manager.py | 6 +-
tests/unit_tests/utils/test_screenshot_utils.py | 48 +++
tests/unit_tests/utils/webdriver_test.py | 172 +++++++++-
tests/unit_tests/versioning/test_activity.py | 149 ++++++++-
184 files changed, 7746 insertions(+), 1412 deletions(-)
delete mode 100644 .github/actions/change-detector/label-draft-pr.yml
create mode 100644 .github/workflows/asf-allowlist-check.yml
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.stories.tsx
rename superset-frontend/{plugins/plugin-chart-ag-grid-table/src/utils =>
packages/superset-ui-core/src/time-format}/DateWithFormatter.ts (82%)
copy superset-frontend/{plugins/plugin-chart-table/test/utils =>
packages/superset-ui-core/test/time-format}/DateWithFormatter.test.ts (65%)
rename
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/{DateWithFormatter.test.ts
=> formatDurationValue.test.ts} (63%)
delete mode 100644
superset-frontend/plugins/plugin-chart-table/src/utils/DateWithFormatter.ts
create mode 100644
superset-frontend/plugins/plugin-chart-table/test/DataTable/DataTable.test.tsx
rename
superset-frontend/plugins/plugin-chart-table/test/utils/{DateWithFormatter.test.ts
=> formatDurationValue.test.ts} (63%)
create mode 100644 superset-frontend/src/embedded/guestTokenDiagnostics.test.ts
create mode 100644 superset-frontend/src/embedded/guestTokenDiagnostics.ts
create mode 100644 superset/commands/report/chart_data.py
copy superset/mcp_service/chart/plugins/{pie.py => gauge.py} (60%)
create mode 100644 superset/versioning/membership.py
create mode 100644
tests/unit_tests/commands/explore/test_get_query_authorship_bypass.py
create mode 100644 tests/unit_tests/commands/report/chart_data_test.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_gauge_chart.py