From 29c6f5cf8453b8d8f9cdf657b9dd89fbcc17fafb Mon Sep 17 00:00:00 2001 From: Pratik Bhadane Date: Tue, 24 Mar 2026 12:54:41 +0530 Subject: [PATCH] chore: release v1.0.4 --- CHANGELOG.md | 33 ++++++++++++++++++++++++++++++++- 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 | 15 ++++++++++++++- docs/support_matrix.rst | 2 +- pyproject.toml | 2 +- wasm/Cargo.toml | 2 +- wasm/package.json | 2 +- 11 files changed, 57 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c487791..295b9b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,36 @@ and the project uses [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.0.4] — 2026-03-24 + +### Added + +- The optional MCP server now exposes the broad public ferro-ta callable + surface, including exact top-level exports, non-top-level public analysis and + tooling functions, and generic stored-instance tools for stateful classes and + returned callables. +- Added a dedicated `TA_LIB_COMPATIBILITY.md` document so the full TA-Lib + coverage matrix remains available without bloating the project homepage. + +### Changed + +- Reworked the root README into a shorter product-first landing page with a + compatibility summary and docs map, and refreshed MCP documentation to match + the expanded server behavior. +- Updated the MCP implementation to use generated tool registration over the + public API while keeping the legacy lowercase aliases (`sma`, `ema`, `rsi`, + `macd`, `backtest`) available for existing clients. +- Refreshed locked Python dependency resolutions for the latest low-risk direct + updates in this release cycle. + +### Fixed + +- The repository no longer tracks the stray `.coverage` artifact, and coverage + outputs are now ignored consistently. +- MCP tests now cover generated tool discovery, stored-instance workflows, and + callable-reference execution paths so the broader server surface does not + regress silently. + ## [1.0.3] — 2026-03-24 ### Added @@ -325,7 +355,8 @@ and the project uses [Semantic Versioning](https://semver.org/). --- -[Unreleased]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.3...HEAD +[Unreleased]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.4...HEAD +[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 [1.0.1]: https://github.com/pratikbhadane24/ferro-ta/compare/v1.0.0...v1.0.1 diff --git a/Cargo.lock b/Cargo.lock index 9cc2fb2..aa15b03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -207,7 +207,7 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "ferro_ta" -version = "1.0.3" +version = "1.0.4" dependencies = [ "criterion", "ferro_ta_core", @@ -222,7 +222,7 @@ dependencies = [ [[package]] name = "ferro_ta_core" -version = "1.0.3" +version = "1.0.4" dependencies = [ "criterion", "wide", diff --git a/Cargo.toml b/Cargo.toml index fd71d08..a885042 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ resolver = "2" [package] name = "ferro_ta" -version = "1.0.3" +version = "1.0.4" 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.3" } +ferro_ta_core = { path = "crates/ferro_ta_core", version = "1.0.4" } [dev-dependencies] criterion = { version = "0.8", features = ["html_reports"] } diff --git a/conda/meta.yaml b/conda/meta.yaml index 5b29fc2..ab91902 100644 --- a/conda/meta.yaml +++ b/conda/meta.yaml @@ -1,5 +1,5 @@ {% set name = "ferro-ta" %} -{% set version = "1.0.3" %} +{% set version = "1.0.4" %} package: name: {{ name|lower }} diff --git a/crates/ferro_ta_core/Cargo.toml b/crates/ferro_ta_core/Cargo.toml index a7b6ef2..5a83cca 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.3" +version = "1.0.4" 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 e4421a5..4ba8b3a 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.3" +ferro_ta_core = "1.0.4" ``` ## Design diff --git a/docs/changelog.rst b/docs/changelog.rst index f1d9e02..577b013 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,7 +1,20 @@ Release Notes ============= -These docs track package version ``1.0.3``. +These docs track package version ``1.0.4``. + +1.0.4 (2026-03-24) +------------------ + +- Expanded the optional MCP server from a small hand-written subset to the + broader public ferro-ta callable surface, including stateful class support + through stored-instance management tools. +- Split the root documentation so the full TA-Lib compatibility matrix lives in + ``TA_LIB_COMPATIBILITY.md`` while the README stays product-first and shorter. +- Refreshed MCP docs/tests and updated locked low-risk Python dependencies as + part of the release cleanup pass. +- Stopped tracking the stray ``.coverage`` artifact and aligned ignore rules + for local coverage outputs. 1.0.3 (2026-03-24) ------------------ diff --git a/docs/support_matrix.rst b/docs/support_matrix.rst index 8842494..408ca95 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.3``. +These docs track package version ``1.0.4``. - Release notes by version: :doc:`changelog` - Canonical project changelog: `CHANGELOG.md `_ diff --git a/pyproject.toml b/pyproject.toml index 630c59e..3904bd9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "ferro-ta" -version = "1.0.3" +version = "1.0.4" description = "Rust-powered Python technical analysis library with a TA-Lib-compatible API" readme = "README.md" license = { text = "MIT" } diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index bfd7d24..cdfe7df 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ferro_ta_wasm" -version = "1.0.3" +version = "1.0.4" edition = "2021" description = "WebAssembly bindings for ferro-ta technical analysis indicators" license = "MIT" diff --git a/wasm/package.json b/wasm/package.json index ced935c..e2b29fa 100644 --- a/wasm/package.json +++ b/wasm/package.json @@ -1,6 +1,6 @@ { "name": "ferro-ta-wasm", - "version": "1.0.3", + "version": "1.0.4", "description": "WebAssembly bindings for ferro-ta technical analysis indicators", "main": "pkg/ferro_ta_wasm.js", "types": "pkg/ferro_ta_wasm.d.ts",