From 2d776b6f908fd1a4f30a696972b7df5e5fe2ca00 Mon Sep 17 00:00:00 2001 From: Pratik Bhadane Date: Tue, 24 Mar 2026 15:03:00 +0530 Subject: [PATCH] chore: prepare v1.0.6 release Align the Rust, Python, WASM, Conda, docs, and lockfile version markers to 1.0.6 so the published artifacts and release automation agree on a single release number. Add a proper 1.0.6 changelog entry in both CHANGELOG.md and the docs release notes, covering the pre-push gate, expanded Rust and WASM surface, benchmark refresh, and CI hardening work shipped since v1.0.4. Validate the release preparation with the repo-managed pre-push suite so version, changelog, Rust, Python, docs, WASM, and API-manifest checks all pass before tagging. --- CHANGELOG.md | 39 ++++++++++++++++++++++++++++++++- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- conda/meta.yaml | 2 +- crates/ferro_ta_core/Cargo.toml | 2 +- crates/ferro_ta_core/README.md | 2 +- docs/changelog.rst | 13 ++++++++++- docs/support_matrix.rst | 2 +- pyproject.toml | 2 +- uv.lock | 2 +- wasm/Cargo.lock | 4 ++-- wasm/Cargo.toml | 2 +- wasm/package.json | 2 +- 13 files changed, 64 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 295b9b5..0e24523 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,42 @@ and the project uses [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.0.6] — 2026-03-24 + +### Added + +- Added a repo-managed pre-push gate that mirrors the core local CI and + release checks, including version and changelog validation, Rust formatting + and clippy, Python linting and type checks, tests, docs, and the WASM smoke + suite. +- Added generated API manifest tooling and CI coverage so Python and WASM + export drift is detected before release candidates are pushed. +- Expanded the Rust-backed implementation surface for analysis and data-heavy + workflows, including backtest signal generation, portfolio loops, payoff and + Greeks aggregation, chunked indicator execution, and related helper paths. +- Expanded the WASM package surface with additional indicator exports such as + `WMA`, `ADX`, and `MFI`, along with refreshed Node examples and conformance + coverage against the Python package. + +### Changed + +- Refreshed benchmark wrappers, perf-contract artifacts, and benchmark + comparison helpers so the checked-in performance evidence stays aligned with + the current feature set. +- Hardened Python CI and local tooling so they run the same typecheck and test + entrypoints, including installing the optional MCP dependency needed by the + MCP server tests. +- Updated local pre-commit integration to match the current Ruff + configuration and refreshed locked dependencies to pick up the audited + PyJWT security fix. + +### Fixed + +- One-off benchmark output files produced in the repository root are now + ignored so local benchmarking no longer dirties the repo by default. +- Tightened API typing and MCP helper behavior so the stricter lint and + typecheck pipeline passes consistently before release. + ## [1.0.4] — 2026-03-24 ### Added @@ -355,7 +391,8 @@ and the project uses [Semantic Versioning](https://semver.org/). --- -[Unreleased]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.4...HEAD +[Unreleased]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.6...HEAD +[1.0.6]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.4...v1.0.6 [1.0.4]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.3...v1.0.4 [1.0.3]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.1...v1.0.2 diff --git a/Cargo.lock b/Cargo.lock index aa15b03..d10029c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -207,7 +207,7 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "ferro_ta" -version = "1.0.4" +version = "1.0.6" dependencies = [ "criterion", "ferro_ta_core", @@ -222,7 +222,7 @@ dependencies = [ [[package]] name = "ferro_ta_core" -version = "1.0.4" +version = "1.0.6" dependencies = [ "criterion", "wide", diff --git a/Cargo.toml b/Cargo.toml index a885042..d6a2ba7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ resolver = "2" [package] name = "ferro_ta" -version = "1.0.4" +version = "1.0.6" edition = "2021" description = "Rust-powered Python technical analysis library with a TA-Lib-compatible API" license = "MIT" @@ -30,7 +30,7 @@ ndarray = "0.16" rayon = "1.10" log = "0.4" pyo3-log = "0.12" -ferro_ta_core = { path = "crates/ferro_ta_core", version = "1.0.4" } +ferro_ta_core = { path = "crates/ferro_ta_core", version = "1.0.6" } [dev-dependencies] criterion = { version = "0.8", features = ["html_reports"] } diff --git a/conda/meta.yaml b/conda/meta.yaml index ab91902..b7492f5 100644 --- a/conda/meta.yaml +++ b/conda/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ferro-ta" %} -{% set version = "1.0.4" %} +{% set version = "1.0.6" %} package: name: {{ name|lower }} diff --git a/crates/ferro_ta_core/Cargo.toml b/crates/ferro_ta_core/Cargo.toml index 5a83cca..eee0fd0 100644 --- a/crates/ferro_ta_core/Cargo.toml +++ b/crates/ferro_ta_core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ferro_ta_core" -version = "1.0.4" +version = "1.0.6" edition = "2021" description = "Pure Rust core indicator library — no PyO3, no numpy dependency" license = "MIT" diff --git a/crates/ferro_ta_core/README.md b/crates/ferro_ta_core/README.md index 4ba8b3a..bcba615 100644 --- a/crates/ferro_ta_core/README.md +++ b/crates/ferro_ta_core/README.md @@ -13,7 +13,7 @@ PyO3, NumPy, or Python runtime dependency, which makes it a good fit for: ```toml [dependencies] -ferro_ta_core = "1.0.4" +ferro_ta_core = "1.0.6" ``` ## Design diff --git a/docs/changelog.rst b/docs/changelog.rst index 577b013..038578b 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,7 +1,18 @@ Release Notes ============= -These docs track package version ``1.0.4``. +These docs track package version ``1.0.6``. + +1.0.6 (2026-03-24) +------------------ + +- Added a repo-managed pre-push gate so the core Rust, Python, docs, and WASM + checks can be run locally before release. +- Expanded Rust-backed analysis/data helpers, broadened the WASM exports, and + added cross-surface API manifest verification plus Node conformance checks. +- Refreshed benchmark coverage and perf artifacts, aligned Python CI with the + local tooling flow, and updated the locked security fixes needed for a clean + release pass. 1.0.4 (2026-03-24) ------------------ diff --git a/docs/support_matrix.rst b/docs/support_matrix.rst index 408ca95..cb40972 100644 --- a/docs/support_matrix.rst +++ b/docs/support_matrix.rst @@ -107,7 +107,7 @@ For source builds, packaging details, and platform notes, see Release status -------------- -These docs track package version ``1.0.4``. +These docs track package version ``1.0.6``. - Release notes by version: :doc:`changelog` - Canonical project changelog: `CHANGELOG.md `_ diff --git a/pyproject.toml b/pyproject.toml index 0f7abe3..832de16 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "ferro-ta" -version = "1.0.4" +version = "1.0.6" description = "Rust-powered Python technical analysis library with a TA-Lib-compatible API" readme = "README.md" license = { text = "MIT" } diff --git a/uv.lock b/uv.lock index f5bde28..a4af643 100644 --- a/uv.lock +++ b/uv.lock @@ -675,7 +675,7 @@ wheels = [ [[package]] name = "ferro-ta" -version = "1.0.4" +version = "1.0.6" source = { editable = "." } dependencies = [ { name = "numpy" }, diff --git a/wasm/Cargo.lock b/wasm/Cargo.lock index dd58d06..a430c15 100644 --- a/wasm/Cargo.lock +++ b/wasm/Cargo.lock @@ -49,11 +49,11 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "ferro_ta_core" -version = "1.0.4" +version = "1.0.6" [[package]] name = "ferro_ta_wasm" -version = "1.0.4" +version = "1.0.6" dependencies = [ "ferro_ta_core", "js-sys", diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index e3c9f76..5cafb38 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ferro_ta_wasm" -version = "1.0.4" +version = "1.0.6" edition = "2021" description = "WebAssembly bindings for ferro-ta technical analysis indicators" license = "MIT" diff --git a/wasm/package.json b/wasm/package.json index e2b29fa..5f20a6f 100644 --- a/wasm/package.json +++ b/wasm/package.json @@ -1,6 +1,6 @@ { "name": "ferro-ta-wasm", - "version": "1.0.4", + "version": "1.0.6", "description": "WebAssembly bindings for ferro-ta technical analysis indicators", "main": "pkg/ferro_ta_wasm.js", "types": "pkg/ferro_ta_wasm.d.ts",