Skip to content

Commit b9fc50a

Browse files
committed
test(release): add native performance qa stories
1 parent 865e26b commit b9fc50a

8 files changed

Lines changed: 543 additions & 38 deletions

File tree

apps/expo-showcase/src/stories/performanceStories.tsx

Lines changed: 461 additions & 0 deletions
Large diffs are not rendered by default.

apps/expo-showcase/src/storyRegistry.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { lineInteractionStories } from "./stories/lineInteractionStories";
1111
import { lineOverviewStories } from "./stories/lineOverviewStories";
1212
import { lineQaStories } from "./stories/lineQaStories";
1313
import { lineViewportStories } from "./stories/lineViewportStories";
14+
import { performanceStories } from "./stories/performanceStories";
1415
import { pieOverviewStories } from "./stories/pieOverviewStories";
1516
import { progressOverviewStories } from "./stories/progressOverviewStories";
1617
import { publicChartMode } from "./publicChartMode";
@@ -87,6 +88,11 @@ export const storySections: ShowcaseSection[] = [
8788
title: "V2 Contribution",
8889
stories: contributionOverviewStories
8990
},
91+
{
92+
id: "qa-performance",
93+
title: "QA Performance",
94+
stories: performanceStories
95+
},
9096
{
9197
id: "legacy-line",
9298
title: "Compat LineChart",
@@ -361,6 +367,23 @@ export const showcaseModes: ShowcaseMode[] = [
361367
"line-negative-values",
362368
"bar-negative-values"
363369
]
370+
},
371+
{
372+
id: "native-performance",
373+
title: "Native Performance",
374+
description:
375+
"Large deterministic datasets matching the native performance matrix rows.",
376+
storyIds: [
377+
"v2-perf-line-100",
378+
"v2-perf-line-1000-scrub",
379+
"v2-perf-line-10000-overview",
380+
"v2-perf-line-5x1000-tooltip",
381+
"v2-perf-line-10000-pan",
382+
"v2-perf-range-2x10000",
383+
"v2-perf-bar-500-selection",
384+
"v2-perf-combined-tooltip",
385+
"v2-perf-candlestick-1000"
386+
]
364387
}
365388
]
366389
}

docs/internal/completion-audit.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Concrete success criteria:
3434
| Theme system | provider, presets, app-level mode/preset switching, tooltip theme tokens | Covered |
3535
| Interaction | selection provider, tap/scrub, tooltips, crosshair, bar/pie/donut/candlestick interactions, `docs/release/native-runtime-qa.md`, `docs/release/native-qa-checklists.md`, `docs/release/evidence/native-runtime-matrix.json` | Covered on web showcase; native runtime protocol, generated checklist, and page/platform matrix exist; iOS simulator and Android emulator launch smoke captured; completed device interaction evidence still missing |
3636
| Accessibility baseline | summary/table helpers across major chart families, `docs/release/accessibility-qa.md`, `docs/release/native-qa-checklists.md`, `docs/release/evidence/native-accessibility-matrix.json` | Covered for helpers, QA protocol/matrix, and generated checklist; native screen-reader evidence missing |
37-
| Benchmark | `npm run benchmark`, `docs/release/h5-beta-gate-evidence.md`, `docs/release/native-performance-benchmark.md`, `docs/release/native-qa-checklists.md`, `docs/release/evidence/native-performance-matrix.json` | Covered for core geometry and web scrub timing; native performance protocol, generated checklist, and scenario matrix exist; one Android release-emulator animation sample captured; full release-device matrix missing |
37+
| Benchmark | `npm run benchmark`, `docs/release/h5-beta-gate-evidence.md`, `docs/release/native-performance-benchmark.md`, `docs/release/native-qa-checklists.md`, `docs/release/evidence/native-performance-matrix.json` | Covered for core geometry and web scrub timing; native performance protocol, generated checklist, dedicated large-data QA story fixtures, and scenario matrix exist; one Android release-emulator animation sample captured; full release-device matrix missing |
3838
| Docs and recipes | `docs/README.md`, chart docs, migration, prop mapping, recipes, troubleshooting | Covered |
3939
| Docs verification | `npm run docs:build` validates links, fences, and public TS/TSX examples | Covered |
4040
| Codemod | `scripts/chartkit-codemod.mjs`, `chartkit-codemod v1-to-v2` | Covered for conservative compatibility-prop insertion |
@@ -52,7 +52,7 @@ Concrete success criteria:
5252
| RN CLI native projects | No generated RN CLI `ios/` or `android/` projects are checked in | Source-level RN CLI example exists, but release-build evidence still requires native projects |
5353
| Pro paid implementation | H4 approved the Pro/free boundary, but `@chart-kit/pro` remains a preview registry/composition package without license enforcement, paid implementations, or runtime activation | Required before selling or labeling Pro as a finished paid package |
5454
| Skia renderer | `packages/skia-renderer` exposes an injected primitive adapter. Baseline free chart surfaces can accept it: LineChart, BarChart, PieChart/DonutChart, ProgressChart/ProgressRing, and ContributionGraph/CalendarHeatmap. CombinedChart and CandlestickChart also accept it for Pro-preview workflows. `npm run skia:parity` covers local primitive and renderer-contract parity; `docs/release/evidence/skia-renderer-evidence.json` and `docs/release/evidence/skia-renderer-matrix.json` record the remaining gaps | Native install, native renderer parity, and native Skia performance evidence are not complete |
55-
| Native performance benchmark | Protocol exists, `docs/release/evidence/native-performance-benchmark.json` records partial status, `docs/release/native-qa-checklists.md` provides row-by-row execution guidance, and one Android release-emulator line-animation timing/memory sample is captured. `docs/release/evidence/native-performance-matrix.json` has 18 pending platform/scenario rows | Full release-device matrix is still missing |
55+
| Native performance benchmark | Protocol exists, `docs/release/evidence/native-performance-benchmark.json` records partial status, `docs/release/native-qa-checklists.md` provides row-by-row execution guidance, and one Android release-emulator line-animation timing/memory sample is captured. `docs/release/evidence/native-performance-matrix.json` now links to dedicated 100/1,000/10,000-point, 500-bar, and 1,000-candle QA stories, but still has 18 pending platform/scenario rows | Full release-device matrix is still missing |
5656
| Screen-reader QA | Protocol exists, `docs/release/native-qa-checklists.md` provides row-by-row execution guidance, and `docs/release/evidence/native-accessibility-qa.json` records missing status. `docs/release/evidence/native-accessibility-matrix.json` has 16 pending assistive-tech/page rows | Accessibility helpers exist, but native assistive-tech behavior is not verified |
5757
| Developer Preview publish | `react-native-chart-kit@7.0.0-next.0` is published under `next`, but `@chart-kit/core`, `@chart-kit/svg-renderer`, and `@chart-kit/react-native` are not published because the publish workflow currently receives no usable npm auth token. `@chart-kit/pro` and `@chart-kit/skia-renderer` remain unpublished as intended. | The modern package path for new adopters is not installable until GitHub Actions npm auth and `@chart-kit` scope access are fixed |
5858
| H6 approval | No RC approval, final semver, final release notes, final visual freeze | Release candidate cannot be claimed |

