This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a change to branch feat/color-picker-consolidation
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit a89872c1449 fix(color-picker): address review feedback on legacy 
scheme migration, i18n label, and theme cast
    omit 3b4bb77b2f1 fix(color-picker): guard Gauge interval colors against 
mid-edit misalignment
    omit b331b00e411 fix(color-picker): fix real jest failures in 
interval-color migration and bullet range control
    omit ef409235f3f fix(i18n): drop a messages.pot entry orphaned by an 
earlier description edit
    omit 3be1c27d1f9 fix(color-picker): migrate legacy color fields and guard 
transient input
    omit 12f6ef231ff fix(big-number): revert PopKPI arrow color assertion to 
render-only check
    omit f524d606365 fix(color-picker): address bito review findings on 
range/comparison colors
    omit 0a22165a3b4 chore(i18n): regenerate messages.pot for the new 
color-picker strings
    omit 3ffedff2dea fix(bullet): share one range tokenizer, assert the 
down-arrow value
    omit d4afe9840a8 refactor(bignumber): name the comparison pill tint alpha 
suffix
    omit 88ea2b6e4ad test(color-picker): await click before asserting 
reset-button onChange
    omit adc067986ad refactor(color-picker): dedupe comparison color config and 
disable theme pickers on invalid JSON
    omit 571074bbf15 test(themes): paste JSON into the theme editor instead of 
typing it
    omit 785ff9ac910 fix(charts): align finite-value filtering between Bullet 
ranges and range colors
    omit de0479f0d8d fix(charts): address bot review findings on legacy color 
fallbacks
    omit 8945c4dfe4b feat(themes): add curated color pickers above the theme 
JSON editor
    omit 67b21b2c49b feat(big-number): replace 2-choice comparison scheme with 
color pickers
    omit 1e06329b404 feat(bullet): add optional per-range band colors
    omit fb5c2f41950 feat(gauge): replace scheme-index interval colors with a 
color picker
     add 3f6d4cd6896 chore(deps-dev): update google-cloud-storage requirement 
