Conversation
Replace pre-commit with prek, a Rust-based reimplementation offering: - Multiple times faster than pre-commit - Half the disk space usage - Drop-in compatibility with existing .pre-commit-config.yaml Changes: - Replace pre-commit with prek>=0.2.13 in pyproject.toml - Update CI workflow to use prek-rs/prek-action@v2 - Update CLAUDE.md documentation to use prek commands - Remove unnecessary pip installation from CI workflow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Claude finished @zzstoatzz's task —— View job Pull Request Review: Switch from pre-commit to prek✅ SummaryThis PR successfully migrates from 📋 Review Feedback✅ Strengths
🔍 Observations & Suggestions
✅ Security & Performance
✅ Test Coverage
🎯 VerdictLGTM! This is a well-executed migration that maintains all existing functionality while providing performance benefits. The changes are minimal, focused, and preserve the project's high standards. Review Checklist
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #182 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 34 34
Lines 5216 5216
Branches 265 265
=========================================
Hits 5216 5216
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
📚 Documentation has been built for this PR! You can download the documentation directly here: |
croniter 6.0.0 has two unbounded memory leaks ([#182](pallets-eco/croniter#182), [#195](pallets-eco/croniter#195)) that are fixed in main but unreleased — and the project was declared unmaintained by Pallets Community Ecosystem in March 2025, so no release is coming. It also drags in pytz and python-dateutil as transitive deps. cronsim is actively maintained (~280 lines, zero deps, Python 3.10+), used in production by Healthchecks.io, and handles DST via zoneinfo natively. One gap: cronsim doesn't support Vixie keywords (@daily, @hourly, etc.), so we add a small mapping dict that expands them before passing to CronSim. Also extracted `Cron.next_time()` so tests mock at docket's abstraction level rather than the library's internals, and added contract tests that exercise the real cronsim integration (sequential times, timezone handling, keyword validity). Companion conda-forge PR: conda-forge/pydocket-feedstock#34 Closes #362 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
croniter 6.0.0 has two unbounded memory leaks ([#182](pallets-eco/croniter#182), [#195](pallets-eco/croniter#195)) that are fixed in main but unreleased — and the project was declared unmaintained by Pallets Community Ecosystem in March 2025, so no release is coming. It also drags in pytz and python-dateutil as transitive deps. cronsim is actively maintained (~280 lines, zero deps, Python 3.10+), used in production by Healthchecks.io, and handles DST via zoneinfo natively. One gap: cronsim doesn't support Vixie keywords (@daily, @hourly, etc.), so we add a small mapping dict that expands them before passing to CronSim. Also extracted `Cron.next_time()` so tests mock at docket's abstraction level rather than the library's internals, and added contract tests that exercise the real cronsim integration (sequential times, timezone handling, keyword validity). Companion conda-forge PR: conda-forge/pydocket-feedstock#34 Closes #362 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
Replace pre-commit with prek, a Rust-based reimplementation that offers superior performance and efficiency while maintaining full compatibility with existing
.pre-commit-config.yamlfiles.Key Benefits
Changes Made
pre-commit>=4.1.0withprek>=0.2.13inpyproject.toml.github/workflows/ci.yml):pre-committoprekprek-rs/prek-action@v2for caching and executionuv pip install pipstepCLAUDE.md:pre-commit run --all-filestouv run prek run --all-filespre-commit installtouv run prek installTest Plan
uv run prek installuv run prek run --all-files🤖 Generated with Claude Code