307beeca02
Prepare the first public 1.0.0 release and finish the remaining CI hardening work. Highlights: - align Python, Rust, WASM, Conda, API, MCP, and docs version metadata to 1.0.0 - promote package metadata to Production/Stable and update stability/versioning docs for the stable series - move the accumulated Unreleased notes into a dated 1.0.0 changelog section and keep a fresh top-level Unreleased block - strengthen the changelog checker so it validates a single top-level Unreleased section - fix the CI/package support mismatch by declaring Python >=3.10 consistently and gating pandas-ta extras to Python 3.12+ - restore Sphinx autodoc compatibility for documented ferro_ta.<module> imports by registering module aliases - make the TA-Lib benchmark guardrail less flaky by checking median and tail-percentile speedups instead of failing on a single mild outlier - switch PyPI publishing to OIDC-only trusted publishing and wire the changelog check into the required CI gate - apply the Ruff-driven cleanup across the Python and test tree and refresh uv/cargo lockfiles Validated locally: - python3 scripts/check_changelog.py - uv run --with ruff ruff check python tests - uv run --with ruff ruff format --check python tests - uv lock --check - sphinx-build -b html docs docs/_build -W --keep-going - build/install the ferro_ta 1.0.0 wheel successfully
56 lines
1.9 KiB
ReStructuredText
56 lines
1.9 KiB
ReStructuredText
Changelog
|
||
=========
|
||
|
||
1.0.0 (2026)
|
||
------------
|
||
|
||
**Candlestick Pattern Parity (61/61)**
|
||
|
||
- All 61 TA-Lib candlestick patterns implemented in Rust
|
||
- ``{-100, 0, 100}`` convention, consistent with TA-Lib
|
||
|
||
**Numerical Parity**
|
||
|
||
- RSI, ATR/NATR, CCI, BETA, STOCH, STOCHRSI, ADX/DX/DI/DM all rewritten to match TA-Lib seeding
|
||
- Removed dependency on ``ta`` crate for these indicators
|
||
|
||
**Streaming / Incremental API**
|
||
|
||
- New :mod:`ferro_ta.streaming` module with bar-by-bar stateful classes
|
||
- ``StreamingSMA``, ``StreamingEMA``, ``StreamingRSI``, ``StreamingATR``, ``StreamingBBands``, ``StreamingMACD``, ``StreamingStoch``, ``StreamingVWAP``, ``StreamingSupertrend``
|
||
|
||
**Pandas Integration**
|
||
|
||
- All indicators transparently accept ``pandas.Series`` and return ``Series`` with original index preserved
|
||
- Multi-output functions return tuples of ``Series``
|
||
|
||
**Math Operators / Transforms**
|
||
|
||
- 24 functions: arithmetic (ADD/SUB/MULT/DIV), rolling (SUM/MAX/MIN/MAXINDEX/MININDEX), element-wise math transforms
|
||
- SUM uses vectorized cumsum (220× faster than a naive loop)
|
||
|
||
**Documentation**
|
||
|
||
- Sphinx documentation setup with API reference, quickstart guide, and benchmarks page
|
||
|
||
**Benchmarking Suite**
|
||
|
||
- ``benchmarks/test_speed.py`` for authoritative ``pytest-benchmark`` speed runs
|
||
- ``benchmarks/bench_vs_talib.py`` for TA-Lib head-to-head comparisons
|
||
|
||
**Extended Indicators**
|
||
|
||
- ``VWAP`` — cumulative or rolling window
|
||
- ``SUPERTREND`` — ATR-based trend signal
|
||
|
||
**Additional Extended Indicators**
|
||
|
||
- ``ICHIMOKU`` — Ichimoku Cloud (Tenkan, Kijun, Senkou A/B, Chikou)
|
||
- ``DONCHIAN`` — Donchian Channels (upper, middle, lower)
|
||
- ``PIVOT_POINTS`` — Classic, Fibonacci, and Camarilla pivot points
|
||
|
||
**Type Stubs & Packaging**
|
||
|
||
- ``python/ferro_ta/__init__.pyi`` type stub for IDE auto-completion
|
||
- ``pyproject.toml``: added optional extras (benchmark, pandas, docs, all), project URLs, Python 3.10–3.13 classifiers
|