Releases: tschm/pyhrp
Releases · tschm/pyhrp
v2.2.5
v2.2.0
[2.2.0] - 2026-05-22
🚀 Features
- Implement Schur Complementary Allocation (Peter Cotton, arXiv:2411.05807)
💼 Other
- Bump version 2.1.0 → 2.2.0
🚜 Refactor
- Promote _compute_cov and _compute_corr to public API
📚 Documentation
- Update README example to use public compute_cov / compute_corr
- List public helper APIs in hrp module docstring
⚙️ Miscellaneous Tasks
- Update CHANGELOG.md for v2.1.0
- Update marimo notebooks to v0.23.6
PyPI Package
v2.1.0
[2.1.0] - 2026-05-21
💼 Other
- Add kaleido as dev dependency
- Bump version 2.0.0 → 2.1.0
🚜 Refactor
- Avoid private API imports in demo script
📚 Documentation
- Align README badges with jquantstats and rewrite SECURITY.md for pyhrp
- Add root contribution docs and changelog
- Expand README and add demo image generation script
- Use portable command path for demo generation
- Address review feedback in README and demo script
- Keep robust README image URL
- Add missing docstrings to public functions in demo.py
- Add inline script metadata header to demo.py
- Add Examples sections to hrp, build_tree, risk_parity, one_over_n
🧪 Testing
- Add stress benchmarks and weekly regression workflow
- Add property-based and numerical edge-case HRP tests
- Tighten zip strictness in property test generators
- Add direct helper tests and notebook output assertions
- Benchmark assertions, 500/1000-asset stress tests, notebook weight assertions
- Add TypeError coverage for Cluster.leaves non-Cluster children
⚙️ Miscellaneous Tasks
- Update uv.lock with pytest-benchmark dependencies
- Add fail_under = 90 to [tool.coverage.report] in pyproject.toml
- Add docstrings to benchmark tests and remove redundant mypy config
- Remove redundant mypy config from pyproject.toml
- Fix ruff target-version to py312, apply UP fixes, remove mypy config
- Tighten dependency version constraints
- Update uv.lock to reflect tightened dependency constraints
- Update uv.lock with latest dependency versions
- Numpy upper bound, doc line length, remove **kwargs, raise max_examples
- Auto-update CHANGELOG.md after each release via git-cliff
- Regenerate demo.png via book/marimo/demo.py
PyPI Package
v2.0.0
[2.0.0] - 2026-05-20
🐛 Bug Fixes
- Import private compute* inside cell in hrp notebook
- Handle NaN in returns and assert weights by key in tests
- Restore Series-based Portfolio.weights API with dict accessor
- Revert Portfolio.weights to dict[str, float]
- Set requires-python to >=3.11 in hrp marimo script
💼 Other
- Bump version 1.6.4 → 2.0.0
🚜 Refactor
- Migrate from pandas/matplotlib to polars/plotly
📚 Documentation
- Update README example from pandas to polars
🎨 Styling
- Apply ruff format to hrp.py
🧪 Testing
- Assert portfolio weights by key instead of iteration order
⚙️ Miscellaneous Tasks
- Add requires-python constraint to marimo script
PyPI Package
v1.6.4
[1.6.4] - 2026-05-20
🚀 Features
- Use cvx-linalg for portfolio variance computation
💼 Other
- Bump version 1.6.3 → 1.6.4
⚙️ Miscellaneous Tasks
- Update Rhiza template to v0.10.3
- Sync with Rhiza template v0.10.3
- Update via rhiza
- Update Rhiza template to v0.10.7
- Sync with Rhiza template v0.10.7
- Add github-book and github-marimo template bundles
- Sync github-book and github-marimo template bundles
PyPI Package
v1.6.3
[1.6.3] - 2026-04-23
🚀 Features
- Add mkdocs.yml with nav for docs, notebooks, and reports
🐛 Bug Fixes
- Suppress bandit B404 on intentional subprocess import
- Set MARIMO_FOLDER to book/marimo so notebooks are exported to HTML
- Correct coverage badge URL to GitHub Pages endpoint
💼 Other
- Bump version 1.6.2 → 1.6.3
📚 Documentation
- Add coverage badge to README
- Add API reference page with mkdocstrings for all modules
🧪 Testing
- Bring test coverage to 100%
⚙️ Miscellaneous Tasks
- Update rhiza template version to v0.9.5
- Sync with rhiza template v0.9.5
- Update rhiza template version to v0.10.2
- Sync rhiza template to v0.10.2
PyPI Package
v1.6.2
v1.6.1
What's Changed
- Update template branch to v0.8.5 by @tschm in #598
- chore(deps-dev)(deps-dev): bump pyportfolioopt from 1.5.6 to 1.6.0 in the python-dependencies group by @dependabot[bot] in #600
- chore(deps)(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #599
- chore(deps)(deps): bump the python-dependencies group with 2 updates by @dependabot[bot] in #602
- chore: Sync with rhiza by @tschm in #603
- chore(deps-dev)(deps-dev): bump the python-dependencies group with 2 updates by @dependabot[bot] in #606
- Sync rhiza by @tschm in #604
- Update template branch version to v0.8.13 by @tschm in #607
- chore(deps)(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in #608
Full Changelog: v1.6.0...v1.6.1
PyPI Package
v1.6.0
What's Changed
- CodeRabbit Generated Unit Tests: Expand test_dendrogram_extras with 27 new unit tests by @coderabbitai[bot] in #469
- Deptry by @tschm in #470
- chore(deps): lock file maintenance by @renovate[bot] in #471
- chore: sync template from tschm/.config-templates@main by @tschm in #472
- chore(deps): update dependency python to 3.14 by @renovate[bot] in #473
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.2 by @renovate[bot] in #475
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.5 by @renovate[bot] in #474
- chore(deps): lock file maintenance by @renovate[bot] in #476
- chore(deps): lock file maintenance by @renovate[bot] in #479
- chore(deps): update github artifact actions (major) by @renovate[bot] in #478
- chore: sync template from tschm/.config-templates@main by @tschm in #477
- chore(deps): lock file maintenance by @renovate[bot] in #480
- chore: sync template from tschm/.config-templates@main by @tschm in #481
- chore: sync template from tschm/.config-templates@main by @tschm in #482
- fix(deps): update dependency polars to v1.35.1 by @renovate[bot] in #483
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 by @renovate[bot] in #484
- chore(deps): lock file maintenance by @renovate[bot] in #485
- chore: sync template from tschm/.config-templates@main by @tschm in #487
- chore(deps): lock file maintenance by @renovate[bot] in #486
- fix(deps): update dependency polars to v1.35.2 by @renovate[bot] in #488
- chore(deps): update pre-commit hook python-jsonschema/check-jsonschema to v0.35.0 by @renovate[bot] in #489
- chore(deps): lock file maintenance by @renovate[bot] in #490
- chore: sync template from tschm/.config-templates@main by @tschm in #491
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.11 by @renovate[bot] in #492
- chore(deps): update pre-commit hook rhysd/actionlint to v1.7.9 by @renovate[bot] in #494
- chore(deps): update pre-commit hook igorshubovych/markdownlint-cli to v0.46.0 by @renovate[bot] in #495
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.6 by @renovate[bot] in #493
- chore: sync template from tschm/.config-templates@main by @tschm in #498
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #496
- chore(deps): lock file maintenance by @renovate[bot] in #499
- chore: sync template from tschm/.config-templates@main by @tschm in #504
- Remove tests/test_taskfile.py Taskfile.yml taskfiles by @tschm in #503
- chore(deps): lock file maintenance by @renovate[bot] in #505
- Add exclusions for specific workflow files by @tschm in #507
- chore: sync template from tschm/.config-templates@main by @tschm in #506
- chore(deps): update softprops/action-gh-release action to v2.5.0 by @renovate[bot] in #508
- chore(deps): lock file maintenance by @renovate[bot] in #509
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.14 by @renovate[bot] in #510
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.15 by @renovate[bot] in #511
- chore(deps): lock file maintenance by @renovate[bot] in #512
- chore(deps): lock file maintenance by @renovate[bot] in #513
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.16 by @renovate[bot] in #515
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.8 by @renovate[bot] in #516
- fix(deps): update dependency polars to v1.36.0 by @renovate[bot] in #517
- chore(deps): update pre-commit hook igorshubovych/markdownlint-cli to v0.47.0 by @renovate[bot] in #520
- fix(deps): update dependency polars to v1.36.1 by @renovate[bot] in #519
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.17 by @renovate[bot] in #518
- chore: sync template from jebel-quant/rhiza@main by @tschm in #521
- chore: sync template from jebel-quant/rhiza@main by @tschm in #522
- chore(deps): lock file maintenance by @renovate[bot] in #523
- chore(deps): update pre-commit hook python-jsonschema/check-jsonschema to v0.36.0 by @renovate[bot] in #525
- Remove deprecated files by @tschm in #526
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.10 by @renovate[bot] in #527
- chore(deps): lock file maintenance by @renovate[bot] in #528
- chore(deps): lock file maintenance by @renovate[bot] in #529
- chore(deps): lock file maintenance by @renovate[bot] in #530
- chore: Sync with rhiza by @tschm in #531
- chore(deps): update dependency astral-sh/uv to v0.9.20 by @renovate[bot] in #532
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.20 by @renovate[bot] in #533
- chore(deps)(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #535
- chore(deps): lock file maintenance by @renovate[bot] in #536
- chore: Sync with rhiza by @tschm in #537
- chore(deps): update dependency plotly to v6 by @renovate[bot] in #538
- chore(deps): update dependency astral-sh/uv to v0.9.22 by @renovate[bot] in #539
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.22 by @renovate[bot] in #540
- chore(deps): lock file maintenance by @renovate[bot] in #541
- chore: Sync with rhiza by @tschm in #542
- chore(deps): update dependency polars to v1.37.1 by @renovate[bot] in #543
- Delete .rhiza.env by @tschm in #544
- chore(deps): lock file maintenance by @renovate[bot] in #545
- chore(deps): update dependency astral-sh/uv to v0.9.26 by @renovate[bot] in #547
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.13 by @renovate[bot] in #549
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.26 by @renovate[bot] in #548
- chore(deps): lock file maintenance by @renovate[bot] in #550
- chore: Sync with rhiza by @tschm in #551
- chore(deps): update pre-commit hook python-jsonschema/check-jsonschema to v0.36.1 by @renovate[bot] in #552
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.27 by @renovate[bot] in #554
- chore(deps): update dependency astral-sh/uv to v0.9.27 by @renovate[bot] in #553
- chore(deps): lock file maintenance by @renovate[bot] in #555
- chore: Sync with rhiza by @tschm in #556
- chore(deps): update github/codeql-action action to v4.32.1 by @renovate[bot] in #557
- chore(deps): update pre-commit hook abravalheri/validate-pyproject to v0.25 by @renovate[bot] in #558
- chore(deps): lock file maintenance by @renovate[bot] in #559
- Remove 'tests' from template inclusion by @tschm in #562
- Delete tests/test_rhiza directory by @tschm in #561
- chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.30 by @renovate[bot] in #563
- chore(deps): update dependency astral-sh/uv to v0.10.0 by @renovate[bot] in #566
- chore(deps): update astral-sh/setup-uv action to v7.3.0 by @renovate[bot] in #565
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.15.0 by @renovate[bot] in #568
- chore(deps): update github/codeql-action action to v4.32.2 by @renovate[bot] in htt...