Skip to content

chore: update rhiza to v1.2.1 - #488

Merged
tschm merged 2 commits into
mainfrom
rhiza_v1.2.1
Jul 17, 2026
Merged

tschm merged 2 commits into
mainfrom
rhiza_v1.2.1

Conversation

@tschm

@tschm tschm commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bumps the template ref to v1.2.1 in .rhiza/template.yml (was v1.1.3)
  • Platform profile: github-project (unchanged — matches the github.com remote)
  • Runs the bundled scripts/sync.py to apply upstream template changes; conflicts resolved taking the upstream (theirs) side

Quality gates

Gate Result Evidence
make fmt PASS pre-commit + ruff + markdownlint + bandit + actionlint all green
make typecheck PASS ty "All checks passed"; mypy --strict "no issues found in 2 source files"
make docs-coverage PASS interrogate 100.0% (min 100.0%)
make deptry PASS "No dependency issues found"
make security PASS bandit scan of book/marimo/notebooks clean (exit 0)
make test PASS 76 passed; 100% branch coverage (threshold 100%)
make marimo-validate PASS all 7 notebooks execute cleanly
test-layout parity (bundled checker) N/A checker assumes a src/ package; this is a marimo-notebook repo — tests DO mirror book/marimo/notebooks/ 1:1 (upstream checker assumption, not a local gap)

Note: this repo uses the minimal templates: [legal] profile and has no generic make validate target; make marimo-validate is the structural gate.

Scorecard

Scope: locally-owned items (book/marimo/notebooks/, tests/, pyproject.toml, README.md, .rhiza/template.yml). Rhiza-managed infra (.github/workflows/*, Makefile, .pre-commit-config.yaml, ruff.toml, etc.) is upstream/out-of-scope.

Subcategory Score Justification To raise
Linting / style 10 make fmt fully green
Type safety 10 ty + mypy --strict clean on optimize.py, preamble.py; Experiments excluded by design, covered by Sharpe regression tests
Docstring / API-doc coverage 10 interrogate 100%
Test pass rate 10 76/76 pass
Test coverage & depth 10 100% branch coverage, threshold 100%
Dependency & security hygiene 10 deptry clean, bandit clean
Code complexity 10 avg CC A (1.34); no C-or-worse blocks; every module MI grade A
Overall architecture 9 Clean hub-and-spoke: preamble.py is the shared data layer; all Experiments + optimize.py depend on it, no reverse imports, no cycles. optimize.py (352 LOC, MI 55.85) is the largest block, still grade A split optimize.py / reduce main() size
Test design quality 9 Tests assert real behaviour (Sharpe regression vs. expected values), execute notebooks in spawned subprocesses; some coverage derives from notebook re-execution and exact-value Sharpe baselines are brittle loosen exact baselines to a tolerance
Template fidelity 9 Sync applied cleanly, conflicts resolved upstream-side; minimal profile lacks a generic make validate drift gate, so full template-drift verification isn't available locally (upstream: add a validate gate to the profile)

Overall: ~9.7 / 10 — effectively a clean bill of health.

Highest-leverage improvement: none is blocking. The main friction is that the generic src/-based test-layout checker cannot see this repo's notebook↔test mirroring — an upstream checker-assumption issue rather than a local defect.


🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 17, 2026 05:36
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@tschm, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: db73eacf-6851-4941-8d27-d11addee9e35

📥 Commits

Reviewing files that changed from the base of the PR and between d47ae38 and 36a0822.

⛔ Files ignored due to path filters (1)
  • .rhiza/template.lock is excluded by !**/*.lock
📒 Files selected for processing (24)
  • .github/CONFIG.md
  • .github/rulesets/main-branch-protection.json
  • .github/rulesets/tag-protection.json
  • .github/workflows/rhiza_benchmark.yml
  • .github/workflows/rhiza_book.yml
  • .github/workflows/rhiza_ci.yml
  • .github/workflows/rhiza_codeql.yml
  • .github/workflows/rhiza_fuzzing.yml
  • .github/workflows/rhiza_marimo.yml
  • .github/workflows/rhiza_mutation.yml
  • .github/workflows/rhiza_release.yml
  • .github/workflows/rhiza_scorecard.yml
  • .github/workflows/rhiza_sync.yml
  • .github/workflows/rhiza_weekly.yml
  • .pre-commit-config.yaml
  • .rhiza/.rhiza-version
  • .rhiza/completions/README.md
  • .rhiza/completions/rhiza-completion.bash
  • .rhiza/completions/rhiza-completion.zsh
  • .rhiza/make.d/releasing.mk
  • .rhiza/make.d/test.mk
  • .rhiza/rhiza.mk
  • .rhiza/template.yml
  • SECURITY.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rhiza_v1.2.1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Updates this repository to Rhiza template v1.2.1 and applies the upstream sync, bringing in updated GitHub workflows/rulesets plus refreshed project policy/docs and tooling pins.

Changes:

  • Bump Rhiza template ref/lock to v1.2.1 and record synced file set changes.
  • Update GitHub Actions wiring (pin reusable workflows to v1.2.1, add benchmark/mutation stubs, remove sync workflow).
  • Refresh project docs/policy and developer tooling metadata (SECURITY policy expansion, PAT guidance, shell completions, pre-commit hook revs, rulesets).

Reviewed changes

Copilot reviewed 24 out of 25 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
SECURITY.md Expands vulnerability reporting guidance and enumerates security measures.
.rhiza/template.yml Bumps template ref to v1.2.1.
.rhiza/template.lock Updates pinned template SHA, synced_at, and tracked template-managed files/profiles.
.rhiza/rhiza.mk Simplifies Rhiza make entrypoints and included targets list.
.rhiza/make.d/test.mk Refines security target commentary around bandit.
.rhiza/make.d/releasing.mk Adds release-status/changelog helper targets.
.rhiza/completions/rhiza-completion.zsh Removes BUMP variable completions.
.rhiza/completions/rhiza-completion.bash Removes BUMP variable completions.
.rhiza/completions/README.md Updates completion docs to match variable set (removes BUMP).
.rhiza/.rhiza-version Removes rhiza version pin file.
.pre-commit-config.yaml Updates pre-commit hook revisions (ruff/uv).
.github/workflows/rhiza_weekly.yml Pins reusable weekly workflow to v1.2.1.
.github/workflows/rhiza_sync.yml Removes template sync workflow.
.github/workflows/rhiza_scorecard.yml Pins reusable scorecard workflow to v1.2.1.
.github/workflows/rhiza_release.yml Updates release workflow notes and pins configure-git-auth action to v1.2.1.
.github/workflows/rhiza_mutation.yml Adds opt-in mutation testing workflow wiring.
.github/workflows/rhiza_marimo.yml Pins reusable marimo workflow to v1.2.1.
.github/workflows/rhiza_fuzzing.yml Pins reusable fuzzing workflow to v1.2.1.
.github/workflows/rhiza_codeql.yml Pins reusable CodeQL workflow to v1.2.1.
.github/workflows/rhiza_ci.yml Pins reusable CI workflow to v1.2.1.
.github/workflows/rhiza_book.yml Pins reusable book workflow to v1.2.1.
.github/workflows/rhiza_benchmark.yml Adds benchmark workflow wiring on main pushes.
.github/rulesets/tag-protection.json Adds tag protection ruleset export for v* tags.
.github/rulesets/main-branch-protection.json Updates required status checks structure/metadata.
.github/CONFIG.md Updates Actions secrets documentation (PAT_TOKEN section wording).

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

Comment thread SECURITY.md
Comment on lines +18 to +20
2. **Email**
- Send details to the repository maintainers
- Include "SECURITY" in the subject line
Comment thread SECURITY.md
Comment on lines +34 to +37
- **Acknowledgment**: We will acknowledge receipt within 48 hours
- **Initial Assessment**: We will provide an initial assessment within 7 days
- **Resolution Timeline**: We aim to resolve critical issues within 30 days
- **Credit**: We will credit reporters in the security advisory (unless you prefer to remain anonymous)
Comment thread SECURITY.md
- **CodeQL**: Automated code scanning for Python and GitHub Actions
- **Bandit**: Python security linter integrated in CI and pre-commit
- **Secret Scanning**: GitHub secret scanning enabled on this repository
- **Fuzzing**: ClusterFuzzLite exercises Atheris-based fuzz targets on pull requests and scheduled batch runs
Comment thread .github/CONFIG.md
Comment on lines +10 to +14
the token carries the `workflow` scope. If you need it, create a Personal Access
Token (PAT) with the `workflow` scope and store it as a repository secret named
`PAT_TOKEN`.

By default the workflow authenticates with the automatic `github.token`. That token **cannot push
changes to files under `.github/workflows/`** — GitHub rejects such pushes unless the token has the
`workflow` scope. Since template syncs regularly update workflow files, you should configure a
Personal Access Token (PAT) with that scope and store it as a repository secret named `PAT_TOKEN`.

If `PAT_TOKEN` is not configured, the workflow falls back to `github.token` and prints a warning.
Syncs that touch only non-workflow files will still succeed.
If `PAT_TOKEN` is not configured, workflows fall back to `github.token`.
Comment thread .rhiza/rhiza.mk
Comment on lines 61 to 63
readme \
summarise-sync \
sync \
validate \
version-matrix \
ci-os-matrix
@tschm
tschm merged commit 73cf98c into main Jul 17, 2026
67 checks passed
@tschm
tschm deleted the rhiza_v1.2.1 branch July 17, 2026 06:21
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