Skip to content

chore: update rhiza to v0.18.4#781

Merged
tschm merged 9 commits into
mainfrom
rhiza_v0.18.4
May 28, 2026
Merged

chore: update rhiza to v0.18.4#781
tschm merged 9 commits into
mainfrom
rhiza_v0.18.4

Conversation

@tschm
Copy link
Copy Markdown
Member

@tschm tschm commented May 28, 2026

Summary

  • Bumps template-branch to v0.18.4 in .rhiza/template.yml
  • Bumps .rhiza/.rhiza-version to 0.16.1
  • Runs make sync to apply upstream template changes

tschm and others added 3 commits May 27, 2026 17:21
Avoids Node.js 20 deprecation forced on June 2nd 2026.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 28, 2026 16:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.yml to v0.18.4 and 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 adding test_pyproject.py for pyproject.toml validation.

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"
Comment thread .rhiza/make.d/book.mk
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
tschm and others added 6 commits May 28, 2026 20:53
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>
@tschm tschm merged commit df538fb into main May 28, 2026
69 of 70 checks passed
@tschm tschm deleted the rhiza_v0.18.4 branch May 28, 2026 19:31
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