Skip to content
This repository was archived by the owner on Jan 27, 2026. It is now read-only.

chore: sync template from jebel-quant/rhiza@main#57

Merged
tschm merged 1 commit intomainfrom
template-updates
Dec 14, 2025
Merged

chore: sync template from jebel-quant/rhiza@main#57
tschm merged 1 commit intomainfrom
template-updates

Conversation

@tschm
Copy link
Copy Markdown
Owner

@tschm tschm commented Dec 14, 2025

This PR syncs the template from:
jebel-quant/rhiza @ main

Summary by CodeRabbit

  • New Features

    • Added automation scripts for version bumping, releasing, and syncing configurations.
    • New Makefile targets for release workflows, repository syncing, and README updates.
    • Added GitHub Actions workflows for devcontainer validation and Docker image builds.
    • Enhanced release workflow with tag validation and multi-phase deployment pipeline.
    • Dynamic Python version matrix generation for CI based on project requirements.
    • Customization hooks for build extras and post-release actions.
  • Chores

    • Updated repository attribution and header comments.
    • Updated pre-commit tool versions and pytest configuration for enhanced logging.
    • Added automated README help synchronization.
  • Tests

    • Added comprehensive test suite for automation scripts and Makefile targets.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Dec 14, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR synchronizes repository configuration from a new template source (jebel-quant/rhiza), introducing comprehensive release automation through new shell scripts (bump.sh, release.sh, sync.sh), dynamic Python version detection in CI workflows, restructured GitHub Actions with conditional publishing for PyPI and devcontainer registries, enhanced Makefile targets, custom hook points, and an extensive test suite validating the new automation infrastructure.

Changes

Cohort / File(s) Summary
Repository Header & Configuration Updates
\.editorconfig, .github/workflows/deptry.yml, .github/workflows/sync.yml, ruff.toml, .pre-commit-config.yaml
Updated repository attribution from tschm/.config-templates to jebel-quant/rhiza. Bumped tool versions (ruff-pre-commit, markdownlint-cli). Added update-readme-help pre-commit hook.
GitHub Actions Setup Modernization
.github/actions/setup-project/action.yml
Replaced manual uv setup with astral-sh/setup-uv@v7. Introduced uv-extra-index-url input and made python-version required. Updated final sync step to propagate UV_EXTRA_INDEX_URL.
Release & Version Management Scripts
.github/scripts/bump.sh, .github/scripts/release.sh, .github/scripts/sync.sh
Added three new POSIX shell scripts: bump.sh automates version bumping with git operations; release.sh manages tag creation with pre-release validation; sync.sh synchronizes configuration files from template repository with include/exclude logic.
Custom Script Hooks
.github/scripts/customisations/build-extras.sh, .github/scripts/customisations/post-release.sh
Added optional hooks for extra system package installation during build phases and custom post-release actions with placeholder sections.
Utility & Document Scripts
.github/scripts/marimushka.sh, .github/scripts/update-readme-help.sh
Refactored marimushka.sh to use configurable output directory and direct marimushka export invocation. Added update-readme-help.sh to synchronize README.md with make help output using awk-based block replacement.
CI/CD Workflow Modernization
.github/workflows/ci.yml, .github/workflows/pre-commit.yml, .github/workflows/book.yml, .github/workflows/marimo.yml
Added dynamic Python version matrix generation via version_matrix.py. Updated workflows to use computed versions and uv-extra-index-url. Replaced static setup-python with dynamic retrieval. Modified marimo execution to use uvx for ephemeral environments.
Release & Registry Publishing Workflows
.github/workflows/release.yml, .github/workflows/devcontainer.yml, .github/workflows/docker.yml
Restructured release.yml from manual dispatch to tag-push driven with explicit validation, build, PyPI publish, conditional devcontainer publishing, and finalization phases. Added devcontainer.yml and docker.yml for image validation and building.
Python Version Detection Scripts
.github/workflows/scripts/version_matrix.py, .github/workflows/scripts/version_max.py
Added two Python utilities: version_matrix.py generates JSON list of supported Python versions from pyproject.toml; version_max.py determines maximum supported version.
Makefile Enhancement
Makefile
Expanded with new targets (release, release-dry-run, post-release, sync, update-readme, customisations, custom-%, print-%). Introduced SCRIPTS_FOLDER, CUSTOM_SCRIPTS_FOLDER, PDOC_TEMPLATE_DIR variables. Refactored docs, book, and install-extras targets to use new script locations.
Test Configuration
pytest.ini
Added real-time test logging configuration with DEBUG level, custom formats, and detailed test summaries.
Documentation Update
CONTRIBUTING.md
Changed recommended code-style command from make check to make fmt.
Comprehensive Test Suite
tests/test_rhiza/conftest.py, tests/test_rhiza/test_*.py (9 test modules)
Added test infrastructure: conftest.py with fixtures (root, logger, git_repo with mock uv). Comprehensive tests for bump.sh, release.sh, sync.sh logic; docstring and README doctests; Makefile targets; git_repo fixture validation.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Areas requiring extra attention:

  • .github/scripts/bump.sh, .github/scripts/release.sh, .github/scripts/sync.sh — Complex shell scripts with extensive error handling, git operations, and interactive prompts; critical to release workflow
  • .github/workflows/release.yml — Substantial restructuring from dispatch-driven to tag-push driven with multi-phase pipeline, conditional publishing, and image naming logic
  • .github/workflows/ci.yml — New matrix generation pattern using external Python script; affects all CI test runs
  • tests/test_rhiza/conftest.py — Complex test fixture with mock git repository, PATH manipulation, and executable script setup
  • tests/test_rhiza/test_sync_script.py — Integration test for template sync with exclusion logic validation
  • Makefile — Extensive refactoring with new variables, script paths, and target dependencies; affects developer workflow

