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]
