release(0.2.1): bump to 0.2.1, skipping Windows ARM64 this cycle

The 0.2.0 release left wickra@npm stuck at 0.1.4 and never created a
GitHub Release entry because the brand-new `wickra-win32-arm64-msvc`
sub-package name was caught by npm's spam-detection filter on its first
publish attempt (same situation that affected `wickra-win32-x64-msvc`
through 0.1.4 until npm Support unblocked it). A support ticket is open;
until it is resolved, ship 0.2.1 for the five platforms whose
sub-packages are already on npm and re-add Windows ARM64 in a follow-up
release.

Changes for this cycle:
- bindings/node/package.json: remove "wickra-win32-arm64-msvc" from
  optionalDependencies and "aarch64-pc-windows-msvc" from
  napi.triples.additional.
- bindings/node/npm/win32-arm64-msvc/: removed (will be restored fresh
  once the npm name is unblocked).
- .github/workflows/release.yml: comment out the
  aarch64-pc-windows-msvc entry of the node-build matrix with a
  TODO/restore note.
- Bump every workspace and binding version to 0.2.1 (Cargo.toml,
  pyproject.toml, bindings/node/package.json, five npm/<target>
  templates, the wiki version table). Cargo.lock regenerated.
- CHANGELOG: new [0.2.1] block consolidating every fix that has landed
  on main since 0.2.0 (HV epsilon, examples CI step, fuzz cargo-fuzz
  install, MSRV 1.85 -> 1.86 / 1.77 -> 1.88, criterion 0.5 -> 0.8,
  tokio-tungstenite 0.24 -> 0.29, tick_aggregator gap-fill cap, every
  GitHub Action SHA-pin bump). Compare-link added.

The arm64 loader branch in bindings/node/index.js is left untouched: a
Windows ARM64 user installing 0.2.1 will get the standard
`Cannot find module 'wickra-win32-arm64-msvc'` error from the loader,
which is accurate. PyPI's win-arm64 wheel is unaffected.

Verified locally:
  cargo fmt/clippy/test --workspace --all-features -> 630 passed / 0 failed
  cargo build -p wickra-examples --bins -> clean
  cargo build -p wickra-node -> clean
This commit is contained in:
kingchenc
2026-05-23 22:20:20 +02:00
parent aea17a87af
commit 8aa74cb638
17 changed files with 117 additions and 66 deletions
+7 -7
View File
@@ -26,12 +26,12 @@ open an issue on GitHub to discuss a separate license.
| Registry | Package | Version |
|-----------|----------------|---------|
| crates.io | `wickra` | 0.2.0 |
| crates.io | `wickra-core` | 0.2.0 |
| crates.io | `wickra-data` | 0.2.0 |
| PyPI | `wickra` | 0.2.0 |
| npm | `wickra` | 0.2.0 |
| npm | `wickra-wasm` | 0.2.0 |
| crates.io | `wickra` | 0.2.1 |
| crates.io | `wickra-core` | 0.2.1 |
| crates.io | `wickra-data` | 0.2.1 |
| PyPI | `wickra` | 0.2.1 |
| npm | `wickra` | 0.2.1 |
| npm | `wickra-wasm` | 0.2.1 |
Release notes and tagged builds:
<https://github.com/kingchenc/wickra/releases>.
@@ -47,7 +47,7 @@ Release notes and tagged builds:
- [Quickstart: Node](Quickstart-Node.md) — `npm install wickra`, basic
`SMA` and `MACD` calls, and the install surface. Windows x64 was
previously blocked by an npm spam filter on `wickra-win32-x64-msvc`;
that was resolved with npm Support, and 0.2.0 is the first release in
that was resolved with npm Support, and 0.2.1 is the first release in
which `npm install wickra` works end-to-end on Windows.
- [Quickstart: WASM](Quickstart-WASM.md) — `npm install wickra-wasm`,
building with `wasm-pack`, and running indicators client-side in a
+3 -3
View File
@@ -10,12 +10,12 @@ slow JS reimplementation.
npm install wickra
```
> **Windows install (0.2.0+).** Earlier patch releases were blocked on
> **Windows install (0.2.1+).** Earlier patch releases were blocked on
> Windows x64 because the platform-specific sub-package
> `wickra-win32-x64-msvc` was held back by npm's automated spam filter, so
> `require('wickra')` threw `Error: Cannot find module
> 'wickra-win32-x64-msvc'` after a successful `npm install`. npm Support
> released the name on 2026-05-22; 0.2.0 is the first version in which
> released the name on 2026-05-22; 0.2.1 is the first version in which
> Windows x64 installs cleanly end-to-end (version numbers `0.1.1``0.1.4`
> of that sub-package remain burned and cannot be republished — see the
> npm registry page for `wickra-win32-x64-msvc`). Linux x64, Linux arm64
@@ -135,7 +135,7 @@ The complete TypeScript definitions live at
| `batch(...)` | Single-output: flat `Array<number>` with `NaN` warmup.<br>Multi-output: flat interleaved `Array<number>`. |
| `reset()` | Returns to a freshly-constructed state. |
| `isReady()` | `true` once the first value has been emitted. |
| `warmupPeriod()` | Present on every indicator class (single- and multi-output, scalar- and candle-input) since `0.2.0`. |
| `warmupPeriod()` | Present on every indicator class (single- and multi-output, scalar- and candle-input) since `0.2.1`. |
A complete reference run lives in `bindings/node/__tests__/smoke.test.js`:
+1 -1
View File
@@ -15,7 +15,7 @@ build. The `wickra` crate is a thin façade that re-exports everything from
`wickra-core`; you can also depend on `wickra-core` directly if you want to
skip the façade.
The published crate is at version `0.2.0` on
The published crate is at version `0.2.1` on
[crates.io](https://crates.io/crates/wickra).
## The `Indicator` trait in 30 seconds
+1 -1
View File
@@ -111,7 +111,7 @@ console.log(last);
their fields per row (e.g. MACD: `[macd0, signal0, hist0, macd1, ...]`). The
exact layout is documented in the generated `pkg/wickra_wasm.d.ts`.
> Since `wickra-wasm@0.2.0`, every candle-input indicator (ATR, ADX,
> Since `wickra-wasm@0.2.1`, every candle-input indicator (ATR, ADX,
> WilliamsR, CCI, MFI, PSAR, Keltner, Donchian, VWAP, RollingVWAP,
> AwesomeOscillator, Aroon, Stochastic, OBV, and the rest of the
> volume / volatility / trailing-stop / price-statistics families) exposes
+1 -1
View File
@@ -160,7 +160,7 @@ const sma = new wickra.SMA(20);
console.log(sma.warmupPeriod()); // -> 20
```
(Since `wickra@0.2.0`, `warmupPeriod()` is exposed on every Node and
(Since `wickra@0.2.1`, `warmupPeriod()` is exposed on every Node and
WASM class — single- and multi-output — alongside `update()`, `reset()`
and `isReady()`. Consult `bindings/node/index.d.ts` for the
authoritative TypeScript surface.)