The legacy-pipeline removal deleted useLegacyApi from ChartMetadataConfig;
the enableNoResults test still passed it, breaking tsc in lint-frontend.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Guards the "headers render but no body rows" failure mode by driving the
real transformProps -> PairedTTest pipeline with a realistic flat
/api/v1/chart/data timeseries response (main.birth_names shape): asserts
transformProps keys the reshaped data by metric label with one series per
group tuple, and that the rendered tables contain a body row per group,
including when optional precision/significance controls are absent.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChartRenderer computed the SuperChart enableNoResults prop purely from
server-pagination + AG Grid filter state (bypassNoResult) and never read
the chart plugin's own enableNoResults metadata. Charts that fetch their
own data and issue no top-level query, like deck.gl Multiple Layers, set
enableNoResults: false but still hit the "No results were returned for
this query" empty state in explore, which pre-empts their self-fetching
renderer from ever mounting.
AND the chart's enableNoResults metadata (defaulting to true) into
bypassNoResult so deck_multi and similar self-fetching charts render.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds low-risk import-and-assert tests across migrated plugins, guarding the
classes of bugs found while testing this branch:
- is_timeseries charts must expose a datetime control (calendar, horizon, rose,
partition). Partition genuinely lacked one, so add sections.legacyTimeseriesTime
to its control panel (same 500 as paired-t-test otherwise).
- deck.gl Multiple Layers must issue an empty query (self-fetches its layers).
- deck.gl Arc is timeseries only when time_grain_sqla is set.
- Time Pivot's numeric x-axis format must render a number, not the literal
SMART_NUMBER string.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Removing the distributions dependency left TTestTable.test.tsx mocking a module
the component no longer imports, so the p-value/significance tests failed. Mock
./statistics.studentTwoSidedPValue to a deterministic 0.02 instead.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Time Pivot's x-axis is a numeric offset within the period (its x_axis_format
defaults to SMART_NUMBER), but NVD3Vis ran it through getTimeFormatter, which
made d3 print the literal string "SMART_NUMBER" on every tick. Format it as a
number instead. (Pre-existing bug, bycatch.)
- SelectAsyncControl never forwarded the Select 'oneLine' prop, so many selected
tags wrapped outside the control's fixed-height box (visible on deck.gl
Multiple Layers). Pass oneLine for multi mode so tags collapse to a '+N' tag.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The chart imported 'distributions' to compute the Student's t p-value, but that
package references Node's Buffer global, which is only polyfilled in dev builds
-- so the chart rendered in dev and threw "ReferenceError: Buffer is not
defined" in production. Replace it with a self-contained, browser-safe
two-sided p-value via the regularized incomplete beta function, verified
against standard t-table critical values, and drop the dependency.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
deck.gl Multiple Layers issues no query of its own -- each layer is a saved
chart that fetches its data client-side, so buildQuery is intentionally empty.
Dropping useLegacyApi exposed the default enableNoResults=true, so the empty
query response now shows "No results were returned for this query" and the map
never renders. Set enableNoResults: false, matching the other self-fetching
charts (Select filter, DeckglLayerVisibility).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The paired t-test chart's buildQuery sends is_timeseries, so the backend
requires a datetime column, but its migrated control panel has no time
section. Creating the chart fails with "Datetime column not provided as part
table configuration and is required by this type of chart" with no way to
supply one. Add the shared legacyTimeseriesTime section, matching its sibling
timeseries charts (rose, horizon), so a granularity column can be selected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
master added strip_metricsqlexpressions_from_ag_grid_params (d24e6b0a9c7f)
on top of shadow_live_row_indexes (8f3a1b2c4d5e) after this branch's
bubble-chart migration was last pointed at 8f3a1b2c4d5e, producing two
alembic heads and failing `db upgrade` across every integration/E2E job.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drops the dead `method` param from getChartDataRequest (the legacy
GET/POST branching it supported no longer exists now that chart data
always POSTs to /api/v1/chart/data), removes bubble-only NVD3Vis props
(entity/maxBubbleSize/xField/yField/sizeField) and the unused module-level
`formatter` left over from the bubble->bubble_v2 migration, and deletes
plugins/legacy-preset-chart-nvd3/test/TimePivot/controlPanel.test.ts, an
orphaned test for a src/ directory that no longer exists after the
rename to preset-chart-nvd3 (superseded by
plugins/preset-chart-nvd3/test/TimePivot.test.ts).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
down_revision on d4e5f6a7b8c9 pointed at b1c2d3e4f5a6
(add_subjects_tables), which already has a child on master
(56cd24c07170 -> 8f3a1b2c4d5e). That left two alembic heads and
broke `superset db upgrade` in every DB-backed CI job. Chain the
migration after 8f3a1b2c4d5e, master's real current head, instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
down_revision on d4e5f6a7b8c9 still pointed at 3a8e6f2c1b95, which
master's add_subjects_tables migration (b1c2d3e4f5a6) also forked
from, leaving two alembic heads and breaking `superset db upgrade`
in every DB-backed CI job.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Multi.tsx now resolves sublayer buildQuery/transformProps via the chart
plugin registries instead of the removed legacy explore.ts helper; update
the color test's mocks to register deck_scatter/deck_arc stubs and mock
SupersetClient.post (matching the new fetch call) instead of .get.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Remove dangling package-lock.json link entries for the removed
legacy-* plugin workspaces and regenerate entries for their
renamed plugin-chart-* counterparts; npm ci was failing with
EUSAGE because the lockfile referenced workspace paths that no
longer exist on disk.
- Re-parent the bubble-chart-to-echarts migration
(d4e5f6a7b8c9) onto the current single migration head
(3a8e6f2c1b95) instead of a now-superseded ancestor, resolving
the "Multiple head revisions" alembic error that was failing
test-sqlite/test-postgres/test-mysql/cypress/playwright.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Working documents for the remove-legacy-viz-pipeline feature branch;
stripped before final merge.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>