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.
This commit is contained in:
Pratik Bhadane
2026-03-24 15:03:00 +05:30
parent 71b6343e92
commit 2d776b6f90
13 changed files with 64 additions and 16 deletions
+38 -1
View File
@@ -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
Generated
+2 -2
View File
@@ -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",
+2 -2
View File
@@ -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"] }
+1 -1
View File
@@ -1,5 +1,5 @@
{% set name = "ferro-ta" %}
{% set version = "1.0.4" %}
{% set version = "1.0.6" %}
package:
name: {{ name|lower }}
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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
+12 -1
View File
@@ -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)
------------------
+1 -1
View File
@@ -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 <https://github.com/pratikbhadane24/ferro-ta/blob/main/CHANGELOG.md>`_
+1 -1
View File
@@ -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" }
Generated
+1 -1
View File
@@ -675,7 +675,7 @@ wheels = [
[[package]]
name = "ferro-ta"
version = "1.0.4"
version = "1.0.6"
source = { editable = "." }
dependencies = [
{ name = "numpy" },
+2 -2
View File
@@ -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",
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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",