from >=1.37 to >=3.14.1 (#44693)
     add 6a832cb2102 fix(mcp): enforce dashboard filter scope on dataset, SQL 
and chart tool calls (#44800)
     add e7702020344 fix(postprocessing): preserve NULL index values through 
pivot() (#43547) (#43693)
     add f7badeb095b fix(mcp): execute_sql request limit caps, never raises, an 
explicit SQL LIMIT (#44604)
     add db56168a861 ci: require babel-extract to pass before merging master 
(#44543)
     add 342a8f1e4e0 fix(mcp): report a chart's live dataset id and name 
(#44681)
     add 21b937b59d7 fix(retention): skip models without purge policies before 
scanning (#44874)
     add 6d97cde59a6 fix(semantic-layers): export/import semantic-view charts 
by typed reference (#44396)
     add b94f88ffbb4 fix(semantic-layer): require explicit member identity 
reselection (#44370)
     add 9c7c96fe057 fix(logging): register LogRestApi only once (#44732)
     add edc91b86e5c chore(deps-dev): bump baseline-browser-mapping from 
2.11.25 to 2.11.26 in /superset-frontend (#44890)
     add 338e640df93 chore(deps): bump dompurify from 3.4.15 to 3.4.16 in 
/superset-frontend (#44889)
     add 4a199486599 chore(deps): bump dom-to-image-more from 3.10.2 to 3.11.0 
in /superset-frontend (#44888)
     add 6559b483f28 chore(deps): bump maplibre-gl from 6.8.0 to 6.11.2 in 
/superset-frontend (#44887)
     add dfccc2e1e9c chore(deps-dev): bump minimizer-webpack-plugin from 5.11.0 
to 5.12.0 in /superset-frontend (#44886)
     add c43770e12da chore(deps-dev): bump webpack-sources from 3.5.1 to 3.5.3 
in /superset-frontend (#44885)
     add 95faf3a6a04 chore(deps-dev): bump oxlint-tsgolint from 7.0.2002 to 
7.0.2003 in /docs (#44883)
     add 27c9213cca2 chore(deps-dev): bump oxlint-tsgolint from 7.0.2002 to 
7.0.2003 in /superset-websocket (#44882)
     add 25956d6c448 chore(superset-ui-chart-controls): forward-compat fixes 
for TypeScript 6.0 (#44877)
     add ba3500e0e9a feat(export/import): add annotation layer export/import 
support for charts and dashboards (#43232)
     add 1b0a37cf223 fix(users): stop update_me setting self-referential 
changed_by_fk (#44866)
     add 7bb29649416 chore(deps): bump dawidd6/action-download-artifact from 24 
to 25 (#44884)
     add 005edd74234 chore(build): de-vendor `helm/chart-testing-action` GHA 
(#44722)
     add 10d06859b83 fix(ci): floor pyfakefs at 5.7.4 to fix Python 3.13 
pytest-cov crash (#44853)
     add 0b9b0fe5812 feat(gauge): replace scheme-index interval colors with a 
color picker
     add 3176d913f56 feat(bullet): add optional per-range band colors
     add d4dbe1da3de feat(big-number): replace 2-choice comparison scheme with 
color pickers
     add 92374b48900 feat(themes): add curated color pickers above the theme 
JSON editor
     add d5fa7acbcd6 fix(charts): address bot review findings on legacy color 
fallbacks
     add c1e4f1852ba fix(charts): align finite-value filtering between Bullet 
ranges and range colors
     add 94c357b4fb8 test(themes): paste JSON into the theme editor instead of 
typing it
     add c5014cc0898 refactor(color-picker): dedupe comparison color config and 
disable theme pickers on invalid JSON
     add f15e9137690 test(color-picker): await click before asserting 
reset-button onChange
     add d09320232c5 refactor(bignumber): name the comparison pill tint alpha 
suffix
     add de3c2725c0b fix(bullet): share one range tokenizer, assert the 
down-arrow value
     add a0418223c3b chore(i18n): regenerate messages.pot for the new 
color-picker strings
     add b53219a2ed3 fix(color-picker): address bito review findings on 
range/comparison colors
     add 92ec1f857d1 fix(big-number): revert PopKPI arrow color assertion to 
render-only check
     add 4a12bef3aa0 fix(color-picker): migrate legacy color fields and guard 
transient input
     add fbe65aa316e fix(i18n): drop a messages.pot entry orphaned by an 
earlier description edit
     add 87a58b0548c fix(color-picker): fix real jest failures in 
interval-color migration and bullet range control
     add 8bb62713080 fix(color-picker): guard Gauge interval colors against 
mid-edit misalignment
     add fa0ff081d11 fix(color-picker): address review feedback on legacy 
scheme migration, i18n label, and theme cast
     add 8f9a23938d8 chore(color-picker): add 'Up to' to messages.pot and apply 
oxfmt

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   (a89872c1449)
            \
             N -- N -- N   refs/heads/feat/color-picker-consolidation 
(8f9a23938d8)

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:
 .asf.yaml                                          |    1 +
 .github/actions/chart-testing-action               |    1 -
 .github/workflows/superset-docs-deploy.yml         |    4 +-
 .github/workflows/superset-docs-verify.yml         |    2 +-
 .github/workflows/superset-helm-lint-test.yml      |   19 +-
 .github/workflows/superset-translations.yml        |    2 +
 .gitmodules                                        |    3 -
 UPDATING.md                                        |   94 ++
 .../importing-exporting-datasources.mdx            |   32 +
 docs/admin_docs/configuration/mcp-server.mdx       |  134 ++
 docs/docs/using-superset/recently-archived.mdx     |   10 +
 .../using-superset/semantic-member-selections.mdx  |   62 +
 docs/package.json                                  |    2 +-
 docs/static/resources/openapi.json                 |   23 +-
 docs/yarn.lock                                     |   78 +-
 pyproject.toml                                     |   14 +-
 requirements/development.txt                       |    2 +-
 superset-core/src/superset_core/queries/types.py   |    3 +
 .../src/superset_core/semantic_layers/types.py     |    1 +
 .../src/superset_core/semantic_layers/view.py      |   14 +
 superset-frontend/package-lock.json                |   87 +-
 superset-frontend/package.json                     |    8 +-
 .../src/sections/sections.tsx                      |    7 +
 .../superset-ui-chart-controls/src/types.ts        |    1 +
 .../src/utils/getColorFormatters.ts                |   84 +-
 .../superset-ui-core/src/query/extractExtras.ts    |   22 +
 .../packages/superset-ui-core/src/query/index.ts   |    2 +
 .../src/query/semanticSelection.ts}                |   35 +-
 .../superset-ui-core/src/query/types/Dashboard.ts  |    1 +
 .../superset-ui-core/src/query/types/Query.ts      |    1 +
 .../src/query/types/QueryFormData.ts               |   12 +-
 .../test/query/extractExtras.test.ts               |   62 +
 .../plugin-chart-point-cluster-map/package.json    |    2 +-
 .../plugins/preset-chart-deckgl/package.json       |    2 +-
 .../src/components/Chart/ChartRenderer.test.tsx    |   52 +-
 .../src/components/Chart/ChartRenderer.tsx         |   23 +-
 .../FilterBar/FilterControls/FilterValue.test.tsx  |   42 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   70 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  147 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |  103 +-
 .../transformers/buildTarget.test.ts               |   44 +-
 .../FiltersConfigModal/transformers/buildTarget.ts |   37 +-
 .../transformers/customizationTransformer.ts       |   10 +-
 .../transformers/filterTransformer.ts              |   10 +-
 .../nativeFilters/FiltersConfigModal/types.ts      |    2 +
 .../components/nativeFilters/utils.test.ts         |   27 +
 .../dashboard/components/nativeFilters/utils.ts    |   13 +
 .../util/charts/getFormDataWithExtraFilters.ts     |  163 ++-
 .../util/getFormDataWithExtraFilters.test.ts       |  412 +++++-
 superset-frontend/src/dataMask/reducer.test.ts     |   58 +
 superset-frontend/src/dataMask/reducer.ts          |   18 +
 .../src/explore/actions/exploreActions.ts          |   10 +
 .../components/ControlPanelsContainer.test.tsx     |   62 +-
 .../explore/components/ControlPanelsContainer.tsx  |   44 +-
 .../controls/BulletRangeColorsControl/index.tsx    |    4 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   17 +
 .../index.tsx                                      |   27 +-
 .../controls/MatrixifyDimensionControl.test.tsx    |  139 +-
 .../controls/MatrixifyDimensionControl.tsx         |   26 +-
 .../src/explore/controlPanels/sections.tsx         |    7 +
 .../src/explore/reducers/exploreReducer.test.ts    |   66 +-
 .../src/explore/reducers/exploreReducer.ts         |   29 +-
 superset-frontend/src/explore/store.ts             |    3 +-
 .../src/utils/semanticViewStructure.test.ts        |   13 +
 .../src/utils/semanticViewStructure.ts             |   15 +-
 superset-websocket/package-lock.json               |   56 +-
 superset-websocket/package.json                    |    2 +-
 superset/annotation_layers/schemas.py              |   21 +
 superset/charts/api.py                             |    3 +
 superset/charts/schemas.py                         |   21 +-
 superset/commands/annotation_layer/exceptions.py   |    5 +
 superset/commands/annotation_layer/export.py       |  109 ++
 .../annotation_layer/importers}/__init__.py        |    0
 .../importers/dispatcher.py                        |   20 +-
 .../annotation_layer/importers/v1/__init__.py      |   54 +
 .../annotation_layer/importers/v1/utils.py         |   73 +
 superset/commands/chart/export.py                  |  251 +++-
 superset/commands/chart/importers/v1/__init__.py   |   99 +-
 superset/commands/chart/importers/v1/utils.py      |  381 ++++-
 superset/commands/dashboard/export.py              |    8 +-
 superset/commands/dashboard/export_example.py      |   31 +
 .../commands/dashboard/importers/v1/__init__.py    |   89 +-
 superset/commands/export/assets.py                 |   10 +-
 superset/commands/importers/v1/__init__.py         |   10 +-
 superset/commands/importers/v1/assets.py           |   74 +-
 superset/commands/importers/v1/examples.py         |   19 +
 superset/commands/importers/v1/utils.py            |    4 +-
 superset/common/query_context_processor.py         |   14 +-
 superset/common/query_object.py                    |   37 +-
 superset/common/tabular_query.py                   |    8 +-
 superset/dashboards/api.py                         |   13 +-
 superset/datasource/api.py                         |   52 +-
 superset/datasource/schemas.py                     |    9 +
 superset/db_engine_specs/bigquery.py               |   35 +-
 superset/initialization/__init__.py                |    1 -
 superset/mcp_service/app.py                        |    2 +
 superset/mcp_service/auth.py                       |   22 +-
 superset/mcp_service/caching.py                    |   37 +-
 superset/mcp_service/chart/schemas.py              |   61 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |   18 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |    5 +-
 superset/mcp_service/chart/tool/list_charts.py     |  118 +-
 superset/mcp_service/common/schema_discovery.py    |    2 +-
 superset/mcp_service/dashboard/schemas.py          |   29 +-
 superset/mcp_service/dashboard_scope.py            | 1365 ++++++++++++++++++
 superset/mcp_service/dashboard_scope_sql.py        |  516 +++++++
 superset/mcp_service/privacy.py                    |    1 +
 superset/mcp_service/semantic_layer/schemas.py     |    9 +
 .../semantic_layer/tool/get_compatible_metrics.py  |    3 +
 .../mcp_service/semantic_layer/tool/get_table.py   |   51 +-
 .../semantic_layer/tool/list_metrics.py            |    3 +
 superset/mcp_service/sql_lab/schemas.py            |   10 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |    1 +
 superset/migrations/shared/utils.py                |    2 +-
 ..._add_uuid_to_annotation_layer_and_annotation.py |  144 ++
 superset/models/annotations.py                     |   19 +-
 superset/models/core.py                            |   16 +-
 superset/result_set.py                             |    3 +
 superset/security/manager.py                       |    7 +
 superset/semantic_layers/api.py                    |    3 +
 .../semantic_layers/bundle_schemas.py              |   24 +-
 superset/semantic_layers/import_export.py          |  240 ++++
 superset/semantic_layers/mapper.py                 |    6 +
 superset/semantic_layers/models.py                 |    3 +
 superset/sql/execution/celery_task.py              |    1 +
 superset/sql/execution/executor.py                 |  109 +-
 superset/sql/parse.py                              |  101 +-
 superset/superset_typing.py                        |   11 +
 superset/tasks/deletion_retention.py               |   55 +-
 superset/translations/messages.pot                 |   71 +
 superset/utils/core.py                             |   36 +
 superset/utils/dict_import_export.py               |    7 +
 superset/utils/pandas_postprocessing/pivot.py      |   51 +-
 superset/utils/rls.py                              |    4 +-
 superset/views/users/api.py                        |    1 -
 .../annotation_layers/commands_tests.py            |  750 ++++++++++
 tests/integration_tests/charts/commands_tests.py   | 1515 ++++++++++++++++++++
 tests/integration_tests/commands_test.py           |   58 +
 .../integration_tests/dashboards/commands_tests.py |  585 ++++++++
 tests/integration_tests/fixtures/importexport.py   |  104 ++
 .../charts/commands/importers/v1/import_test.py    |   32 +-
 .../charts/commands/importers/v1/utils_test.py     |   28 +-
 .../commands/chart/semantic_export_test.py         |  127 ++
 .../dashboard/export_example_semantic_test.py      |  175 +++
 tests/unit_tests/commands/export_test.py           |   51 +
 .../commands/importers/v1/assets_test.py           |    4 +-
 .../common/test_query_context_processor.py         |   33 +
 tests/unit_tests/connectors/sqla/utils_test.py     |   34 +
 tests/unit_tests/db_engine_specs/test_bigquery.py  |   87 +-
 tests/unit_tests/initialization/init_views_test.py |  113 ++
 .../chart/test_live_chart_datasource.py            |  709 +++++++++
 .../dashboard/test_dashboard_schemas.py            |   18 +
 .../tool/test_get_compatible_metrics.py            |   14 +-
 .../semantic_layer/tool/test_get_table.py          |   39 +
 .../semantic_layer/tool/test_list_metrics.py       |   10 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   22 +-
 .../unit_tests/mcp_service/test_dashboard_scope.py | 1502 +++++++++++++++++++
 .../mcp_service/test_dashboard_scope_sql.py        |  674 +++++++++
 .../unit_tests/mcp_service/test_tool_inventory.py  |    4 +-
 tests/unit_tests/mcp_service/test_worker.py        |    6 +-
 tests/unit_tests/models/core_test.py               |   62 +
 .../unit_tests/pandas_postprocessing/test_pivot.py |  339 +++++
 .../test_superset_user_api_subject_sync.py         |   23 +
 tests/unit_tests/semantic_layers/api_test.py       |   10 +-
 .../semantic_layers/import_export_test.py          |  921 ++++++++++++
 tests/unit_tests/semantic_layers/mapper_test.py    |    5 +
 tests/unit_tests/semantic_layers/models_test.py    |    2 +
 .../semantic_layers/selection_identity_test.py     |  293 ++++
 .../semantic_layers/values_endpoint_test.py        |   21 +-
 tests/unit_tests/sql/execution/conftest.py         |    3 +
 tests/unit_tests/sql/execution/test_celery_task.py |    2 +
 tests/unit_tests/sql/execution/test_executor.py    |  850 ++++++++++-
 tests/unit_tests/sql/parse_tests.py                |  107 ++
 tests/unit_tests/tasks/test_deletion_retention.py  |  171 ++-
 tests/unit_tests/views/test_current_user_api.py    |   23 +
 175 files changed, 16174 insertions(+), 548 deletions(-)
 delete mode 160000 .github/actions/chart-testing-action
 create mode 100644 docs/docs/using-superset/semantic-member-selections.mdx
 copy superset-frontend/{src/views/ScrollToTop.tsx => 
packages/superset-ui-core/src/query/semanticSelection.ts} (50%)
 create mode 100644 superset/commands/annotation_layer/export.py
 copy {scripts => superset/commands/annotation_layer/importers}/__init__.py 
(100%)
 copy superset/commands/{chart => annotation_layer}/importers/dispatcher.py 
(82%)
 create mode 100644 superset/commands/annotation_layer/importers/v1/__init__.py
 create mode 100644 superset/commands/annotation_layer/importers/v1/utils.py
 create mode 100644 superset/mcp_service/dashboard_scope.py
 create mode 100644 superset/mcp_service/dashboard_scope_sql.py
 create mode 100644 
superset/migrations/versions/2026-08-17_18-38_884a2115ebd3_add_uuid_to_annotation_layer_and_annotation.py
 copy tests/unit_tests/utils/db.py => 
superset/semantic_layers/bundle_schemas.py (56%)
 create mode 100644 superset/semantic_layers/import_export.py
 create mode 100644 tests/integration_tests/annotation_layers/commands_tests.py
 create mode 100644 tests/unit_tests/commands/chart/semantic_export_test.py
 create mode 100644 
tests/unit_tests/commands/dashboard/export_example_semantic_test.py
 create mode 100644 tests/unit_tests/initialization/init_views_test.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_live_chart_datasource.py
 create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope.py
 create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope_sql.py
 create mode 100644 tests/unit_tests/semantic_layers/import_export_test.py
 create mode 100644 tests/unit_tests/semantic_layers/selection_identity_test.py

Reply via email to