Skip to content

Release 2.0.0 - #15

Merged
jim-risen merged 24 commits into
mainfrom
release/2.0.0
Sep 25, 2026
Merged

jim-risen merged 24 commits into
mainfrom
release/2.0.0

Conversation

@jim-risen

Copy link
Copy Markdown
Collaborator

Brings v2 to main and sets the version to 2.0.0.

Dependency

  • scichart 6.0.1; peers scichart >=6.0.0-0, react >=16.14.0

Breaking

  • config moved off SciChartReact to the new SciChartDeclarative
  • scichart peer is v6+: one modular wasm build, no .data files
  • Builder registers nothing on import; types need registering (SciChartDeclarative does it for you)
  • SciChartOverview no longer mirrors palette providers, animations or data labels

Core-side changes these sit on top of:
Breaking Changes in SciChart.js v6.0 from v5.2
and What's New in SciChart.js SDK v6.0.

Features

  • SciChartDeclarative, configureSciChartDefaults, SciChartMemoryDebugWrapper.defaultRenderChildren
  • New exported types: IChartComponentPropsCore, TChartComponentPropsWithInit, TChartComponentPropsWithConfig

Fixes

  • ChartGroupLoader rendered its overlay underneath the charts it was covering
  • Surfaces are marked as externally lifecycle-managed, silencing expected teardown warnings

Misc / repo

  • Dual ESM/CJS output with an exports map and subpath deep imports; sideEffects narrowed to
    configureDefaults; "use client" added
  • All scichart doc links retargeted from /documentation/js/current/ (still v2/v3-era content) to
    /documentation/js/v6/

antichaosdb and others added 24 commits August 1, 2026 08:53
Both READMEs and the shipped src/SciChart.tsx helper documented and applied the
two-call configure pattern. Under the v6 union build the second call overwrites
the first, so 2D charts fetch the 3D URL and 404 — the documented pattern was
actively harmful, not merely outdated. In v6 SciChart3DSurface.configure is
removed outright, so it now fails to compile instead of failing silently.

- src/SciChart.tsx: one SciChartSurface.configure({ wasmUrl: "/scichart.wasm" }).
  The dead dataUrl options go with it — .data files have not existed since v5 —
  and so do their @ts-ignore comments and the now-unused SciChart3DSurface
  import.
- Both READMEs: prose and snippets reduced to the single call.
- .storybook stories: SciChart3DSurface.useWasmFromCDN is removed in v6.
- Every demo copy config: scichart.wasm replaces the 2D/3D pair.

Applied with scichart-migrate; the prose, the duplicate-call collapse and the
unused import were done by hand, since the tool will not delete a statement or a
property from a call.

Verified: npm run build succeeds and emits lib/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Peers move to react >=16.14.0 and scichart >=6.0.0-0.
SciChartReact takes initChart only; config moves to SciChartDeclarative, the
only component that bundles the Builder API.
npm 12 requires newer Node than the workflow uses, and the v4 actions target the
deprecated Node 20 runtime.
The v2 line was pinned to the 6.0.0-alpha.162 prerelease. Moves the library, the
bundle-check harness and the demos onto the stable release, and re-records the
bundle-size baseline against it. Growth is a uniform few KB gzip across every
bundler; the isolation invariants are unchanged.
The repo had no changelog; release notes existed only as the README migration
section. Repo-only, since the npm tarball root is lib/ and ships README_NPM.md.
The readmes and the configureDefaults comment named scichart-data.wasm as fetched
for every chart; 6.0.1 does not ship that file. The payload is the core plus its
nosimd and 64-bit variants, and the charting3d side modules.

Storybook now serves the whole _wasm directory and the stories no longer redirect
the engine to a CDN - three story files called useWasmFromCDN at module scope, and
since Storybook bundles every story into one iframe those calls leaked across the
bundle, so the shipped wasmUrl default was never exercised. Demos that copied a
single file now copy the directory, which non-SIMD browsers and 3D charts need.

Also drops the alpha-channel install wording, since 2.0.0 goes out on latest.
The feature demos used chartBuilder, which v6 replaced with a top-level
build2DChart. The CRA and Electron demos were still on scichart 3.x while already
resolving scichart-react from the v2 build, and both passed config to
SciChartReact, which 2.0 moved to SciChartDeclarative. Electron also depended on
scichart-react: "latest", so publishing 2.0.0 would have paired a v6-only wrapper
with a v3 core without any file here changing.

Both Create React App demos are removed: cra-pwa never used scichart at all, and
create-react-app is deprecated. The remaining demos cover the same ground.

The Next demo's dev script drops --turbo, which could not resolve its symlinked
file: dependency and made every request fail, and its start script now serves the
static export rather than dying on a missing BUILD_ID.
The fallback is absolutely positioned but its wrapper was static, so the overlay
escaped to the nearest positioned ancestor and sat offset from the group, covering
the controls above it. The wrapper is now relative, with the caller's own style
spread after it so their position still wins.

Positioning alone was not enough. The group's default overlay had no z-index while
each chart's overlay uses one, and both compete in the same stacking context, so
the group overlay painted underneath its charts and showed only through the gap
between them. The two layers are now named constants with the group one above, and
the group wraps its default overlay the way it already wrapped a custom one.
Nothing in the demos exercised 3D, so the charting3d wasm side module - new in v6 and
fetched on demand beside the core - had no coverage outside a Storybook story running
against the library source. This builds it through the packaged ESM build, under the
App Router with "use client", and proves copyWasm puts the module where the core
resolves it: the page fetches /scichart.wasm and /scichart-charting3d.wasm locally.

Only initChart can build a 3D chart; config and SciChartDeclarative are 2D only.

It went here rather than react18/basic because that demo wraps its charts in
SciChartMemoryDebugWrapper, which hardcodes autoDisposeWasmContext with a zero
dispose timeout. Combined with StrictMode's remount and the debug proxies, the 3D
module loader reads a revoked wasm-context proxy and throws. Isolated to those three
together: removing any one of them makes it pass. That is a core-side issue, so the
demo lives where it works.
The wrapper always started with its children unmounted, so every demo using it opens on
an empty page until the checkbox is ticked. defaultRenderChildren renders them on the
first render instead, defaulting to false so existing behaviour is unchanged.

Props are typed rather than PropsWithChildren<any>, which also means the prop and its
doc comment reach the emitted .d.ts.
The component removes the chart root before its asynchronous delete, and a surface can be
deleted twice - the nested overview does exactly that - so the core's "root detached before
delete" and "surface already deleted" memory-debug warnings are expected noise rather than
a defect. Setting the flag on each validated surface tells the core so.

The property is read through an `in` guard because no published scichart has it yet: against
6.0.1 the branch never runs and the warnings are unchanged. Verified - the detach warning
still fires twice per unmount on 6.0.1, with no new errors - so this is forward-compatible
and takes effect with the core release that adds the flag.
Sets the released version everywhere it is recorded: the manifest and lockfile, the
demos' lockfiles for their file: dependency, and the bundle-check baseline metadata.

No tag is created here - the publish workflow reads the version from main, so the tag is
made there after the merge, which keeps it valid regardless of how the PR lands.

updateBaseline now promotes sizes.md alongside sizes.json. It only ever copied the JSON,
so the human-readable table still claimed scichart-react 2.0.0-alpha.0 against scichart
6.0.0-alpha.162 long after the baseline itself had moved on.
The migration section now points at the core's own breaking-changes page for v6.0, which
covers the wasm deployment change, the Builder API restructure and opt-in type registration
that the wrapper's own breaking changes sit on top of.

Every scichart docs link moved from /documentation/js/current/ to /documentation/js/v6/.
The current path still serves v2/v3-era content, so a v6-targeting release was pointing
readers at documentation for a library three majors behind.

Also drops two CHANGELOG entries that described things this release does not contain:
ChartGroupLoader.initializedClassName with its groupInitializedClassName export exists only
on an unmerged branch, and TChartGroupLoaderProps is declared locally and never exported.
@jim-risen jim-risen self-assigned this Sep 25, 2026
@jim-risen
jim-risen merged commit 77c2f65 into main Sep 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants