aminghadersohi commented on PR #44148:
URL: https://github.com/apache/superset/pull/44148#issuecomment-5901579011

   @rebenitez1802 thanks for the thorough review. Merged upstream `master` in 
5edf6b993b (the only conflict was `UPDATING.md`; both entries are kept). Each 
finding:
   
   **1. 🟡 Gantt compile errors escape as `QueryObjectValidationError`**: fixed 
in 832e7262bd. `_compile_chart` now catches `QueryObjectValidationError` next 
to `CommandException`/`ValueError`/`KeyError`, so malformed Gantt form data 
returns a structured `CHART_COMPILE_FAILED` again. The Gantt plugin keeps 
raising `QueryObjectValidationError` because `get_chart_data` maps it to 
`ValidationError`. The saved preview, SQL and data paths already catch 
`SupersetException`. Regression: 
`test_compile_chart_returns_structured_error_for_malformed_gantt_form_data` (51 
`tooltip_columns`). It fails before the fix and passes after.
   
   **2. 🟡 Cross-filter/drill emits the ISO id for blank-metric regions**: fixed 
in 6bc655e038. `transformProps` builds an `ISO → source value` map from every 
normalized row, including rows it drops for a non-finite metric, and passes it 
as `sourceValues`. `CountryMap`'s `sourceValue()` reads that map instead of 
scanning the rendered `data`. New tests: `source values cover regions whose 
metric is blank` checks the map. A real-GeoJSON render test clicks and 
right-clicks a NULL-metric California and asserts both the cross-filter `val: 
['CA']` and the drill `val: 'CA'`.
   
   **3. 🟢 `world_map` rejects a bubble-less choropleth over an unused 
`secondary_metric`**: fixed in 624c53f292. `result_metrics` and 
`size_metric_labels` only include the secondary metric when `show_bubbles` is 
set. The typed frontend transform (`transformData`, `showBubbles`) now applies 
the same rule, so the render layer doesn't throw where the backend accepts. 
Tests cover `-1`/NULL/NaN/non-numeric secondary values, which are accepted with 
bubbles off and rejected with bubbles on, in both pytest and Jest.
   
   **4. 🟢 Empty non-Gantt Vega-Lite preview no longer returns `NoDataError`; 
`allows_empty_result` unused**: fixed in 832e7262bd. The saved Vega-Lite path 
reads `plugin.allows_empty_result` and returns `NoDataError` for an empty 
result before running any plugin preview. Only Gantt skips that check. 
`test_saved_vega_preview_empty_result_honors_allows_empty_result` covers 
`bubble_v2`, `gauge_chart`, `treemap_v2` → `NoDataError` and `gantt_chart` → 
empty `VegaLitePreview`. `bubble_v2` and `gauge_chart` failed before the fix.
   
   **5. 🟢 `deck_scatter` render silently drops invalid rows**: fixed by 
documenting the behavior and making the skips visible, in af5a06246a. Rendering 
keeps skipping the rows instead of throwing, because @rusackas explicitly asked 
for sparse/non-numeric rows to render blank rather than fail the chart. The MCP 
data/export contract still rejects these rows. The filter is now a named, 
exported helper (`filterDrawableGeographicPoints`) that logs `Skipped N of M 
geographic points …` through `logging.warn`. The MCP guide documents the 
render-layer skip and the warning. Jest covers the warning and the no-warning 
path.
   
   **6. 🟢 Size-metric nonnegative guard untested**: fixed in 624c53f292. 
`test_negative_size_metric_is_rejected` is parametrized over `world_map` 
bubbles and `deck_scatter` radius, with `-1`, `-0.5` and `Decimal("-0.001")`, 
and runs through `normalize_chart_query_result` asserting 
`InvalidGeographicResult`. Companion tests cover zero being accepted and a 
negative *color* metric being accepted with bubbles on.
   
   **7. 🟢 `GB-WRL` mislabeled "Halton"**: fixed in f83e84409c. The bundled 
`uk.geojson`, `superset/utils/geographic_regions.py` and the frontend 
`regions.ts` all change together, so the geometry parity tests still pass. 
"Halton" → `GB-HAL` and "Wirral" → `GB-WRL` in both the backend and the 
frontend. A new test asserts that no bundled region name in any boundary set 
shares a folded key, so a second duplicate like this would fail CI.
   
   **8. 🟢 `select_country` casing asymmetry**: fixed in 6bc655e038. 
`transformProps` lowercases `select_country` once and uses that value for both 
`normalizeRegions` and the render prop. Jest cases `USA`/`Usa`/`usa` all 
resolve.
   
   **9. 🟢 Internal tracker links in the PR body**: done. The tracker link is 
gone from the PR body and the title has none. None of the branch's commit 
messages and not the branch name (`mcp-geographic-chart-types`) contain tracker 
IDs either. Existing pushed commits couldn't have been rewritten anyway, since 
this PR takes new commits only and is never force-pushed. None needed it.
   
   Local validation at af5a06246a: MCP unit tests 6,543 passed. Three 
`test_mcp_caching` catalog tests fail identically on untouched `master` because 
of the locally installed FastMCP 3.4.2 (pinned 3.4.7), so they're unrelated to 
this branch. Country-map, world-map and deck.gl Scatter Jest suites: 15 suites 
/ 169 tests pass. Pre-commit on the changed files passes (MyPy, Ruff, Pylint, 
oxfmt, oxlint, custom rules, stylelint, frontend type check).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to