refactor: parallelize CI jobs and apply ruff formatting#545
refactor: parallelize CI jobs and apply ruff formatting#545raman325 merged 5 commits intoFutureTense:betafrom
Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## beta #545 +/- ##
==========================================
+ Coverage 80.86% 82.17% +1.31%
==========================================
Files 19 21 +2
Lines 2341 2491 +150
==========================================
+ Hits 1893 2047 +154
+ Misses 448 444 -4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR refactors the CI workflow to run Python checks (pytest, lint, mypy) in parallel instead of sequentially through tox, improving feedback speed and reducing dependency installation overhead.
Changes:
- Split single tox job into four parallel jobs: tests, lint, mypy, and coverage
- Removed tox dependency from CI and install requirements directly from split requirement files
- Changed lint job to use
ruff format --check(appropriate for CI) instead ofruff format
Comments suppressed due to low confidence (2)
.github/workflows/pytest.yaml:32
- The matrix strategy only includes Python 3.13, but the old tox configuration (in pyproject.toml) also tested against Python 3.14. Consider whether testing against multiple Python versions should be preserved, or if this is an intentional change to reduce CI time.
strategy:
matrix:
python-version:
- "3.13"
.github/workflows/pytest.yaml:87
- The coverage job is missing a name attribute. Add a name to maintain consistency with the other jobs (tests, lint, mypy) and improve readability in the GitHub Actions UI.
coverage:
runs-on: ubuntu-latest
needs: tests
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Split the single tox-based workflow into parallel jobs: - tests: runs pytest with requirements_test.txt - lint: runs ruff format/check with requirements_lint.txt - mypy: runs mypy with requirements_lint.txt - coverage: uploads coverage after tests complete Each job installs only the dependencies it needs, and all jobs run in parallel for faster CI feedback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
02906ca to
00660d5
Compare
Run `ruff format` to fix formatting issues detected by CI. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This rule has been removed from ruff, so ignoring it is no longer needed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Required for --cov and --cov-report flags used in CI workflow. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace pip with uv for significantly faster dependency installation. uv is a fast Python package installer written in Rust. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary
Refactor CI workflow to run jobs in parallel with faster package installation.
Proposed change
CI Parallelization
Split the workflow into parallel jobs for faster feedback:
requirements_test.txtrequirements_lint.txtrequirements_lint.txtPerformance Improvements
uvinstead ofpipfor significantly faster package installationCode Formatting
ruff formatto entire codebase (38 files reformatted)UP038rule from ruff config (rule was removed from ruff)Dependency Cleanup
pytest-covto requirements_test.txt for coverage supportType of change
Additional information
🤖 Generated with Claude Code