Release 2.0.0 - #15
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings v2 to
mainand sets the version to 2.0.0.Dependency
scichart6.0.1; peersscichart >=6.0.0-0,react >=16.14.0Breaking
configmoved offSciChartReactto the newSciChartDeclarativescichartpeer is v6+: one modular wasm build, no.datafilesSciChartDeclarativedoes it for you)SciChartOverviewno longer mirrors palette providers, animations or data labelsCore-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.defaultRenderChildrenIChartComponentPropsCore,TChartComponentPropsWithInit,TChartComponentPropsWithConfigFixes
ChartGroupLoaderrendered its overlay underneath the charts it was coveringMisc / repo
exportsmap and subpath deep imports;sideEffectsnarrowed toconfigureDefaults;"use client"added/documentation/js/current/(still v2/v3-era content) to/documentation/js/v6/