This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch chore/sync-translation-catalogs
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 3d2191f7f16 chore(i18n): fix Polish catalog Language header
omit 476df2dea16 chore(i18n): sync translation catalogs with messages.pot
add 54aaf3ad7d7 fix(mcp): surface missing query_context warning in
get_chart_data result (#45250)
add fdb22260e25 fix(number-format): make the adaptive formatters follow
D3_FORMAT (#45241)
add c3279f01921 ci: skip jobs that cannot complete on forks and private
mirrors (#45035)
add 385844237e6 fix(explore): preserve zero thresholds in contour controls
(#44966)
add 3de22376c5c fix(dashboards): update last modified timestamp when
adding chart to dashboard (#44305) (#44358)
add 77ebc0e55f3 fix(chart): keep dataset_uuid in exports when the dataset
is deleted (#44347)
add 452dea81f23 chore(deps-dev): bump @playwright/test from 1.62.1 to
1.64.0 in /superset-frontend (#45371)
add bc83e3e6fdb fix(mcp): propose a matching value when a dashboard filter
value is rejected (#45547)
add b129d6a4c12 fix(semantic-layer): narrow Filter|OrFilter unions in test
helpers for mypy (#45268)
add ff214bdfb14 fix(sqllab): clip multi-line result values to their row
(#45487)
add 62d22e0697c fix(semantic-layer): type the E2E stub filters for the
full filter union (#45419)
add 5eaad449f5c fix(import): return 422 instead of 500 for unsafe ZIP
import bundles (#45440)
add 676af61b1c9 fix(jinja): keep filters with 0 or false values in
get_filters and fi… (#45437)
add 47358be13c1 fix(import): return 422 instead of 500 for non-UTF-8
members in import bundles (#45424)
add b4f8ca407a3 chore(deps-dev): bump vite from 8.3.1 to 8.3.5 in
/superset-websocket in the security group across 1 directory (#45590)
add 7ff7f9048bf fix(semantic-layer): handle absent fetch-values predicate
(#45539)
add 9ce458594fe fix(connection): encode next in the unauthorized login
redirect (#45477)
add 2304d1b80f2 fix(datasets): re-check statement count after query
mutation (#45453)
add 4bfd874c4cb fix(postprocessing): handle Decimal comparisons with zero
baselines (#45467)
add 4e5d0ef8f13 fix(models): keep NULL rows in NOT IN filters without a
NULL value (#45305)
add a0ebed9ff1a docs(auth): add Keycloak PKCE, logout and group-mapping
example (#38092)
add b3471a1369c fix(a11y): WCAG 1.4.1 — add non-color visual cues to
status indicators (#39233)
add 3297c39d94c docs(installation): describe the default image instead of
lean in Docker Compose responsibilities (#45582)
add 47300cf4c2f fix(mcp): pass time_grain as a string and keep annotation
DB error classification (#45484)
add 030f36a00c3 docs(extensions): move Semantic Layers into its own
extension point page (#45630)
add 578d43fef9b fix(listview): prevent table column layout shift on
content change (#37299)
add 97a536f37d9 feat(echarts): allow configuring minInterval on bar and
line chart axes (#43515)
add dfd84bf3d9e fix(mcp): only serve the browser hello page on the MCP
endpoint (#45391)
add 7fceb05c1ce docs(docker): drop redundant packages from custom image
example, bump version numbers (#44240)
add aabddf5b3f5 fix(semantic-layers): cap and time-bound bulk semantic
view creation (#45532)
add 2c275ed0a5b fix(echarts): restore series color markers in sanitized
tooltips (#45505)
add 98fac9104fb fix(datasets): validate metric d3format (#45633)
add bf18152476a chore: stop forcing .ipynb as a binary attribute (#45602)
add 87d1abb21e6 chore(frontend): let JEST_MAX_WORKERS cap the Jest worker
pool locally (#45594)
add 5cfcee95b4e fix(import): return 400 instead of 500 on malformed JSON
in import form fields (#45579)
add 44be9b819dd fix(bigquery): return empty extra metadata instead of 500
when table is not found (#45634)
add 0689df740e2 fix(sql-lab): return 400 instead of 500 when stop_query is
missing client_id (#45521)
add 3b7001836c7 fix(charts): keep large nullable-integer dimensions exact
(#45308)
add 43006c1d054 fix(explore): omit constant Custom SQL dimensions from
GROUP BY (#45271)
add be40309811d fix: filter Sunburst temporal segments by bucket and
invert Hours offset in grained filters (#45598)
add d595becba71 test(explore): cover column config, conditional
formatting, and contour controls (#44843)
add b1c1d41b55f ci(docker): give the CI node image the workspace manifests
so jobs stop reinstalling (#45606)
new ef125cf0080 chore(i18n): sync translation catalogs with messages.pot
new f28098b2622 chore(i18n): fix Polish catalog Language header
new 0232f541f4d chore(i18n): regenerate catalogs after rebase onto master
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 (3d2191f7f16)
\
N -- N -- N refs/heads/chore/sync-translation-catalogs
(0232f541f4d)
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.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.gitattributes | 1 -
.github/workflows/chromatic.yml | 2 +-
.github/workflows/codeql-analysis.yml | 19 +-
.github/workflows/docker.yml | 25 +-
.github/workflows/frontend-bundle-size-nightly.yml | 5 +-
.github/workflows/github-action-validator.yml | 14 +
.github/workflows/python-nightly-canary.yml | 3 +
.../scripts/check-code-scanning-available.sh | 64 ++
.../scripts/check-code-scanning-available.test.sh | 118 +++
.github/workflows/showtime-cleanup.yml | 3 +
.github/workflows/superset-docs-verify.yml | 5 +
.github/workflows/superset-frontend.yml | 9 +-
.github/workflows/superset-translations.yml | 9 +-
.github/workflows/testcontainers.yml | 7 +-
AGENTS.md | 1 +
Dockerfile | 28 +-
UPDATING.md | 32 +-
docs/admin_docs/configuration/cache.mdx | 2 +-
.../configuration/configuring-superset.mdx | 2 +
docs/admin_docs/configuration/mcp-server.mdx | 7 +-
docs/admin_docs/installation/docker-builds.mdx | 43 +-
.../installation/installation-methods.mdx | 4 +-
docs/admin_docs/security/oauth.mdx | 318 ++++++++
.../contributing/development-setup.md | 6 +
docs/developer_docs/contributing/howtos.md | 3 +
.../extensions/contribution-types.md | 332 +--------
.../semantic-layers.md} | 392 ++++------
.../extensions/semantic-execution-context.md | 102 ---
docs/developer_docs/extensions/semantic-filters.md | 79 --
docs/developer_docs/semantic-layer-cache-clear.md | 2 +-
docs/developer_docs/sidebars.js | 1 +
docs/docs/using-superset/exploring-data.mdx | 29 +
.../using-superset/semantic-layer-connections.mdx | 11 +
.../using-superset/semantic-member-selections.mdx | 2 +-
.../docs/using-superset/using-ai-with-superset.mdx | 20 +
docs/sidebarTutorials.js | 2 +-
docs/static/resources/openapi.json | 4 +
superset-frontend/jest.config.js | 4 +
superset-frontend/package-lock.json | 42 +-
superset-frontend/package.json | 6 +-
.../src/components/TableCollection/utils.tsx | 3 +-
.../src/connection/SupersetClientClass.ts | 4 +-
.../src/number-format/NumberFormatterRegistry.ts | 28 +-
.../factories/createSmartNumberFormatter.ts | 56 +-
.../packages/superset-ui-core/src/utils/tooltip.ts | 31 +
.../test/connection/SupersetClientClass.test.ts | 5 +-
.../number-format/NumberFormatterRegistry.test.ts | 18 +
.../factories/createSmartNumberFormatter.test.ts | 14 +
.../superset-ui-core/test/utils/tooltip.test.ts | 34 +
.../playwright/helpers/api/assertions.ts | 16 +-
.../playwright/tests/chart/chart-list.spec.ts | 4 +-
.../tests/dashboard/dashboard-list.spec.ts | 4 +-
.../playwright/tests/dataset/dataset-list.spec.ts | 4 +-
.../src/Histogram/transformProps.ts | 8 +-
.../src/Sunburst/EchartsSunburst.tsx | 99 ++-
.../src/Sunburst/transformProps.ts | 36 +-
.../plugin-chart-echarts/src/Sunburst/types.ts | 4 +
.../plugin-chart-echarts/src/Sunburst/utils.ts | 190 +++++
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 28 +
.../src/Timeseries/Regular/Line/controlPanel.tsx | 19 +
.../src/Timeseries/transformProps.ts | 77 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 2 +
.../plugins/plugin-chart-echarts/src/controls.tsx | 30 +
.../plugins/plugin-chart-echarts/src/types.ts | 2 -
.../plugin-chart-echarts/src/utils/forecast.ts | 20 +-
.../src/utils/xAxisDrillByFilter.ts | 37 +-
.../test/Histogram/transformProps.test.ts | 11 +
.../test/MixedTimeseries/transformProps.test.ts | 8 +-
.../test/Sunburst/EchartsSunburst.test.tsx | 474 ++++++++++++
.../test/Sunburst/transformProps.test.ts | 149 +++-
.../test/Sunburst/utils.test.ts | 52 ++
.../test/Timeseries/Bar/controlPanel.test.ts | 28 +
.../test/Timeseries/EchartsTimeseries.test.tsx | 40 +
.../test/Timeseries/Line/controlPanel.test.ts | 42 ++
.../test/Timeseries/helpers.ts | 1 +
.../test/Timeseries/transformProps.test.ts | 138 +++-
.../test/utils/forecast.test.ts | 63 +-
.../src/layers/Contour/Contour.test.ts | 56 ++
.../src/layers/Contour/Contour.tsx | 2 +-
.../components/Chart/ChartErrorMessage.test.tsx | 2 +-
.../src/components/Chart/ChartErrorMessage.tsx | 3 +-
.../Chart/DrillBy/DrillByTemporalFilters.test.tsx | 256 +++++++
.../components/ErrorMessage/ErrorAlert.test.tsx | 41 +
.../src/components/GridTable/GridTable.test.tsx | 21 +
.../src/components/GridTable/index.tsx | 10 +-
.../ColorSchemeControl/ColorSchemeLabel.test.tsx | 14 +
.../ColorSchemeControl/ColorSchemeLabel.tsx | 3 +
.../ColumnConfigControl.popover.test.tsx | 293 ++++++++
.../ControlForm/ControlForm.test.tsx | 158 ++++
.../ConditionalFormattingControl.test.tsx | 297 +++++++-
.../ContourControl/ContourControl.test.tsx | 128 ++++
.../controls/ContourControl/ContourOption.test.tsx | 111 +++
.../controls/ContourControl/ContourOption.tsx | 8 +-
.../ContourControl/ContourPopoverControl.test.tsx | 277 +++++++
.../ContourControl/ContourPopoverControl.tsx | 17 +-
.../ContourControl/ContourPopoverTrigger.test.tsx | 133 ++++
.../controls/ContourControl/index.test.tsx | 212 ++++++
.../alerts/components/AlertStatusIcon.test.tsx | 14 +
.../features/alerts/components/AlertStatusIcon.tsx | 1 +
superset-frontend/src/pages/ChartList/index.tsx | 9 +-
.../src/pages/DashboardList/index.tsx | 3 +-
superset-frontend/src/pages/DatasetList/index.tsx | 18 +-
superset-websocket/package-lock.json | 162 ++--
superset/charts/api.py | 25 +-
superset/commands/chart/create.py | 4 +
superset/commands/chart/export.py | 34 +-
superset/commands/chart/update.py | 19 +
superset/commands/chart/utils.py | 39 +
superset/commands/dashboard/export.py | 51 +-
superset/commands/export/assets.py | 75 +-
superset/commands/export/models.py | 18 +-
superset/commands/importers/v1/utils.py | 24 +-
superset/commands/semantic_layer/create.py | 11 +
superset/common/utils/dataframe_utils.py | 64 ++
superset/config.py | 13 +
superset/connectors/sqla/utils.py | 49 +-
superset/dashboards/api.py | 26 +-
superset/databases/api.py | 32 +-
superset/datasets/api.py | 26 +-
superset/datasets/schemas.py | 17 +-
superset/db_engine_specs/bigquery.py | 15 +-
superset/importexport/api.py | 38 +-
superset/jinja_context.py | 4 +-
superset/mcp_service/chart/chart_helpers.py | 23 +
superset/mcp_service/chart/chart_utils.py | 16 +-
superset/mcp_service/chart/compile.py | 176 ++++-
superset/mcp_service/chart/schemas.py | 7 +-
superset/mcp_service/chart/tool/get_chart_data.py | 98 ++-
.../dashboard/tool/apply_dashboard_filters.py | 34 +-
superset/mcp_service/dashboard_scope_sql.py | 18 +-
superset/mcp_service/dataset/schemas.py | 21 +
superset/mcp_service/jwt_verifier.py | 28 +-
superset/models/helpers.py | 195 ++++-
superset/queries/api.py | 3 +
superset/queries/saved_queries/api.py | 26 +-
superset/queries/schemas.py | 2 +-
superset/semantic_layers/api.py | 63 +-
superset/semantic_layers/models.py | 3 +
superset/sql/parse.py | 27 +
superset/translations/ar/LC_MESSAGES/messages.po | 47 +-
superset/translations/ca/LC_MESSAGES/messages.po | 47 +-
superset/translations/cs/LC_MESSAGES/messages.po | 47 +-
superset/translations/de/LC_MESSAGES/messages.po | 47 +-
superset/translations/en/LC_MESSAGES/messages.po | 47 +-
superset/translations/es/LC_MESSAGES/messages.po | 47 +-
superset/translations/fa/LC_MESSAGES/messages.po | 47 +-
superset/translations/fi/LC_MESSAGES/messages.po | 47 +-
superset/translations/fr/LC_MESSAGES/messages.po | 47 +-
superset/translations/it/LC_MESSAGES/messages.po | 47 +-
superset/translations/ja/LC_MESSAGES/messages.po | 47 +-
superset/translations/ko/LC_MESSAGES/messages.po | 47 +-
superset/translations/lv/LC_MESSAGES/messages.po | 47 +-
superset/translations/messages.pot | 37 +-
superset/translations/mi/LC_MESSAGES/messages.po | 47 +-
superset/translations/nl/LC_MESSAGES/messages.po | 47 +-
superset/translations/pl/LC_MESSAGES/messages.po | 47 +-
superset/translations/pt/LC_MESSAGES/messages.po | 47 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 47 +-
superset/translations/ro/LC_MESSAGES/messages.po | 47 +-
superset/translations/ru/LC_MESSAGES/messages.po | 47 +-
superset/translations/sk/LC_MESSAGES/messages.po | 47 +-
superset/translations/sl/LC_MESSAGES/messages.po | 47 +-
superset/translations/sr/LC_MESSAGES/messages.po | 47 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 47 +-
superset/translations/ta/LC_MESSAGES/messages.po | 47 +-
superset/translations/th/LC_MESSAGES/messages.po | 47 +-
superset/translations/tr/LC_MESSAGES/messages.po | 47 +-
superset/translations/uk/LC_MESSAGES/messages.po | 47 +-
superset/translations/zh/LC_MESSAGES/messages.po | 47 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 47 +-
superset/utils/excel.py | 41 +-
superset/utils/number_format.py | 94 +++
superset/utils/pandas_postprocessing/compare.py | 14 +-
superset/views/base_api.py | 24 +
.../src/superset_e2e_semantic_stub/__init__.py | 12 +-
tests/integration_tests/datasets/api_tests.py | 45 ++
tests/integration_tests/queries/api_tests.py | 30 +
tests/unit_tests/charts/test_client_processing.py | 41 +
.../charts/test_exact_integer_chart_data.py | 824 +++++++++++++++++++++
tests/unit_tests/commands/chart/create_test.py | 252 ++++++-
tests/unit_tests/commands/chart/export_test.py | 576 ++++++++++++++
tests/unit_tests/commands/chart/update_test.py | 266 ++++++-
tests/unit_tests/commands/dashboard/export_test.py | 8 +-
.../unit_tests/commands/importers/v1/utils_test.py | 92 ++-
.../commands/semantic_layer/create_test.py | 53 +-
tests/unit_tests/common/test_dataframe_utils.py | 53 ++
.../unit_tests/common/test_query_cache_manager.py | 38 +
.../common/test_query_context_processor.py | 50 ++
tests/unit_tests/connectors/sqla/utils_test.py | 26 +
tests/unit_tests/databases/api_test.py | 44 ++
tests/unit_tests/datasets/schema_tests.py | 80 ++
tests/unit_tests/datasource/test_query_api.py | 24 +
tests/unit_tests/db_engine_specs/test_bigquery.py | 70 ++
tests/unit_tests/importexport/api_test.py | 99 ++-
tests/unit_tests/jinja_context_test.py | 74 ++
.../mcp_service/chart/test_bullet_tool_paths.py | 3 +
.../mcp_service/chart/test_chart_helpers.py | 42 ++
tests/unit_tests/mcp_service/chart/test_compile.py | 464 ++++++++++++
.../test_review_query_and_preview_regressions.py | 7 +-
.../chart/test_time_grain_generic_axes.py | 171 +++++
.../mcp_service/chart/tool/test_get_chart_data.py | 365 +++++++++
.../dashboard/tool/test_apply_dashboard_filters.py | 67 +-
.../mcp_service/native_tool_inventory.json | 36 +-
.../mcp_service/test_browser_hello_middleware.py | 126 ++++
.../mcp_service/test_dashboard_scope_sql.py | 51 ++
.../unit_tests/mcp_service/test_tool_inventory.py | 19 +
.../models/groupby_literal_column_test.py | 288 +++++++
tests/unit_tests/models/helpers_test.py | 171 +++++
.../models/normalize_df_large_integer_test.py | 307 ++++++++
.../models/test_hours_offset_bound_truncation.py | 480 +++++++++++-
.../pandas_postprocessing/test_compare.py | 109 +++
tests/unit_tests/semantic_layers/api_test.py | 262 ++++++-
.../semantic_layers/cache_policy_test.py | 3 +-
.../semantic_layers/e2e_stub_extension_test.py | 42 +-
.../semantic_layers/import_export_test.py | 6 +-
.../semantic_layers/metric_filter_test.py | 72 +-
tests/unit_tests/sql/parse_tests.py | 44 ++
tests/unit_tests/utils/csv_tests.py | 14 +
tests/unit_tests/utils/excel_tests.py | 38 +
tests/unit_tests/utils/number_format_test.py | 31 +
.../unit_tests/views/test_parse_json_form_field.py | 54 ++
221 files changed, 13209 insertions(+), 1550 deletions(-)
create mode 100755 .github/workflows/scripts/check-code-scanning-available.sh
create mode 100755
.github/workflows/scripts/check-code-scanning-available.test.sh
create mode 100644 docs/admin_docs/security/oauth.mdx
copy docs/developer_docs/extensions/{contribution-types.md =>
extension-points/semantic-layers.md} (65%)
delete mode 100644 docs/developer_docs/extensions/semantic-execution-context.md
delete mode 100644 docs/developer_docs/extensions/semantic-filters.md
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/utils.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/EchartsSunburst.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/utils.test.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.test.ts
create mode 100644
superset-frontend/src/components/Chart/DrillBy/DrillByTemporalFilters.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.popover.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourOption.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/index.test.tsx
create mode 100644 tests/unit_tests/charts/test_exact_integer_chart_data.py
create mode 100644 tests/unit_tests/commands/chart/export_test.py
create mode 100644
tests/unit_tests/mcp_service/test_browser_hello_middleware.py
create mode 100644 tests/unit_tests/models/groupby_literal_column_test.py
create mode 100644 tests/unit_tests/models/normalize_df_large_integer_test.py
create mode 100644 tests/unit_tests/views/test_parse_json_form_field.py