Releases: Jebel-Quant/jquantstats
v0.8.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.8.0 - 2026-04-25
Maintenance
- Lock file maintenance (#678)
- Lock file maintenance (#679)
- Lock file maintenance (#680)
- Lock file maintenance (#681)
- Lock file maintenance (#682)
- Lock file maintenance (#683)
- Lock file maintenance (#684)
Other Changes
- Result is coming
- Result is coming
- Add
interpolate: interior forward-fill for numeric Polars columns (#686)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Bump version 0.7.0 → 0.8.0
PyPI Package
v0.7.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.7.0 - 2026-04-23
Bug Fixes
- Set dev as permanent default for GitHub Pages
- Add missing mkdocs deps to mike set-default invocation
- Use uv tool install to avoid duplicate uvx invocations for mike
- Remove duplicate test fixtures in test_utils.py
Documentation
- List notebooks and reports individually in nav
- Replace Sphinx :attr:/:meth: refs with plain backticks
- Enforce strict Google docstring style throughout
Maintenance
- Refactor security and license targets using extensible hooks
- Lock file maintenance (#653)
- Lock file maintenance (#659)
- Lock file maintenance (#660)
- Lock file maintenance (#667)
- Bump rhiza template to v0.10.1 (#666)
- Chore(deps-dev)(deps-dev): bump yfinance from 1.2.2 to 1.3.0 in the python-dependencies group (#669)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Chore(deps)(deps): bump github/codeql-action from 4.35.1 to 4.35.2 in the github-actions group (#668)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Other Changes
- Weekly (#654)
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Delete book/marimo/notebooks/yfinance_demo.py
- Release with mike?
- Update mkdocs-base.yml
- Slim down mkdocs.yml
- Update coverage badge link in README.md
- Update test coverage link in README.md
- Slim down mkdocs.yml
- Extract shared config into docs/mkdocs-base.yml, inherit in mkdocs.yml
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Use material.extensions.emoji in mkdocs-base.yml for CI compatibility
zensical remaps material.extensions → zensical.extensions at parse time,
so this works with both; plain mkdocs in CI doesn't have zensical installed.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Moving to zensical
- Moving to zensical
- Replace mike deployment with peaceiris/actions-gh-pages
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Moving to zensical
- Remove tests that require mkdocs-build/MKDOCS_EXTRA_PACKAGES in book.mk
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Run tests before make book to populate coverage HTML report
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Update coverage badge link in README.md
-
Generate coverage badge in book workflow, deploy via GitHub Pages
-
Badge generated from coverage.xml after tests, copied into _book/
-
README badge URL updated to Pages URL (no more raw.githubusercontent)
-
Remove CI coverage-badge job (conflicted with peaceiris gh-pages deploy)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge cp: write to /tmp, copy conditionally
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix SC2015: use if/fi instead of && || for badge copy
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Explicitly copy coverage HTML into _book/ after build
Bypasses zensical not serving non-Markdown static files from docs/.
Also inline badge generation after make book rather than a separate step.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge link: point to docs root instead of 404 path
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix MkDocs build: add missing theme name to base config
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Fix book build: replace lucide icons with material, add coverage badge to _book
-
Replace lucide/* icon refs with material/* equivalents — lucide icons
are not bundled in mkdocs-material <10 and caused a hard build failure -
Generate coverage-badge.svg into _book/ during book build so it is
served from GitHub Pages at the URL the README references
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge: use coverage.xml instead of coverage.json for genbadge
genbadge only parses the standard coverage XML format; using the JSON report
caused silent failure so coverage-badge.svg was never written to _book/.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix MkDocs build: replace lucide icons with material equivalents
mkdocs-material<10.0 (9.x) does not bundle the lucide icon set, causing
TemplateNotFound errors during build. Replaced all lucide/ nav icons in
page frontmatter with equivalent material/ icons that exist in 9.x.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge: use genbadge[coverage] extra for coverage subcommand
Without the [coverage] extra, genbadge silently fails to generate the badge.
Matches the invocation already used in the CI coverage-badge workflow step.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix coverage badge link to point to HTML report
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Update mkdocs.yml
- Update mkdocs.yml
- Change Test Report path in mkdocs.yml
Updated the path for the Test Report in mkdocs.yml
- Remove mkdocstrings plugin from mkdocs configuration
Removed mkdocstrings plugin configuration for Python
-
Update mkdocs-base.yml
-
Fix docs build: install package into uvx env and correct nav paths
-
Add --with-editable . to MKDOCS_EXTRA_PACKAGES so mkdocstrings can import jquantstats in the uvx-isolated environment
-
Fix report nav paths in mkdocs.yml to match what _book-reports actually generates (test-report/, coverage/)
-
Fix broken links in MIGRATION.md: drop docs/ prefix, correct STABILITY.md casing, remove links to non-existent files
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Improve docs site format inspired by TinyCTA style
-
Remove navigation.sections for a cleaner, flat sidebar
-
Add Quick Links line and emoji section headers to index.md
-
Tighten homepage content: consolidate Portfolio Route features,
remove standalone cost/lag sections, keep grid cards for next steps
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Switch book build from mkdocs to zensical (TinyCTA style)
-
Replace book.mk with TinyCTA version: uses zensical build, adds ROOT
variable for absolute paths, adds serve target, simplifies _book-reports
to a single cp -r _tests/. docs/reports/ -
Update mkdocs.yml nav report paths to match new layout
(html-report/ and html-coverage/ instead of test-report/ and coverage/)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Remove coverage badge job from CI workflow
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Remove broken coverage badge links from README
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Rhiza2 (#672)
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Feature/add returns winsorising (#676)
Co-authored-by: peter pjotr.b@yukkalab.com
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Add to_volatility_adjusted_returns with pluggable vol estimator (#674)
Co-authored-by: peter pjotr.b@yukkalab.com
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Bump version 0.6.5 → 0.7.0
PyPI Package
v0.6.5
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.5 - 2026-04-14
Bug Fixes
- Move semgrep.yml from .rhiza to .github (#647)
- Add mkdocstrings[python] to MKDOCS_EXTRA_PACKAGES
Maintenance
- Lock file maintenance (#643)
- Lock file maintenance (#644)
- Lock file maintenance (#648)
- Sync rhiza template to v0.9.5 (#649)
- Chore(deps-dev)(deps-dev): bump yfinance from 1.2.0 to 1.2.2 in the python-dependencies group (#650)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Lock file maintenance (#651)
- Simplify mkdocs.yml via INHERIT from docs/mkdocs-base.yml
Other Changes
- Delete docs/marimo/rhiza.py (#652)
- Bump version 0.6.4 → 0.6.5
PyPI Package
v0.6.4
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.4 - 2026-04-12
Bug Fixes
- Avoid pyarrow dependency in pandas→polars conversion
Maintenance
- Remove docs/marimo/ from .gitignore
- Chore(deps)(deps): bump the python-dependencies group with 6 updates (#639)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Chore(deps)(deps): bump docker/login-action from 4.0.0 to 4.1.0 in the github-actions group (#638)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Lock file maintenance (#641)
New Features
- Add yfinance portfolio demo notebook
Other Changes
- Update repository reference to version 0.9.1 (#640)
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Bump version 0.6.3 → 0.6.4
PyPI Package
v0.6.3
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.3 - 2026-03-31
Maintenance
- Chore(deps)(deps): bump the python-dependencies group with 2 updates (#636)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Chore(deps)(deps): bump github/codeql-action from 4.35.0 to 4.35.1 in the github-actions group (#635)
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Improve test layout, module naming consistency, and fixture magic numbers (#633)
Other Changes
- Fix code block formatting in README.md (#627)
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
- Release on RhizaSkip branch!? (#629)
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Replace test CSV dependency in README with inline random price data (#631)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Improve code quality: precise type hints, caching docs, implicit-rename warning (#637)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Getting started
- Bump version 0.6.2 → 0.6.3
PyPI Package
v0.6.2
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.2 - 2026-03-30
Bug Fixes
- Define prices and positions in execution-delay example
- Remove RHIZA_SKIP flags and fix all executable code blocks
Other Changes
- Fix code block formatting in README.md
Removed unnecessary RHIZA_SKIP from code blocks in README
- Update README.md
Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com
- Bump version 0.6.1 → 0.6.2
PyPI Package
v0.6.1
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.1 - 2026-03-30
Documentation
- Surface CostModel as public API and add dedicated usage guide (#622)
- Expand API mapping table and add jquantstats-only stats section
- Add Docs nav section with all docs/ markdown files
- Acknowledge QuantStats and clarify jquantstats' purpose
- Rewrite introduction to clarify conceptual differences between jquantstats and QuantStats
- Remove comprehensive markdown docs in favor of simpler guidance
Maintenance
- Drop plot_ prefix from DataPlots methods (#616)
- Disable scheduled runs, workflow dispatch, and unused steps in rhiza_validate.yml
New Features
- Property-based tests for financial metric invariants via hypothesis (#620)
Other Changes
- Move
app.pyfrom repo root toapi/app.py(#614)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Copilot/move app py to api directory (#615)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Remove annualisation details for information_ratio
Removed section on information_ratio annualisation from migration documentation
- Extract shared computation layer into
_stats/_internals.py(#618) - Delete docs/migration.md (#626)
- Migration
- Bump version 0.6.0 → 0.6.1
Performance
- Cache expensive Portfolio NAV/returns/tilt/turnover properties (#624)
PyPI Package
v0.6.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.6.0 - 2026-03-29
Bug Fixes
- Pin pygments<2.19 in mkdocs build to avoid NoneType crash
- Update test_local import to reflect app.py move to api/ directory
Documentation
- Sync root migration.md with recent library changes
Maintenance
- Rename test_quantstats.py to test_autocorrelation.py
- Simplify
conditional_value_at_riskAPI and remove deprecation shim - Add pytest integration tests for FastAPI endpoints in
app.py
New Features
- Add
null_strategyparameter toData.from_returns/from_prices(#609) - Move app.py to api/app.py and update railway.toml
Other Changes
- Port quantstats test suite to jquantstats (#598)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Add
annualiseparameter toinformation_ratiofor QuantStats parity (#607)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Fix double-multiplied and raw-decimal percentage values in performance tables (#602)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Fix avg_drawdown sign convention to match QuantStats (negative fraction) (#608)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Add
confidencedeprecation shim toconditional_value_at_risk(#610)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
- Add minimal FastAPI app and Railway deployment config (#611)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Add railway.toml to fix uvicorn not found on Railway deployment (#612)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Delete Procfile (#613)
- Delete architecture section from README
Removed architecture section detailing entry points and their functionalities
- Initial plan
- Bump version 0.5.1 → 0.6.0
PyPI Package
v0.5.2
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.5.2 - 2026-03-29
Bug Fixes
- Resolve 404 for Marimo Notebooks and Reports pages in deployed book (#600)
Maintenance
- Update MARIMO_FOLDER path in .env
New Features
- Add comprehensive plots & reports gallery notebook (#596)
Other Changes
- Initial plan
- Clean up .env by removing book variables (#594)
- Merge branch 'main' into copilot/bring-tests-from-quantstats
- Initial plan for porting quantstats tests to jquantstats
Agent-Logs-Url: https://github.com/Jebel-Quant/jquantstats/sessions/4ce55d80-842c-44e2-a0cc-75403d794aaf
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Port quantstats test suite to jquantstats (31 new tests)
Agent-Logs-Url: https://github.com/Jebel-Quant/jquantstats/sessions/4ce55d80-842c-44e2-a0cc-75403d794aaf
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Merge branch 'main' into copilot/bring-tests-from-quantstats
- Minor test cleanup: inline DataFrames and tighten raises match
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
-
Merge branch 'main' into copilot/bring-tests-from-quantstats
-
Fix _NOTEBOOK_DIR scope and add HTML report exports via NOTEBOOK_OUTPUT_FOLDER
-
Rename _NOTEBOOK_DIR → NOTEBOOK_DIR (underscore-prefixed vars are cell-local in marimo)
-
Add os import to app.setup
-
Add export cells for data and portfolio HTML reports, using the same NOTEBOOK_OUTPUT_FOLDER pattern as rhiza.py
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Fix multiple-definition errors: prefix cell-local vars with underscore
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Bump version 0.5.1 → 0.5.2
PyPI Package
v0.5.1
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.5.1 - 2026-03-29
Bug Fixes
- Add security exception docs to test_portfolio conftest
- Mark illustrative README snippets +RHIZA_SKIP to pass validate
Documentation
- Update CHANGELOG with 0.5.0 release details
- Rewrite README to foreground the Portfolio route and execution-delay analysis
Maintenance
- Consolidate root-level files into .github/ and docs/ (#591)
- Split test_portfolio.py into focused modules
- Split portfolio.py into focused mixin modules (#593)
New Features
- License workflow produces LICENSES.md artifact (#590)
- Add _utils subpackage mirroring qs.utils API
Other Changes
- Delete .rhiza/templates/minibook directory
- Delete .rhiza/make.d/gh-aw.mk (#588)
- Marimushka go (#592)
Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
- Bump version 0.5.0 → 0.5.1