Possibly related PRs

Poem

🐰 A rabbit hops through scripts and flows,
With bumps and tags and template rows,
Release workflows dance and spin,
Tests ensure all works within,
From template sync to matrix bright,
The config stage shines with light!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch template-updates

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae7ba52 and 98eb869.

📒 Files selected for processing (34)
  • .editorconfig (1 hunks)
  • .github/actions/setup-project/action.yml (5 hunks)
  • .github/scripts/bump.sh (1 hunks)
  • .github/scripts/customisations/build-extras.sh (1 hunks)
  • .github/scripts/customisations/post-release.sh (1 hunks)
  • .github/scripts/marimushka.sh (2 hunks)
  • .github/scripts/release.sh (1 hunks)
  • .github/scripts/sync.sh (1 hunks)
  • .github/scripts/update-readme-help.sh (1 hunks)
  • .github/workflows/book.yml (3 hunks)
  • .github/workflows/ci.yml (1 hunks)
  • .github/workflows/deptry.yml (2 hunks)
  • .github/workflows/devcontainer.yml (1 hunks)
  • .github/workflows/docker.yml (1 hunks)
  • .github/workflows/marimo.yml (2 hunks)
  • .github/workflows/pre-commit.yml (2 hunks)
  • .github/workflows/release.yml (6 hunks)
  • .github/workflows/scripts/version_matrix.py (1 hunks)
  • .github/workflows/scripts/version_max.py (1 hunks)
  • .github/workflows/sync.yml (2 hunks)
  • .pre-commit-config.yaml (4 hunks)
  • CONTRIBUTING.md (2 hunks)
  • Makefile (6 hunks)
  • pytest.ini (1 hunks)
  • ruff.toml (1 hunks)
  • tests/test_rhiza/conftest.py (1 hunks)
  • tests/test_rhiza/test_bump_script.py (1 hunks)
  • tests/test_rhiza/test_docstrings.py (1 hunks)
  • tests/test_rhiza/test_git_repo_fixture.py (1 hunks)
  • tests/test_rhiza/test_makefile.py (1 hunks)
  • tests/test_rhiza/test_readme.py (1 hunks)
  • tests/test_rhiza/test_release_script.py (1 hunks)
  • tests/test_rhiza/test_structure.py (1 hunks)
  • tests/test_rhiza/test_sync_script.py (1 hunks)

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 and usage tips.

@tschm tschm merged commit bc868c4 into main Dec 14, 2025
22 of 23 checks passed
@tschm tschm deleted the template-updates branch December 14, 2025 16:07
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant