release(0.2.0): bump version from 0.1.5 to 0.2.0
This release carries the full post-audit work — 46 new indicators
(25 → 71), an eight-family taxonomy restructure, new bindings for
RollingVWAP, the WASM streaming-update parity, the pyo3/numpy CVE
fix, the SMA/Bollinger drift bound, the O(1) LinearRegression
refactor, the UlcerIndex deque and the PSAR is_ready/reset fixes
plus a refreshed example suite and wiki. The earlier 0.1.5 number
was never published; jumping straight to 0.2.0 is the cleaner signal
for the scope of the change.
Bumped:
- Cargo.toml workspace + wickra-core workspace-dep version
- bindings/python/pyproject.toml
- bindings/node/package.json + optionalDependencies (six platform pins)
- 6 x bindings/node/npm/<target>/package.json
- Cargo.lock regenerated
- CHANGELOG.md [0.2.0] header + compare-link
- docs/wiki/Home.md published-versions table
- docs/wiki/Quickstart-{Rust,Node,WASM}.md + Warmup-Periods.md
version-pinned narrative lines
Verified locally:
- cargo fmt/clippy/test (628 passed, 0 failed)
- cargo deny check (no suppression)
- bindings/node node --test (92/92)
- bindings/python pytest (118/118)
- import wickra reports 0.2.0 with 72 indicator classes
This commit is contained in:
+3
-3
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
## [0.1.5] - 2026-05-23
|
## [0.2.0] - 2026-05-23
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- `HistoricalVolatility::update` no longer substitutes a `0.0` log-return on
|
- `HistoricalVolatility::update` no longer substitutes a `0.0` log-return on
|
||||||
@@ -249,8 +249,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
optional Binance live feed.
|
optional Binance live feed.
|
||||||
- Bindings for Python, Node.js, and WebAssembly.
|
- Bindings for Python, Node.js, and WebAssembly.
|
||||||
|
|
||||||
[Unreleased]: https://github.com/kingchenc/wickra/compare/v0.1.5...HEAD
|
[Unreleased]: https://github.com/kingchenc/wickra/compare/v0.2.0...HEAD
|
||||||
[0.1.5]: https://github.com/kingchenc/wickra/compare/v0.1.4...v0.1.5
|
[0.2.0]: https://github.com/kingchenc/wickra/compare/v0.1.4...v0.2.0
|
||||||
[0.1.4]: https://github.com/kingchenc/wickra/compare/v0.1.3...v0.1.4
|
[0.1.4]: https://github.com/kingchenc/wickra/compare/v0.1.3...v0.1.4
|
||||||
[0.1.3]: https://github.com/kingchenc/wickra/compare/v0.1.2...v0.1.3
|
[0.1.3]: https://github.com/kingchenc/wickra/compare/v0.1.2...v0.1.3
|
||||||
[0.1.2]: https://github.com/kingchenc/wickra/compare/v0.1.1...v0.1.2
|
[0.1.2]: https://github.com/kingchenc/wickra/compare/v0.1.1...v0.1.2
|
||||||
|
|||||||
Generated
+6
-6
@@ -1941,7 +1941,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra"
|
name = "wickra"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx",
|
"approx",
|
||||||
"criterion",
|
"criterion",
|
||||||
@@ -1952,7 +1952,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-core"
|
name = "wickra-core"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx",
|
"approx",
|
||||||
"proptest",
|
"proptest",
|
||||||
@@ -1962,7 +1962,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-data"
|
name = "wickra-data"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx",
|
"approx",
|
||||||
"csv",
|
"csv",
|
||||||
@@ -1989,7 +1989,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-node"
|
name = "wickra-node"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"napi",
|
"napi",
|
||||||
"napi-build",
|
"napi-build",
|
||||||
@@ -1999,7 +1999,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-python"
|
name = "wickra-python"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"numpy",
|
"numpy",
|
||||||
"pyo3",
|
"pyo3",
|
||||||
@@ -2008,7 +2008,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-wasm"
|
name = "wickra-wasm"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"console_error_panic_hook",
|
"console_error_panic_hook",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ members = [
|
|||||||
exclude = ["fuzz"]
|
exclude = ["fuzz"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
authors = ["kingchenc <kingchencp@gmail.com>"]
|
authors = ["kingchenc <kingchencp@gmail.com>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.75"
|
rust-version = "1.75"
|
||||||
@@ -24,7 +24,7 @@ keywords = ["finance", "trading", "indicators", "technical-analysis", "ta"]
|
|||||||
categories = ["finance", "mathematics", "science"]
|
categories = ["finance", "mathematics", "science"]
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
wickra-core = { path = "crates/wickra-core", version = "0.1.5" }
|
wickra-core = { path = "crates/wickra-core", version = "0.2.0" }
|
||||||
|
|
||||||
thiserror = "2"
|
thiserror = "2"
|
||||||
rayon = "1.10"
|
rayon = "1.10"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-darwin-arm64",
|
"name": "wickra-darwin-arm64",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.darwin-arm64.node",
|
"main": "wickra.darwin-arm64.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-darwin-x64",
|
"name": "wickra-darwin-x64",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.darwin-x64.node",
|
"main": "wickra.darwin-x64.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-linux-arm64-gnu",
|
"name": "wickra-linux-arm64-gnu",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.linux-arm64-gnu.node",
|
"main": "wickra.linux-arm64-gnu.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-linux-x64-gnu",
|
"name": "wickra-linux-x64-gnu",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.linux-x64-gnu.node",
|
"main": "wickra.linux-x64-gnu.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-win32-arm64-msvc",
|
"name": "wickra-win32-arm64-msvc",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.win32-arm64-msvc.node",
|
"main": "wickra.win32-arm64-msvc.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-win32-x64-msvc",
|
"name": "wickra-win32-x64-msvc",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.win32-x64-msvc.node",
|
"main": "wickra.win32-x64-msvc.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra",
|
"name": "wickra",
|
||||||
"version": "0.1.5",
|
"version": "0.2.0",
|
||||||
"description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
|
"description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
|
||||||
"author": "kingchenc <kingchencp@gmail.com>",
|
"author": "kingchenc <kingchencp@gmail.com>",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
@@ -47,12 +47,12 @@
|
|||||||
"node": ">= 18"
|
"node": ">= 18"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"wickra-linux-x64-gnu": "0.1.5",
|
"wickra-linux-x64-gnu": "0.2.0",
|
||||||
"wickra-linux-arm64-gnu": "0.1.5",
|
"wickra-linux-arm64-gnu": "0.2.0",
|
||||||
"wickra-darwin-x64": "0.1.5",
|
"wickra-darwin-x64": "0.2.0",
|
||||||
"wickra-darwin-arm64": "0.1.5",
|
"wickra-darwin-arm64": "0.2.0",
|
||||||
"wickra-win32-x64-msvc": "0.1.5",
|
"wickra-win32-x64-msvc": "0.2.0",
|
||||||
"wickra-win32-arm64-msvc": "0.1.5"
|
"wickra-win32-arm64-msvc": "0.2.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "napi build --platform --release",
|
"build": "napi build --platform --release",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "wickra"
|
name = "wickra"
|
||||||
version = "0.1.5"
|
version = "0.2.0"
|
||||||
description = "Streaming-first technical indicators: incremental, fast, install-free."
|
description = "Streaming-first technical indicators: incremental, fast, install-free."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = { text = "PolyForm-Noncommercial-1.0.0" }
|
license = { text = "PolyForm-Noncommercial-1.0.0" }
|
||||||
|
|||||||
+7
-7
@@ -26,12 +26,12 @@ open an issue on GitHub to discuss a separate license.
|
|||||||
|
|
||||||
| Registry | Package | Version |
|
| Registry | Package | Version |
|
||||||
|-----------|----------------|---------|
|
|-----------|----------------|---------|
|
||||||
| crates.io | `wickra` | 0.1.5 |
|
| crates.io | `wickra` | 0.2.0 |
|
||||||
| crates.io | `wickra-core` | 0.1.5 |
|
| crates.io | `wickra-core` | 0.2.0 |
|
||||||
| crates.io | `wickra-data` | 0.1.5 |
|
| crates.io | `wickra-data` | 0.2.0 |
|
||||||
| PyPI | `wickra` | 0.1.5 |
|
| PyPI | `wickra` | 0.2.0 |
|
||||||
| npm | `wickra` | 0.1.5 |
|
| npm | `wickra` | 0.2.0 |
|
||||||
| npm | `wickra-wasm` | 0.1.5 |
|
| npm | `wickra-wasm` | 0.2.0 |
|
||||||
|
|
||||||
Release notes and tagged builds:
|
Release notes and tagged builds:
|
||||||
<https://github.com/kingchenc/wickra/releases>.
|
<https://github.com/kingchenc/wickra/releases>.
|
||||||
@@ -47,7 +47,7 @@ Release notes and tagged builds:
|
|||||||
- [Quickstart: Node](Quickstart-Node.md) — `npm install wickra`, basic
|
- [Quickstart: Node](Quickstart-Node.md) — `npm install wickra`, basic
|
||||||
`SMA` and `MACD` calls, and the install surface. Windows x64 was
|
`SMA` and `MACD` calls, and the install surface. Windows x64 was
|
||||||
previously blocked by an npm spam filter on `wickra-win32-x64-msvc`;
|
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
|
that was resolved with npm Support, and 0.2.0 is the first release in
|
||||||
which `npm install wickra` works end-to-end on Windows.
|
which `npm install wickra` works end-to-end on Windows.
|
||||||
- [Quickstart: WASM](Quickstart-WASM.md) — `npm install wickra-wasm`,
|
- [Quickstart: WASM](Quickstart-WASM.md) — `npm install wickra-wasm`,
|
||||||
building with `wasm-pack`, and running indicators client-side in a
|
building with `wasm-pack`, and running indicators client-side in a
|
||||||
|
|||||||
@@ -10,12 +10,12 @@ slow JS reimplementation.
|
|||||||
npm install wickra
|
npm install wickra
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Windows install (0.1.5+).** Earlier patch releases were blocked on
|
> **Windows install (0.2.0+).** Earlier patch releases were blocked on
|
||||||
> Windows x64 because the platform-specific sub-package
|
> Windows x64 because the platform-specific sub-package
|
||||||
> `wickra-win32-x64-msvc` was held back by npm's automated spam filter, so
|
> `wickra-win32-x64-msvc` was held back by npm's automated spam filter, so
|
||||||
> `require('wickra')` threw `Error: Cannot find module
|
> `require('wickra')` threw `Error: Cannot find module
|
||||||
> 'wickra-win32-x64-msvc'` after a successful `npm install`. npm Support
|
> '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
|
> released the name on 2026-05-22; 0.2.0 is the first version in which
|
||||||
> Windows x64 installs cleanly end-to-end (version numbers `0.1.1`–`0.1.4`
|
> 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
|
> of that sub-package remain burned and cannot be republished — see the
|
||||||
> npm registry page for `wickra-win32-x64-msvc`). Linux x64, Linux arm64
|
> 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>`. |
|
| `batch(...)` | Single-output: flat `Array<number>` with `NaN` warmup.<br>Multi-output: flat interleaved `Array<number>`. |
|
||||||
| `reset()` | Returns to a freshly-constructed state. |
|
| `reset()` | Returns to a freshly-constructed state. |
|
||||||
| `isReady()` | `true` once the first value has been emitted. |
|
| `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.1.5`. |
|
| `warmupPeriod()` | Present on every indicator class (single- and multi-output, scalar- and candle-input) since `0.2.0`. |
|
||||||
|
|
||||||
A complete reference run lives in `bindings/node/__tests__/smoke.test.js`:
|
A complete reference run lives in `bindings/node/__tests__/smoke.test.js`:
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
`wickra-core`; you can also depend on `wickra-core` directly if you want to
|
||||||
skip the façade.
|
skip the façade.
|
||||||
|
|
||||||
The published crate is at version `0.1.5` on
|
The published crate is at version `0.2.0` on
|
||||||
[crates.io](https://crates.io/crates/wickra).
|
[crates.io](https://crates.io/crates/wickra).
|
||||||
|
|
||||||
## The `Indicator` trait in 30 seconds
|
## The `Indicator` trait in 30 seconds
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ console.log(last);
|
|||||||
their fields per row (e.g. MACD: `[macd0, signal0, hist0, macd1, ...]`). The
|
their fields per row (e.g. MACD: `[macd0, signal0, hist0, macd1, ...]`). The
|
||||||
exact layout is documented in the generated `pkg/wickra_wasm.d.ts`.
|
exact layout is documented in the generated `pkg/wickra_wasm.d.ts`.
|
||||||
|
|
||||||
> Since `wickra-wasm@0.1.5`, every candle-input indicator (ATR, ADX,
|
> Since `wickra-wasm@0.2.0`, every candle-input indicator (ATR, ADX,
|
||||||
> WilliamsR, CCI, MFI, PSAR, Keltner, Donchian, VWAP, RollingVWAP,
|
> WilliamsR, CCI, MFI, PSAR, Keltner, Donchian, VWAP, RollingVWAP,
|
||||||
> AwesomeOscillator, Aroon, Stochastic, OBV, and the rest of the
|
> AwesomeOscillator, Aroon, Stochastic, OBV, and the rest of the
|
||||||
> volume / volatility / trailing-stop / price-statistics families) exposes
|
> volume / volatility / trailing-stop / price-statistics families) exposes
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ const sma = new wickra.SMA(20);
|
|||||||
console.log(sma.warmupPeriod()); // -> 20
|
console.log(sma.warmupPeriod()); // -> 20
|
||||||
```
|
```
|
||||||
|
|
||||||
(Since `wickra@0.1.5`, `warmupPeriod()` is exposed on every Node and
|
(Since `wickra@0.2.0`, `warmupPeriod()` is exposed on every Node and
|
||||||
WASM class — single- and multi-output — alongside `update()`, `reset()`
|
WASM class — single- and multi-output — alongside `update()`, `reset()`
|
||||||
and `isReady()`. Consult `bindings/node/index.d.ts` for the
|
and `isReady()`. Consult `bindings/node/index.d.ts` for the
|
||||||
authoritative TypeScript surface.)
|
authoritative TypeScript surface.)
|
||||||
|
|||||||
Reference in New Issue
Block a user