Repository navigation
v0.17.2
0.17.1 reached PyPI and the GitHub release but never reached crates.io: the
publish gate ran the workspace test suite and one test failed on the runner.
This release carries the same contents as 0.17.1 plus the fix, and is the
version to use. Crate versions: nanobook 0.17.2, nanobook-broker 0.8.1,
nanobook-risk 0.6.4, nanobook-rebalancer 0.8.4.
Changed
- MSRV raised from 1.86 to 1.88 across all four crates. The 1.86 claim was
already false fornanobook-broker,nanobook-riskand
nanobook-rebalancer: the 0.17.1 dependency sweep pulledtimeto 0.3.54
(viaibapiandtracing-appender), which requires 1.88. Declaring 1.88
everywhere keeps one number across the workspace. Cargo's resolver is
MSRV-aware, so a consumer on an older toolchain resolves to an earlier
version rather than failing to build. - Nested
if letblocks inlevel,price_levels,stop,exchange,
backtest_bridgeand two examples are now let-chains, which 1.88 permits.
Machine-applied and semantically identical; the suite is unchanged at 1134
passing.
Fixed
nanobook-rebalancerdid not compile on Windows. The#[cfg(windows)]
arm of the kill switch opened withuse windows::Win32::System::Console::…
for symbols it never referenced, and thewindowscrate was never declared
as a dependency. The import is removed; the arm already returned "Kill
switch not fully supported on Windows yet" unconditionally, so behaviour is
unchanged. Every published version of this crate has been broken on Windows.test_reconciliation_blocks_submissionno longer calls the live Binance
API. It opened a real connection as setup, so it failed with
451 Unavailable For Legal Reasonson runners in regions Binance
restricts.submit_orderchecks the reconciliation flag before it requires
a client, so the connection was never needed for the assertion; the test
still fails if that check order is ever reversed.- CI ran
cargo test --all-featureswithout--workspace, so it only
ever tested the root crate — the broker, risk and rebalancer suites were
invisible to it apart from three explicitly-named failure-injection drills.
That is why a test making live network calls survived unnoticed. The test
job now runs the whole workspace.