Skip to content

chore(viz)!: rebuild Nightingale Rose on ECharts, removing nvd3 entirely - #42381

Merged
rusackas merged 3 commits into
remove-legacy-viz-pipelinefrom
echarts-rose
Jul 28, 2026
Merged

chore(viz)!: rebuild Nightingale Rose on ECharts, removing nvd3 entirely#42381
rusackas merged 3 commits into
remove-legacy-viz-pipelinefrom
echarts-rose

Conversation

@rusackas

Copy link
Copy Markdown
Member

SUMMARY

Rebuilds the Nightingale Rose chart on ECharts and deletes plugin-chart-rose, removing the last consumer of nvd3-fork — nvd3 is now entirely out of the dependency tree.

The new renderer uses stacked bar series on polar coordinates: one angular sector per time period with the group series stacked radially, in both radius- and area-proportional modes (area mode plots sqrt-normalized increments on a unit radius axis, matching the legacy proportion math where wedge area encodes the value). Rich/plain tooltips, period axis labels, legend toggling and dark-theme text all carry over. The legacy click-to-expand interaction survives as a drill: clicking a sector morphs that period into a full pie of its series (via ECharts universalTransition), and clicking a slice returns to the rose. Slice colors stay consistent between the two views.

Control names, viz_type, buildQuery and the transformData reshape (with its tests) are unchanged, so saved charts keep working with no migration. Thumbnails recaptured from the new renderer.

Not carried over: the exact d3 tween choreography of the old expand animation (the shrink-to-mini-rose backdrop); the morph animation replaces it.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Rose view and the drilled period pie render as in the refreshed thumbnails; the drill round-trip was verified interactively in light and dark themes.

TESTING INSTRUCTIONS

  1. Open the Nightingale Rose example chart; verify sectors, stacking, tooltips and legend toggling.
  2. Click a sector: it morphs into that period's pie; click a slice to return.
  3. Toggle Rose Area Proportion and verify the wedge scaling changes.
  4. npx jest plugins/plugin-chart-echarts/test/Rose (18 tests).
  5. grep -c nvd3 superset-frontend/package-lock.json returns 0.

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
  • Introduces new feature or API
  • Removes existing feature or API

🤖 Generated with Claude Code

@dosubot dosubot Bot added change:frontend Requires changing the frontend risk:breaking-change Issues or PRs that will introduce breaking changes viz:charts:echarts Related to Echarts labels Jul 24, 2026
@bito-code-review

bito-code-review Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Bito Automatic Review Skipped - Branch Excluded

Bito didn't auto-review because the source or target branch is excluded from automatic reviews.
No action is needed if you didn't intend for the agent to review it. Otherwise, to manually trigger a review, type /review in a comment and save.
You can change the branch exclusion settings here, or contact your Bito workspace admin at evan@preset.io.

@netlify

netlify Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 77d20d4
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6a67f988dea89e0008cf0e3f
😎 Deploy Preview https://deploy-preview-42381--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread superset-frontend/plugins/plugin-chart-echarts/src/Rose/transformProps.ts Outdated
@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.29412% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 65.25%. Comparing base (9615e7c) to head (77d20d4).
⚠️ Report is 1 commits behind head on remove-legacy-viz-pipeline.

Files with missing lines Patch % Lines
...gins/plugin-chart-echarts/src/Rose/EchartsRose.tsx 0.00% 20 Missing ⚠️
...end/plugins/plugin-chart-echarts/src/Rose/index.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@                      Coverage Diff                       @@
##           remove-legacy-viz-pipeline   #42381      +/-   ##
==============================================================
+ Coverage                       65.13%   65.25%   +0.11%     
==============================================================
  Files                            2807     2806       -1     
  Lines                          156070   155887     -183     
  Branches                        35846    35820      -26     
==============================================================
+ Hits                           101661   101718      +57     
+ Misses                          52510    52270     -240     
  Partials                         1899     1899              
Flag Coverage Δ
javascript 72.36% <75.29%> (+0.23%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@rusackas rusackas added the 🎪 ⚡ showtime-trigger-start Create new ephemeral environment for this PR label Jul 24, 2026
@github-actions github-actions Bot added 🎪 27b9582 🚦 building 🎪 ⌛ 48h Environment expires after 48 hours (default) and removed 🎪 ⚡ showtime-trigger-start Create new ephemeral environment for this PR labels Jul 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🎪 Showtime is building environment on GHA for 27b9582

@github-actions

Copy link
Copy Markdown
Contributor

🎪 Showtime deployed environment on GHA for 27b9582

Environment: http://35.161.124.153:8080 (admin/admin)
Lifetime: 48h auto-cleanup
Updates: New commits create fresh environments automatically

claude added 3 commits July 27, 2026 17:34
…entirely

Replaces the d3/nvd3-fork rose renderer with an ECharts implementation:
stacked bar series on polar coordinates reproduce the per-period
sectors with radially stacked groups, in both radius- and
area-proportional modes (area mode plots sqrt-normalized increments on
a unit radius axis so wedge area encodes the value, matching the legacy
proportion math). Rich and plain tooltips, the time-period axis labels,
legend toggling and the theme-aware text all come along, and the legacy
click-to-expand interaction survives as a drill: clicking a sector
morphs that period into a full pie via universalTransition, and
clicking again returns.

Control names, buildQuery and the transformData reshape (with its
tests) carry over unchanged, so saved charts keep working with no
migration. The plugin-chart-rose package is deleted, which removes the
last consumer of nvd3-fork: nvd3 is now entirely out of the dependency
tree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tives

Difference-style comparisons can drive the running total negative, which
turned the area-mode sqrt into a NaN radius. Clamp the radicand at 0 so a
negative cumulative collapses to the center instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The transform sorted period keys with parseInt and then re-looked-up datum
by the parsed number, which silently dropped every period when __timestamp
was serialized as anything other than a plain epoch number (an ISO string,
for instance), leaving a blank chart. Sort numerically where possible but
index by the original key, and carry each period's raw timestamp on its
entries for the axis label.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@rusackas rusackas added 🎪 ⚡ showtime-trigger-start Create new ephemeral environment for this PR and removed 🎪 ⌛ 48h Environment expires after 48 hours (default) labels Jul 28, 2026
@github-actions github-actions Bot added 🎪 77d20d4 🚦 building 🎪 ⌛ 48h Environment expires after 48 hours (default) and removed 🎪 ⚡ showtime-trigger-start Create new ephemeral environment for this PR labels Jul 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🎪 Showtime is building environment on GHA for 77d20d4

@github-actions

Copy link
Copy Markdown
Contributor

🎪 Showtime deployed environment on GHA for 77d20d4

Environment: http://35.163.161.155:8080 (admin/admin)
Lifetime: 48h auto-cleanup
Updates: New commits create fresh environments automatically

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change:frontend Requires changing the frontend dependencies:npm plugins risk:breaking-change Issues or PRs that will introduce breaking changes size/XXL viz:charts:echarts Related to Echarts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants