# wbt v0.2.1
> Release date: 2026-05-17
> Crate tag: `crate-v0.2.1` · Python tag: `v0.2.1`
## Summary
PATCH release fixing a pandas 3.0 compatibility regression in
`wbt.report.plot_cumulative_returns`. No public API changes.
## Fixes
- **pandas 3.0 compatibility**: `plot_cumulative_returns` previously asserted
`dret.index.dtype == "datetime64[ns]"`. pandas 3.0 changed the default
datetime precision from `ns` to `us`, so any caller passing a freshly
constructed `DatetimeIndex` on pandas 3.0 hit `AssertionError`. The check is
now `pd.api.types.is_datetime64_any_dtype(...)`, accepting any datetime64
precision (`ns` / `us` / `ms` / `s`) on both pandas 2.x and 3.x.
Regression covered by parametrized test
`test_plot_cumulative_returns_accepts_any_datetime_precision`.
## Dependency changes
- `pyproject.toml`: pandas dep raised from unconstrained to `>=2.2` (explicit
floor — pandas 3.x already resolves on Python ≥ 3.11).
- `pandas-stubs` (dev) split by Python marker: `>=3.0` for Python ≥ 3.11,
`>=2.3,<3` for Python 3.10. Mirrors pandas itself, which dropped Python 3.10
in the 3.x line.
## Compatibility
- `BREAKING CHANGE`: none.
- Python: requires ≥ 3.10 (unchanged).
- Rust: edition 2024, `pyo3 = 0.28` / `numpy = 0.28` (unchanged).
## Release checklist outcome
- **§1 SemVer**: bug-fix only, no API surface change → PATCH bump (`0.2.0 → 0.2.1`).
- **§2 Lint/typecheck**: `cargo fmt --check`, `cargo clippy -D warnings`,
`cargo test --lib` (142 passed), `ruff check`, `ruff format --check`,
`basedpyright` all clean.
- **§3 Tests**: `pytest` 235 passed / 1 skipped under pandas 3.0.2 with
`-W error` (no deprecation warnings).
- **§4 LLM review**: scoped to single-file change in
`python/wbt/report/_plot_backtest.py:188` + new parametrized test. No new
findings beyond v0.2.0 known issues (unchanged).
- **§5 doc-vs-code**: no doc updates required; the assertion message was
internal.
## Known issues (carried forward from v0.2.0)
Unchanged from v0.2.0; see `docs/release_notes/v0.2.0.md` for the list
(cal_trade_price defensive copy, log_strategy_info input guard,
cal_yearly_days timezone clarification).