Skip to content

Commit 28d14d2

Browse files
authored
release(0.16.2): bump + CHANGELOG for #387, #388 hot-fixes (#391)
- Bump crate version to `0.16.2`. - CHANGELOG.md entry for 0.16.2 covering #387 (Positive-boundary panic in butterfly/spread P&L math) and #388 (two `examples_chain` binaries: tempdir wiring for `async_chain_ops`; correct path for `creator`). Tag + GitHub release + `make publish` will follow immediately after merge.
1 parent f647e2b commit 28d14d2

2 files changed

Lines changed: 33 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.16.2] - 2026-04-19
11+
12+
Hot-fix for two panic / I/O bugs caught while running every example
13+
binary under `examples/`.
14+
15+
### Fixed
16+
17+
- Strategy P&L / break-even arithmetic crossed the `Positive`
18+
boundary without a guard and panicked mid-optimizer-scan
19+
(`Positive invariant broken in add_decimal / sub`) in:
20+
- `CallButterfly::update_break_even_points`,
21+
- `CallButterfly::get_profit_area`,
22+
- `LongButterflySpread::update_break_even_points`,
23+
- `BullPutSpread::get_max_loss`.
24+
All four sites now lower to `Decimal`, then rewrap via
25+
`Positive::new_decimal(..)` — invalid candidates are dropped
26+
cleanly or surfaced as typed `StrategyError` instead of
27+
panicking. Unblocks `strategy_call_butterfly_best_{area,ratio}`,
28+
`strategy_long_butterfly_spread_best_{area,ratio}`,
29+
`strategy_call_butterfly_delta`, and
30+
`strategy_bull_put_spread_extended_delta` examples. (#387)
31+
- `examples_chain::async_chain_ops` was passing a filename where a
32+
directory was expected and failing with `ENOENT`; it now writes
33+
under `std::env::temp_dir()/optionstratlib-async-chain-ops` and
34+
creates the directory up front. (#388)
35+
- `examples_chain::creator` pointed at a Germany-40 JSON file that
36+
was never committed; now reads the one that ships in
37+
`examples/Chains/`. (#388)
38+
39+
[Unreleased]: https://github.com/joaquinbejar/OptionStratLib/compare/v0.16.2...HEAD
40+
[0.16.2]: https://github.com/joaquinbejar/OptionStratLib/releases/tag/v0.16.2
41+
1042
## [0.16.1] - 2026-04-19
1143

1244
Hot-fix for CI flakiness introduced by sub-day `ExpirationDate`
@@ -27,7 +59,6 @@ arithmetic in test fixtures, plus a doc-link warning.
2759
`MAX_ITERATIONS_IV` — the doc just names the crate-private
2860
counterpart in prose, so `cargo doc` emits zero warnings again.
2961

30-
[Unreleased]: https://github.com/joaquinbejar/OptionStratLib/compare/v0.16.1...HEAD
3162
[0.16.1]: https://github.com/joaquinbejar/OptionStratLib/releases/tag/v0.16.1
3263

3364
## [0.16.0] - 2026-04-19

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "optionstratlib"
3-
version = "0.16.1"
3+
version = "0.16.2"
44
edition = "2024"
55
authors = ["Joaquin Bejar <jb@taunais.com>"]
66
description = "OptionStratLib is a comprehensive Rust library for options trading and strategy development across multiple asset classes."

0 commit comments

Comments
 (0)