Skip to content

chore: update rhiza to v1.1.1 - #870

Merged
tschm merged 2 commits into
mainfrom
rhiza_v1.1.1
Jul 9, 2026
Merged

chore: update rhiza to v1.1.1#870
tschm merged 2 commits into
mainfrom
rhiza_v1.1.1

Conversation

@tschm

@tschm tschm commented Jul 9, 2026

Copy link
Copy Markdown
Member

Summary

  • Bumps the template ref to v1.1.1 in .rhiza/template.yml (was v1.0.2)
  • Platform profile: github-project (unchanged — matches the github.com origin)
  • Runs make sync to apply upstream template changes; conflicts resolved taking upstream. The sync flattened .rhiza/tests/ (removed the api/, integration/, structure/, sync/, utils/ subdirs into top-level test modules), removed the .rhiza/requirements/* and .rhiza/utils/* helper files, and refreshed the .github/workflows/*, .rhiza/make.d/*, and ruff.toml. No .rej files or conflict markers remained in tracked files. docs/index.md is a deliberately customized project landing page and was preserved (the upstream --8<-- "README.md" include hunk did not apply and was intentionally not forced).
  • .rhiza/.rhiza-version (tool version, 0.18.0) left untouched — decoupled from the template ref.

Quality gates

Gate Result Evidence
make fmt ✅ PASS ruff/markdownlint/bandit/actionlint all Passed; no auto-format changes
make typecheck ✅ PASS ty "All checks passed"; mypy --strict "no issues found in 52 source files"
make docs-coverage ✅ PASS interrogate 100.0% (minimum 100.0%)
make deptry ✅ PASS "No dependency issues found" (57 files scanned)
make security ✅ PASS pip-audit no vulnerabilities; bandit no findings
make validate ✅ PASS template.yml valid on v1.1.1; .rhiza/tests 47 passed
make test ✅ PASS 1213 passed, 5 skipped (kaleido/no-Chrome), 100% coverage (gate 100%)

Scorecard

Scoped to locally-owned src/, tests/, and project config (Rhiza-managed files excluded per CLAUDE.md).

Subcategory Score Justification
Linting / style 10 Full make fmt green, ruff clean
Type safety 10 ty + mypy --strict clean, 52 files
Docstring / API-doc coverage 10 interrogate 100%
Test pass rate 10 1213 passed, 0 failed (5 skips env-gated)
Test coverage & depth 10 100% line+branch; dedicated mutation-kill suites
Dependency & security hygiene 10 deptry + pip-audit + bandit all clean
Template fidelity (make validate) 10 No drift on v1.1.1
Code complexity 9 Avg CC A (2.86), zero C+ blocks; only data.py (808 LOC) and a few B(10) blocks sit at the edge
Overall architecture 9 Clean mixin composition, correct layering (Portfolio→Data), no cycles; data.py trends god-module
Test design quality 9 Behaviour-asserting + mutation-kill + syrupy snapshots
Public API / semver discipline 9 Clean two-entry-point surface, _-private modules
User-facing documentation 9 Rich index.md, MIGRATION.md, getting_started, cost_models

Overall: 9.7 / 10.

Highest-leverage improvement: split the 808-line src/jquantstats/data.py and decompose its B(10) blocks (Data.from_prices, _apply_null_strategy) to bring the largest module and worst functions down a grade.

Recommendations (below-10 subcategories)

  1. Split data.py (808 LOC) and decompose its B(10) functions — Code complexity 9→10.
  2. Reduce data.py coupling as a god-module — Overall architecture 9→10.
  3. Extend mutation-kill coverage to stats internals — Test design 9→10.
  4. Document a semver/deprecation policy — Public API 9→10.
  5. Add a rendered API-changelog page — User-facing docs 9→10.

🤖 Generated with Claude Code

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the pinned Rhiza template from v1.0.2 to v1.1.1 and syncs the downstream repository with upstream template changes, including updates to Makefile bundles, GitHub reusable workflows, and the synced .rhiza/tests suite.

Changes:

  • Update .rhiza/template.yml / .rhiza/template.lock to Rhiza v1.1.1 and refresh the synced file set.
  • Replace .rhiza/requirements/* and .rhiza/utils/*-based tooling with per-target provisioning via uv run --with … and rhiza-tools commands.
  • Flatten the synced .rhiza/tests layout (new top-level test modules; remove prior subdirectory-based suites).

Reviewed changes

Copilot reviewed 47 out of 52 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
ruff.toml Removes .rhiza/utils-specific lint exceptions now that the utils scripts are removed.
docs/development/TESTS.md Updates docs to reflect uv run --with …-provisioned test dependencies (no separate install).
.rhiza/utils/suppression_report.py Removed (utility script no longer shipped in template).
.rhiza/utils/suppression_parse.py Removed (utility script no longer shipped in template).
.rhiza/utils/suppression_audit.py Removed (utility script no longer shipped in template).
.rhiza/utils/pip_audit_policy.py Removed (replaced by rhiza-tools pip-audit usage).
.rhiza/tests/utils/test_suppression_audit.py Removed (tests for removed .rhiza/utils suppression audit scripts).
.rhiza/tests/utils/test_pip_audit_policy.py Removed (tests for removed .rhiza/utils pip-audit policy script).
.rhiza/tests/test_readme_validation.py Adds README code-block validation tests in new flattened suite layout.
.rhiza/tests/test_pyproject.py Adds pyproject structure/version validation tests in new flattened suite layout.
.rhiza/tests/test_git_repo_fixture.py Adds self-tests for the shared git_repo fixture in new flattened suite layout.
.rhiza/tests/test_docstrings.py Adds doctest discovery/execution test in new flattened suite layout.
.rhiza/tests/sync/conftest.py Removed (suite flattened; prior sync category removed).
.rhiza/tests/structure/test_requirements.py Removed (requirements folder removed from template).
.rhiza/tests/structure/test_project_layout.py Removed (suite flattened; prior structure category removed).
.rhiza/tests/stress/README.md Updates stress docs to reflect flattened test layout (removes integration tests link).
.rhiza/tests/shell/test_scripts.sh Removed (shell-script test suite no longer shipped in template).
.rhiza/tests/README.md Rewrites suite documentation for flattened layout and make rhiza-test usage.
.rhiza/tests/integration/test_virtual_env_unexport.py Removed (suite flattened; prior integration category removed).
.rhiza/tests/integration/test_test_mk.py Removed (suite flattened; prior integration category removed).
.rhiza/tests/integration/test_docs_targets.py Removed (suite flattened; prior integration category removed).
.rhiza/tests/integration/test_book_targets.py Removed (suite flattened; prior integration category removed).
.rhiza/tests/api/test_releasing_targets.py Removed (suite flattened; prior api category removed).
.rhiza/tests/api/test_makefile_targets.py Removed (suite flattened; prior api category removed).
.rhiza/tests/api/test_makefile_api.py Removed (suite flattened; prior api category removed).
.rhiza/tests/api/test_make_variable_overrides.py Removed (suite flattened; prior api category removed).
.rhiza/tests/api/test_github_targets.py Removed (suite flattened; prior api category removed).
.rhiza/tests/api/conftest.py Removed (suite flattened; prior api category removed).
.rhiza/template.yml Bumps template ref to v1.1.1.
.rhiza/template.lock Updates template lock sha/ref and synced file inventory for v1.1.1.
.rhiza/rhiza.mk Updates rhiza-test to provision dependencies inline via uv run --with … and drops .rhiza/utils coverage gating.
.rhiza/requirements/tools.txt Removed (template no longer installs dev tools from .rhiza/requirements).
.rhiza/requirements/tests.txt Removed (template no longer installs test deps from .rhiza/requirements).
.rhiza/requirements/README.md Removed (requirements folder removed).
.rhiza/requirements/marimo.txt Removed (requirements folder removed).
.rhiza/requirements/docs.txt Removed (requirements folder removed).
.rhiza/make.d/test.mk Switches targets to uv run --with …; updates security/suppression tooling to rhiza-tools; updates paths for flattened .rhiza/tests.
.rhiza/make.d/quality.mk Updates suppression-audit target to use rhiza-tools and ensures uv tooling is installed.
.rhiza/make.d/bootstrap.mk Removes .rhiza/requirements/*.txt installs; relies on per-target uv run --with … provisioning.
.rhiza/make.d/book.mk Provisions marimo inline via uv run --with marimo.
.github/workflows/rhiza_weekly.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_sync.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_scorecard.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_release.yml Bumps action ref to v1.1.1.
.github/workflows/rhiza_paper.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_mutation.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_marimo.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_fuzzing.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_codeql.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_ci.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_book.yml Bumps reusable workflow ref to v1.1.1.
.github/workflows/rhiza_benchmark.yml Bumps reusable workflow ref to v1.1.1.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .rhiza/make.d/test.mk

test-pyproject: install ## run pyproject.toml structure tests
@${UV_BIN} run pytest .rhiza/tests/structure/test_pyproject.py \
@${UV_BIN} run --with pytest pytest .rhiza/tests/test_pyproject.py \
@tschm
tschm merged commit d476fec into main Jul 9, 2026
70 checks passed
@tschm
tschm deleted the rhiza_v1.1.1 branch July 9, 2026 12:53
@tschm
tschm restored the rhiza_v1.1.1 branch July 13, 2026 20:32
@tschm
tschm deleted the rhiza_v1.1.1 branch July 14, 2026 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants