chore: update rhiza to v0.18.4#781
Merged
Merged
Conversation
Avoids Node.js 20 deprecation forced on June 2nd 2026. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the repository’s Rhiza template reference and applies the upstream synced template changes, affecting CI/workflows, Makefile targets, and the Rhiza validation test suite.
Changes:
- Bump
.rhiza/template.ymltov0.18.4and apply the synced template updates (including new benchmark workflow and Makefile changes). - Add developer tooling updates (e.g.,
make doctor, pytest parallelization via xdist, pytest-timeout config). - Restructure/replace several
.rhiza/tests/*checks, including addingtest_pyproject.pyforpyproject.tomlvalidation.
Reviewed changes
Copilot reviewed 35 out of 36 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| pytest.ini | Adds pytest-timeout default (timeout = 60). |
| pyproject.toml.template | Adds a starter pyproject template for Rhiza-based projects. |
| .rhiza/utils/suppression_audit.py | Adds optional pip-audit-based stale CVE suppression checking and refactors reporting. |
| .rhiza/tests/sync/test_sync_schedule.py | Removes sync schedule override tests (template change). |
| .rhiza/tests/sync/test_rhiza_version.py | Removes Rhiza version tests (template change). |
| .rhiza/tests/structure/test_template_bundles.py | Removes template-bundles validation tests (template change). |
| .rhiza/tests/structure/test_pyproject.py | Adds strict pyproject.toml structure/metadata enforcement tests. |
| .rhiza/tests/structure/test_project_layout.py | Relaxes/skips optional directory checks (comments out skip logic). |
| .rhiza/tests/structure/test_lfs_structure.py | Removes LFS structure tests (template change). |
| .rhiza/tests/stress/test_makefile_stress.py | Removes Makefile stress tests (template change). |
| .rhiza/tests/stress/test_git_stress.py | Removes git stress tests (template change). |
| .rhiza/tests/security/test_security_patterns.py | Removes security pattern validation tests (template change). |
| .rhiza/tests/integration/test_lfs.py | Removes LFS integration tests (template change). |
| .rhiza/tests/deps/test_dependency_health.py | Removes dependency-health tests (template change). |
| .rhiza/tests/api/test_weekly_workflow.py | Removes weekly workflow tests (template change). |
| .rhiza/tests/api/test_release_workflow.py | Removes release workflow tests (template change). |
| .rhiza/tests/api/test_makefile_targets.py | Adds API tests for new doctor target behavior. |
| .rhiza/tests/api/test_github_targets.py | Removes GitHub target tests (template change). |
| .rhiza/tests/api/test_gh_aw_targets.py | Removes gh-aw target tests (template change). |
| .rhiza/tests/api/test_ci_workflow.py | Removes CI workflow tests (template change). |
| .rhiza/tests/api/conftest.py | Ensures new doctor.mk is included in the Makefile test harness. |
| .rhiza/template.yml | Bumps Rhiza template ref to v0.18.4. |
| .rhiza/template.lock | Updates locked template SHA/files list (adds benchmark workflow, doctor.mk, pyproject template). |
| .rhiza/rhiza.mk | Enforces GNU Make, trims PYTHON_VERSION whitespace, and tightens sync error chaining. |
| .rhiza/requirements/tools.txt | Updates ty requirement constraint. |
| .rhiza/requirements/tests.txt | Adds pytest-xdist and pytest-timeout to test requirements. |
| .rhiza/make.d/test.mk | Runs pytest with xdist (-n auto), strengthens interrogate invocation, adds test-pyproject target. |
| .rhiza/make.d/doctor.mk | Adds make doctor prerequisite diagnostics. |
| .rhiza/make.d/bootstrap.mk | Introduces UV_SYNC_ARGS variable used for uv sync installation. |
| .rhiza/make.d/book.mk | Adjusts serve recipe (now unquoted BOOK_OUTPUT). |
| .rhiza/CONTRIBUTING.md | Documents running make doctor and using uv dependency groups. |
| .rhiza/completions/README.md | Updates completion docs to reference book rather than docs. |
| .pre-commit-config.yaml | Adds a pre-commit check rejecting .rej files. |
| .github/workflows/rhiza_quality.yml | Updates checkout action pin in one job. |
| .github/workflows/rhiza_book.yml | Updates workflow comments to match current doc tooling. |
| .github/workflows/rhiza_benchmark.yml | Adds benchmark workflow delegating to upstream reusable workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+205
to
+214
| def _active_pip_audit_ids(extra_args: list[str]) -> set[str]: | ||
| """Return vulnerability IDs currently reported by pip-audit.""" | ||
| uvx = shutil.which("uvx") or "uvx" | ||
| cmd = [uvx, "pip-audit", "--format", "json", *extra_args] | ||
| proc = subprocess.run(cmd, capture_output=True, text=True) # noqa: S603 # nosec B603 | ||
|
|
||
| if proc.returncode not in {0, 1}: | ||
| sys.stdout.write(proc.stdout) | ||
| sys.stderr.write(proc.stderr) | ||
| raise RuntimeError("pip-audit execution failed") |
Comment on lines
+121
to
+133
| def test_urls_table_present(self, project: dict) -> None: | ||
| """[project.urls] must be present.""" | ||
| assert "urls" in project, "pyproject.toml is missing a [project.urls] table" | ||
|
|
||
| def test_homepage_configured(self, urls: dict) -> None: | ||
| """[project.urls] must include a Homepage entry.""" | ||
| assert "Homepage" in urls, "[project.urls] is missing a 'Homepage' entry" | ||
| assert urls["Homepage"].strip(), "[project.urls] 'Homepage' must be non-empty" | ||
|
|
||
| def test_repository_configured(self, urls: dict) -> None: | ||
| """[project.urls] must include a Repository entry.""" | ||
| assert "Repository" in urls, "[project.urls] is missing a 'Repository' entry" | ||
| assert urls["Repository"].strip(), "[project.urls] 'Repository' must be non-empty" |
Comment on lines
+171
to
+184
| def test_test_group_present(self, dependency_groups: dict) -> None: | ||
| """A 'test' dependency group must be declared.""" | ||
| assert "test" in dependency_groups, "[dependency-groups] must include a 'test' group" | ||
|
|
||
| def test_test_group_includes_pytest(self, dependency_groups: dict) -> None: | ||
| """The 'test' dependency group must include pytest.""" | ||
| test_deps = dependency_groups.get("test", []) | ||
| assert any("pytest" in str(dep).lower() for dep in test_deps), ( | ||
| "[dependency-groups.test] must list pytest as a dependency" | ||
| ) | ||
|
|
||
| def test_lint_group_present(self, dependency_groups: dict) -> None: | ||
| """A 'lint' dependency group must be declared.""" | ||
| assert "lint" in dependency_groups, "[dependency-groups] must include a 'lint' group" |
| serve: book ## build and serve the book at http://localhost:8000 | ||
| @printf "${BLUE}[INFO] Serving book at http://localhost:8000 (Ctrl-C to stop)${RESET}\n" | ||
| @cd "$(BOOK_OUTPUT)" && ${UV_BIN} run python -m http.server 8000 | ||
| @cd $(BOOK_OUTPUT) && ${UV_BIN} run python -m http.server 8000 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
kaleido spawns a Chrome subprocess that kills the pytest-xdist worker process on Windows CI instead of raising a clean exception. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
template-branchtov0.18.4in.rhiza/template.yml.rhiza/.rhiza-versionto0.16.1make syncto apply upstream template changes