70e9cbb397
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.
77 lines
1.7 KiB
TOML
77 lines
1.7 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/wickra-core",
|
|
"crates/wickra",
|
|
"crates/wickra-data",
|
|
"bindings/python",
|
|
"bindings/wasm",
|
|
"bindings/node",
|
|
"examples/rust",
|
|
]
|
|
exclude = ["fuzz"]
|
|
|
|
[workspace.package]
|
|
version = "0.3.0"
|
|
authors = ["kingchenc <wickra.lib@gmail.com>"]
|
|
edition = "2021"
|
|
rust-version = "1.86"
|
|
license = "PolyForm-Noncommercial-1.0.0"
|
|
repository = "https://github.com/wickra-lib/wickra"
|
|
homepage = "https://github.com/wickra-lib/wickra"
|
|
readme = "README.md"
|
|
keywords = ["finance", "trading", "indicators", "technical-analysis", "ta"]
|
|
categories = ["finance", "mathematics", "science"]
|
|
|
|
[workspace.dependencies]
|
|
wickra-core = { path = "crates/wickra-core", version = "0.3.0" }
|
|
|
|
thiserror = "2"
|
|
rayon = "1.10"
|
|
|
|
# Testing
|
|
proptest = "1.5"
|
|
approx = "0.5"
|
|
criterion = { version = "0.8", features = ["html_reports"] }
|
|
|
|
# Python binding
|
|
pyo3 = { version = "0.28", features = ["extension-module", "abi3-py39"] }
|
|
numpy = "0.28"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "forbid"
|
|
missing_debug_implementations = "warn"
|
|
unreachable_pub = "warn"
|
|
unused_must_use = "deny"
|
|
|
|
[workspace.lints.clippy]
|
|
all = { level = "warn", priority = -1 }
|
|
pedantic = { level = "warn", priority = -1 }
|
|
# Pedantic exceptions for an indicator library that uses floats and small functions everywhere.
|
|
module_name_repetitions = "allow"
|
|
must_use_candidate = "allow"
|
|
missing_errors_doc = "allow"
|
|
missing_panics_doc = "allow"
|
|
cast_precision_loss = "allow"
|
|
cast_possible_truncation = "allow"
|
|
cast_sign_loss = "allow"
|
|
similar_names = "allow"
|
|
float_cmp = "allow"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|
|
|
|
[profile.bench]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
debug = false
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = true
|