From 70e9cbb397497320990ae63a356949eb0a94b84f Mon Sep 17 00:00:00 2001 From: kingchenc Date: Sat, 30 May 2026 19:06:48 +0200 Subject: [PATCH] release: bump 0.2.7 -> 0.3.0 (supersedes PR #61) (#69) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Minor bump (not patch) because the [Unreleased] section since 0.2.7 has accumulated a sweep of additive changes that justify a new minor: - Family 9-16 indicator catalogue expansion (Bands & Channels, Trailing Stops, Volume, Statistics, Ehlers/Cycle DSP, Pivots, DeMark, Ichimoku, Candlestick Patterns, Market Profile, Risk/Performance) — roughly 100+ new indicators since 0.2.7 across all four bindings. - New `wickra_core::FAMILIES` const + family-taxonomy guard tests. - GitHub org migration (kingchenc -> wickra-lib) and new maintainer email (wickra.lib@gmail.com). - New `repo-metadata.toml` + `sync-metadata.yml` audit workflow. - WASM CI tests now run on every PR (existing tests had been manually-only). - CycloneDX SBOMs + npm provenance attestations attached to releases. - Three end-to-end strategy examples. - Governance polish: ARCHITECTURE / ROADMAP / CITATION / FUNDING / .editorconfig. - Curated benchmark suite (~33 representative indicators). - Three cold-path coverage fixes (mama, rsi, sine_wave). - bindings/node/package-lock.json now committed. Workspace + bindings (Rust crate, Python wheel, Node main + 6 platform sub-packages, WASM) all step to 0.3.0. CHANGELOG opens the [0.3.0] section dated 2026-05-28 with the full Changed / Added inventory. Compare-URL block adds the v0.2.7...v0.3.0 line under [Unreleased] and points [Unreleased] at v0.3.0...HEAD using the new wickra-lib org. **Supersedes PR #61** (0.2.7 -> 0.2.8 patch bump). Close #61 when this one merges. Merge ordering remains: #59 (org migration) + #60 (family-api) + the polish PRs first, rebase this PR on top of the new main, then merge. Tag-push `v0.3.0` is a SEPARATE, manual step after merge — it triggers release.yml's irreversible publish to crates.io / PyPI / npm. --- Cargo.lock | 12 +++--- Cargo.toml | 4 +- bindings/node/npm/darwin-arm64/package.json | 2 +- bindings/node/npm/darwin-x64/package.json | 2 +- .../node/npm/linux-arm64-gnu/package.json | 2 +- bindings/node/npm/linux-x64-gnu/package.json | 2 +- .../node/npm/win32-arm64-msvc/package.json | 2 +- bindings/node/npm/win32-x64-msvc/package.json | 2 +- bindings/node/package-lock.json | 40 +++++++++---------- bindings/node/package.json | 14 +++---- bindings/python/pyproject.toml | 2 +- 11 files changed, 42 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45104a91..61623fdc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1867,7 +1867,7 @@ dependencies = [ [[package]] name = "wickra" -version = "0.2.7" +version = "0.3.0" dependencies = [ "approx", "criterion", @@ -1878,7 +1878,7 @@ dependencies = [ [[package]] name = "wickra-core" -version = "0.2.7" +version = "0.3.0" dependencies = [ "approx", "proptest", @@ -1888,7 +1888,7 @@ dependencies = [ [[package]] name = "wickra-data" -version = "0.2.7" +version = "0.3.0" dependencies = [ "approx", "csv", @@ -1915,7 +1915,7 @@ dependencies = [ [[package]] name = "wickra-node" -version = "0.2.7" +version = "0.3.0" dependencies = [ "napi", "napi-build", @@ -1925,7 +1925,7 @@ dependencies = [ [[package]] name = "wickra-python" -version = "0.2.7" +version = "0.3.0" dependencies = [ "numpy", "pyo3", @@ -1934,7 +1934,7 @@ dependencies = [ [[package]] name = "wickra-wasm" -version = "0.2.7" +version = "0.3.0" dependencies = [ "console_error_panic_hook", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index cdd03c62..b39879e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ members = [ exclude = ["fuzz"] [workspace.package] -version = "0.2.7" +version = "0.3.0" authors = ["kingchenc "] edition = "2021" rust-version = "1.86" @@ -24,7 +24,7 @@ keywords = ["finance", "trading", "indicators", "technical-analysis", "ta"] categories = ["finance", "mathematics", "science"] [workspace.dependencies] -wickra-core = { path = "crates/wickra-core", version = "0.2.7" } +wickra-core = { path = "crates/wickra-core", version = "0.3.0" } thiserror = "2" rayon = "1.10" diff --git a/bindings/node/npm/darwin-arm64/package.json b/bindings/node/npm/darwin-arm64/package.json index a4b4dbaf..342381ce 100644 --- a/bindings/node/npm/darwin-arm64/package.json +++ b/bindings/node/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "wickra-darwin-arm64", - "version": "0.2.7", + "version": "0.3.0", "description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.", "main": "wickra.darwin-arm64.node", "files": [ diff --git a/bindings/node/npm/darwin-x64/package.json b/bindings/node/npm/darwin-x64/package.json index bdd376aa..866a44bc 100644 --- a/bindings/node/npm/darwin-x64/package.json +++ b/bindings/node/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "wickra-darwin-x64", - "version": "0.2.7", + "version": "0.3.0", "description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.", "main": "wickra.darwin-x64.node", "files": [ diff --git a/bindings/node/npm/linux-arm64-gnu/package.json b/bindings/node/npm/linux-arm64-gnu/package.json index 5488fa78..939fa0f4 100644 --- a/bindings/node/npm/linux-arm64-gnu/package.json +++ b/bindings/node/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "wickra-linux-arm64-gnu", - "version": "0.2.7", + "version": "0.3.0", "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", "files": [ diff --git a/bindings/node/npm/linux-x64-gnu/package.json b/bindings/node/npm/linux-x64-gnu/package.json index 839e1f90..5ef9ea4c 100644 --- a/bindings/node/npm/linux-x64-gnu/package.json +++ b/bindings/node/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "wickra-linux-x64-gnu", - "version": "0.2.7", + "version": "0.3.0", "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", "files": [ diff --git a/bindings/node/npm/win32-arm64-msvc/package.json b/bindings/node/npm/win32-arm64-msvc/package.json index 56c3050b..3470a0d8 100644 --- a/bindings/node/npm/win32-arm64-msvc/package.json +++ b/bindings/node/npm/win32-arm64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "wickra-win32-arm64-msvc", - "version": "0.2.7", + "version": "0.3.0", "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", "files": [ diff --git a/bindings/node/npm/win32-x64-msvc/package.json b/bindings/node/npm/win32-x64-msvc/package.json index 1834fba7..d56ca4c2 100644 --- a/bindings/node/npm/win32-x64-msvc/package.json +++ b/bindings/node/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "wickra-win32-x64-msvc", - "version": "0.2.7", + "version": "0.3.0", "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", "files": [ diff --git a/bindings/node/package-lock.json b/bindings/node/package-lock.json index d0cfc37c..fc511d95 100644 --- a/bindings/node/package-lock.json +++ b/bindings/node/package-lock.json @@ -1,12 +1,12 @@ { "name": "wickra", - "version": "0.2.7", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "wickra", - "version": "0.2.7", + "version": "0.3.0", "license": "PolyForm-Noncommercial-1.0.0", "devDependencies": { "@napi-rs/cli": "^2.18.0" @@ -15,12 +15,12 @@ "node": ">= 18" }, "optionalDependencies": { - "wickra-darwin-arm64": "0.2.7", - "wickra-darwin-x64": "0.2.7", - "wickra-linux-arm64-gnu": "0.2.7", - "wickra-linux-x64-gnu": "0.2.7", - "wickra-win32-arm64-msvc": "0.2.7", - "wickra-win32-x64-msvc": "0.2.7" + "wickra-darwin-arm64": "0.3.0", + "wickra-darwin-x64": "0.3.0", + "wickra-linux-arm64-gnu": "0.3.0", + "wickra-linux-x64-gnu": "0.3.0", + "wickra-win32-arm64-msvc": "0.3.0", + "wickra-win32-x64-msvc": "0.3.0" } }, "node_modules/@napi-rs/cli": { @@ -41,8 +41,8 @@ } }, "node_modules/wickra-darwin-arm64": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/wickra-darwin-arm64/-/wickra-darwin-arm64-0.2.7.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/wickra-darwin-arm64/-/wickra-darwin-arm64-0.3.0.tgz", "integrity": "sha512-4eZiBR/yGUdr4nzhEUFy2i69XgNx64iI2ax/LPamsThgylC0KpHOZKK19QzJ2d9KbK4C8nMjME5FLuR+4GNEwQ==", "cpu": [ "arm64" @@ -57,8 +57,8 @@ } }, "node_modules/wickra-darwin-x64": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/wickra-darwin-x64/-/wickra-darwin-x64-0.2.7.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/wickra-darwin-x64/-/wickra-darwin-x64-0.3.0.tgz", "integrity": "sha512-6hf8zI3QPjTFp4zCpmgUwDvNtu6jHqNUHKD5e55POo0CgA52HkpyxSPtVm8TGTIZDI7kPjlbOdBM8CJ76mmXwA==", "cpu": [ "x64" @@ -73,8 +73,8 @@ } }, "node_modules/wickra-linux-arm64-gnu": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/wickra-linux-arm64-gnu/-/wickra-linux-arm64-gnu-0.2.7.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/wickra-linux-arm64-gnu/-/wickra-linux-arm64-gnu-0.3.0.tgz", "integrity": "sha512-kSe6y0xBMSiqdPLXNjwop5WZdHtvdBNKSEBCwZ4hFq33p4apW25/wrlzv9/oDuyD4kuPabJEhCCnFOplh58CUg==", "cpu": [ "arm64" @@ -89,8 +89,8 @@ } }, "node_modules/wickra-linux-x64-gnu": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/wickra-linux-x64-gnu/-/wickra-linux-x64-gnu-0.2.7.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/wickra-linux-x64-gnu/-/wickra-linux-x64-gnu-0.3.0.tgz", "integrity": "sha512-tWBWS4qz7hxM4xnpFb59bhf6TaLwXq0Z3jEa/2l7r8PiHA94g8r8S53NRMiT+4yiL5hSWe/nUiC/YXdRrhEZ4g==", "cpu": [ "x64" @@ -105,8 +105,8 @@ } }, "node_modules/wickra-win32-arm64-msvc": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/wickra-win32-arm64-msvc/-/wickra-win32-arm64-msvc-0.2.7.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/wickra-win32-arm64-msvc/-/wickra-win32-arm64-msvc-0.3.0.tgz", "integrity": "sha512-EXIckHxAtF75PUGDKRzXyqMe9ldP0JjSdu68WFN6iJfp+McYrGu6h40TEJlQ/oUEIoPqiZB/xhVyo/el5Lg7zw==", "cpu": [ "arm64" @@ -121,8 +121,8 @@ } }, "node_modules/wickra-win32-x64-msvc": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/wickra-win32-x64-msvc/-/wickra-win32-x64-msvc-0.2.7.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/wickra-win32-x64-msvc/-/wickra-win32-x64-msvc-0.3.0.tgz", "integrity": "sha512-Yfsqq1Xwp6hdxMyLze411vNdo7BDwI6+lPSe7A9XdqyPecNDbtKwYLpsal2r8EHbNzqM+R8XnuRtUaEQS5VlUQ==", "cpu": [ "x64" diff --git a/bindings/node/package.json b/bindings/node/package.json index b2ea66a0..53639585 100644 --- a/bindings/node/package.json +++ b/bindings/node/package.json @@ -1,6 +1,6 @@ { "name": "wickra", - "version": "0.2.7", + "version": "0.3.0", "description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.", "author": "kingchenc ", "main": "index.js", @@ -47,12 +47,12 @@ "node": ">= 18" }, "optionalDependencies": { - "wickra-linux-x64-gnu": "0.2.7", - "wickra-linux-arm64-gnu": "0.2.7", - "wickra-darwin-x64": "0.2.7", - "wickra-darwin-arm64": "0.2.7", - "wickra-win32-x64-msvc": "0.2.7", - "wickra-win32-arm64-msvc": "0.2.7" + "wickra-linux-x64-gnu": "0.3.0", + "wickra-linux-arm64-gnu": "0.3.0", + "wickra-darwin-x64": "0.3.0", + "wickra-darwin-arm64": "0.3.0", + "wickra-win32-x64-msvc": "0.3.0", + "wickra-win32-arm64-msvc": "0.3.0" }, "scripts": { "build": "napi build --platform --release", diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index 23b361c2..424d4641 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "wickra" -version = "0.2.7" +version = "0.3.0" description = "Streaming-first technical indicators: incremental, fast, install-free." readme = "README.md" license = { text = "PolyForm-Noncommercial-1.0.0" }