rusackas opened a new pull request, #40078:
URL: https://github.com/apache/superset/pull/40078

   ## Status: DRAFT — SIP scratchpad
   
   This PR is the working POC for a Country Map plugin redesign. It will 
eventually be referenced by a SIP (filed once the design is more concrete and 
the POC compiles end-to-end).
   
   ### What's in this commit
   
   - **`superset-frontend/plugins/plugin-chart-country-map/SIP_DRAFT.md`** — 
the design draft, capturing motivation, goals, proposed architecture, spike 
findings, open questions, and a phased implementation plan.
   
   ### What we've validated so far
   
   - **Default worldview**: spike confirms Natural Earth's `_ukr` (Ukraine) 
worldview cleanly delivers Crimea-as-Ukrainian *plus* aligned positions on 
Kosovo (separate from Serbia), Western Sahara (separate from Morocco), 
Palestine (recognized), Cyprus (undivided), Kashmir (aligned with India), Aksai 
Chin (excluded from China). 18 of 258 features differ from NE Default; 9 
micro-territories are dropped.
   - **Pipeline approach**: replace the Jupyter notebook with a 
`mapshaper`-CLI-based script that consumes pinned NE shapefiles and emits one 
GeoJSON per (worldview × admin level). Reproducible, diff-able, no notebook 
state.
   - **Plugin approach**: build new `plugin-chart-country-map` (no `legacy-` 
prefix) against the modern `chart/data` endpoint, supporting both Admin 0 
(countries) and Admin 1 (subdivisions) — folding in years of bespoke 
per-country contributions (French departments, Italian regions, Türkiye city 
map, etc.) into a single infrastructure.
   - **Deprecation**: in-UI "switch to new Country Map" button + deprecation 
banner on the legacy plugin. No DB migrations needed.
   
   ### What's NOT in scope for this SIP
   
   - World map plugin (bubble overlays) — separate concern, future work.
   - Custom GeoJSON upload as a first-class control — separate feature.
   - Combining geometries at runtime — out of scope; users wanting this should 
upload custom GeoJSON.
   - Admin 2 (counties, communes) — could come later.
   
   ### Next commits on this branch (rough)
   
   1. Audit existing notebook touchups; categorize keep/drop/port-to-YAML
   2. Write `scripts/country-maps/build.sh`
   3. Generate first batch of GeoJSON outputs
   4. Scaffold the new plugin (modern `ChartPlugin`, `chart/data` endpoint)
   5. Port rendering logic from legacy plugin
   6. Add controls (worldview, admin level, region include/exclude, flying 
islands, language)
   7. Wire up legacy plugin deprecation banner + "switch" button
   
   ### Reviewing this PR
   
   Read `SIP_DRAFT.md` and ping back on the open questions section. The doc 
will be kept up to date as the POC progresses; eventual SIP issue will be a 
snapshot of this file.
   
   ### Additional information
   
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI (eventually — not yet)
   - [ ] Includes DB Migration: **no**
   - [ ] Introduces new feature or API: **yes (eventually)**
   - [ ] Removes existing feature or API: **yes (deprecates 
legacy-plugin-chart-country-map across two majors)**


-- 
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