docs/release/evidence/native-performance-matrix.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"schemaVersion": 1,
33
"status": "pending",
4-
"lastUpdated": "2026-05-05",
4+
"lastUpdated": "2026-05-06",
55
"source": "docs/release/native-performance-benchmark.md",
66
"platforms": [
77
{
@@ -37,63 +37,63 @@
3737
"label": "Small line initial render",
3838
"requiredDataSize": "100 points",
3939
"interaction": "initial render",
40-
"showcaseStoryId": "v2-basic"
40+
"showcaseStoryId": "v2-perf-line-100"
4141
},
4242
{
4343
"id": "standard-line-scrub",
4444
"label": "Standard line scrub",
4545
"requiredDataSize": "1,000 points",
4646
"interaction": "initial render and scrub",
47-
"showcaseStoryId": "v2-scrub"
47+
"showcaseStoryId": "v2-perf-line-1000-scrub"
4848
},
4949
{
5050
"id": "dense-line-decimated-overview",
5151
"label": "Dense line decimated overview",
5252
"requiredDataSize": "10,000 total points",
5353
"interaction": "decimated overview",
54-
"showcaseStoryId": "v2-scrollable-dense"
54+
"showcaseStoryId": "v2-perf-line-10000-overview"
5555
},
5656
{
5757
"id": "multi-line-shared-tooltip-scrub",
5858
"label": "Multi-line shared tooltip scrub",
5959
"requiredDataSize": "5 series x 1,000 points",
6060
"interaction": "shared tooltip scrub",
61-
"showcaseStoryId": "v2-selected-tooltip"
61+
"showcaseStoryId": "v2-perf-line-5x1000-tooltip"
6262
},
6363
{
6464
"id": "scrollable-line-one-finger-pan",
6565
"label": "Scrollable line one-finger pan",
6666
"requiredDataSize": "10,000 total points, 2,000 shown",
6767
"interaction": "one-finger pan",
68-
"showcaseStoryId": "v2-viewport-zoom-pan"
68+
"showcaseStoryId": "v2-perf-line-10000-pan"
6969
},
7070
{
7171
"id": "range-selector-drag-and-thumb-resize",
7272
"label": "Range selector drag and thumb resize",
7373
"requiredDataSize": "2 series x 10,000 points",
7474
"interaction": "drag and thumb resize",
75-
"showcaseStoryId": "v2-range-selector"
75+
"showcaseStoryId": "v2-perf-range-2x10000"
7676
},
7777
{
7878
"id": "scrollable-bar-horizontal-scroll-and-selection",
7979
"label": "Scrollable bar horizontal scroll and selection",
8080
"requiredDataSize": "500 bars",
8181
"interaction": "horizontal scroll and selection",
82-
"showcaseStoryId": "v2-bar-scrollable-selection"
82+
"showcaseStoryId": "v2-perf-bar-500-selection"
8383
},
8484
{
8585
"id": "combined-chart-shared-tooltip-and-legend",
8686
"label": "Combined chart shared tooltip and legend",
8787
"requiredDataSize": "bars plus line",
8888
"interaction": "shared tooltip and legend",
89-
"showcaseStoryId": "v2-combined-shared-tooltip"
89+
"showcaseStoryId": "v2-perf-combined-tooltip"
9090
},
9191
{
9292
"id": "candlestick-pan-pinch-and-tap-inspection",
9393
"label": "Candlestick pan, pinch, and tap inspection",
9494
"requiredDataSize": "1,000 candles",
9595
"interaction": "pan, pinch, tap inspection",
96-
"showcaseStoryId": "v2-candlestick-scrollable"
96+
"showcaseStoryId": "v2-perf-candlestick-1000"
9797
}
9898
],
9999
"rows": [

0 commit comments

Comments
 (0)