Skip to content

feat: Modernize precommit hooks and optimize test performance#5929

Merged
franciscojavierarceo merged 40 commits intomasterfrom
feat/precommit-test-performance-optimization
Feb 10, 2026
Merged

feat: Modernize precommit hooks and optimize test performance#5929
franciscojavierarceo merged 40 commits intomasterfrom
feat/precommit-test-performance-optimization

Conversation

@franciscojavierarceo
Copy link
Copy Markdown
Member

@franciscojavierarceo franciscojavierarceo commented Jan 31, 2026

This comprehensive update modernizes Feast's development workflow with significant performance improvements inspired by llama-stack patterns:

Precommit Hook Improvements:

  • ✅ Run hooks on commit (not push) for immediate feedback
  • ✅ Add comprehensive file checks (merge conflicts, large files, etc.)
  • ✅ Consolidate ruff linting and formatting
  • ✅ Enable MyPy incremental mode with sqlite cache for 75% speedup
  • ✅ Add smart template building (only when templates change)
  • ✅ Add init.py validation for Python packages

Test Performance Optimizations:

  • ✅ Reduce pytest timeout from 20min to 5min
  • ✅ Add enhanced test markers and parallelization settings
  • ✅ Create fast unit test targets with auto worker detection
  • ✅ Add smoke test target for quick development validation

New Developer Tools:

  • 🔧 Helper scripts: uv-run.sh, check-init-py.sh, mypy-daemon.sh
  • 📊 Performance monitoring with perf-monitor.py
  • 🚀 New Makefile targets: precommit-check, test-python-unit-fast
  • ⚡ MyPy daemon support for sub-second type checking

Expected Performance Gains:

  • Lint time: 22s → <8s (64% improvement target)
  • Unit tests: 5min → 2min (60% improvement target)
  • Developer feedback: Immediate on commit vs delayed on push

What this PR does / why we need it:

Which issue(s) this PR fixes:

Misc


Open with Devin

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants