release(0.1.5): bump versions, finalize CHANGELOG, fail loud on missing platform binaries (R20, Z2)

Versions bumped to 0.1.5 in every authoritative location:

- workspace `Cargo.toml` (`[workspace.package].version`, the
  `wickra-core` path dependency pin).
- `bindings/python/pyproject.toml`.
- `bindings/node/package.json` (main + all six `optionalDependencies`
  pins).
- All six per-platform `bindings/node/npm/<target>/package.json`
  templates.

CHANGELOG: the accumulated `[Unreleased]` block is promoted to
`[0.1.5] - TBD` (date left for the user to set at tag time); the new
`[Unreleased]` header sits empty above it; the compare link table is
extended with `[0.1.5]: …compare/v0.1.4...v0.1.5` and the
`[Unreleased]` link is repointed to `…compare/v0.1.5...HEAD`.

Wiki refresh for 0.1.5 (R20 + Z2):

- `Home.md` version pin table updated; the Quickstart-Node hint replaces
  the "spam filter holding back Windows" caveat with "0.1.5 is the
  first release in which `npm install wickra` works end-to-end on
  Windows" (npm Support released the name on 2026-05-22).
- `Quickstart-Node.md`'s Windows caveat is rewritten to explain the
  history (`0.1.1`–`0.1.4` of `wickra-win32-x64-msvc` are burned) and
  the resolution (0.1.5+ installs cleanly).
- `Quickstart-Rust.md` version mention bumped.
- `Warmup-Periods.md` note bumped + corrected: every Node and WASM
  class — single- and multi-output — now exposes `warmupPeriod()` after
  R3 (this branch), not only the single-output ones.

`release.yml` `publish_dir` no longer silently swallows a
second-attempt platform-package publish failure with a `::warning::`
and `return 0`. A real failure (after the existing 30s retry) now
emits an `::error::` and fails the job. The original mask is exactly
what allowed the `wickra-win32-x64-msvc@0.1.1–0.1.4` spam-filter
rejections to land four times in a row without anyone noticing (audit
finding R20). Failing loud means the next regression of this shape is
caught at the release run, not by a Windows user trying to
`require('wickra')`.

This commit does NOT push, tag, or trigger a release — the user
publishes the 0.1.5 tag themselves once the manual npm-republish
smoke test confirms `wickra-win32-x64-msvc@0.1.5` accepts publish on
the freshly-released name.
This commit is contained in:
kingchenc
2026-05-23 10:58:08 +02:00
parent 62fcab1c86
commit 896b71fc62
16 changed files with 66 additions and 50 deletions
+10 -8
View File
@@ -26,12 +26,12 @@ open an issue on GitHub to discuss a separate license.
| Registry | Package | Version |
|-----------|----------------|---------|
| crates.io | `wickra` | 0.1.4 |
| crates.io | `wickra-core` | 0.1.4 |
| crates.io | `wickra-data` | 0.1.4 |
| PyPI | `wickra` | 0.1.4 |
| npm | `wickra` | 0.1.4 |
| npm | `wickra-wasm` | 0.1.4 |
| crates.io | `wickra` | 0.1.5 |
| crates.io | `wickra-core` | 0.1.5 |
| crates.io | `wickra-data` | 0.1.5 |
| PyPI | `wickra` | 0.1.5 |
| npm | `wickra` | 0.1.5 |
| npm | `wickra-wasm` | 0.1.5 |
Release notes and tagged builds:
<https://github.com/kingchenc/wickra/releases>.
@@ -45,8 +45,10 @@ Release notes and tagged builds:
streaming via the `Indicator` and `BatchExt` traits, and the `Chain`
combinator.
- [Quickstart: Node](Quickstart-Node.md) — `npm install wickra`, basic
`SMA` and `MACD` calls, and the current Windows install caveat
(`wickra-win32-x64-msvc@0.1.4` is held by the npm spam filter).
`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.1.5 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
browser or bundler.
+10 -9
View File
@@ -10,15 +10,16 @@ slow JS reimplementation.
npm install wickra
```
> **Windows install caveat (current, 0.1.4).** The platform-specific
> sub-package `wickra-win32-x64-msvc@0.1.4` is presently held back by npm's
> automated spam filter. On a Windows x64 machine `npm install wickra`
> succeeds, but `require('wickra')` then throws
> `Error: Cannot find module 'wickra-win32-x64-msvc'` because the loader
> falls through to `require('wickra-win32-x64-msvc')` when no local `.node`
> binary is found. Linux x64 and macOS (x64 + arm64) wheels are unaffected.
> If you are on Windows today, build the binding from source (see "Building
> from source" below) until the npm side is resolved.
> **Windows install (0.1.5+).** 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.1.5 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
> and macOS (x64 + arm64) were unaffected throughout.
## A first run
+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.1.4` on
The published crate is at version `0.1.5` on
[crates.io](https://crates.io/crates/wickra).
## The `Indicator` trait in 30 seconds
+4 -3
View File
@@ -153,9 +153,10 @@ const sma = new wickra.SMA(20);
console.log(sma.warmupPeriod()); // -> 20
```
(Note: as of `wickra@0.1.4`, `warmupPeriod()` is exposed on the Node
single-output classes but not on every multi-output class — consult
`bindings/node/index.d.ts` for the authoritative surface.)
(Since `wickra@0.1.5`, `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.)
## See also