Skip to content

Modernize project tooling: uv, ruff, pre-commit, tests - #8

Merged
vanandrew merged 4 commits into
mainfrom
modernize-tooling
Mar 14, 2026
Merged

Modernize project tooling: uv, ruff, pre-commit, tests#8
vanandrew merged 4 commits into
mainfrom
modernize-tooling

Conversation

@vanandrew

@vanandrew vanandrew commented Mar 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replaced setup.py/setup.cfg with full pyproject.toml configuration (ruff, pyright, pytest settings, explicit scripts entry point)
  • Migrated CI workflow to use uv instead of pip, and added a test job matrix (Python 3.9, 3.11)
  • Added pre-commit config with ruff (lint + format) and pyright hooks
  • Added test suite (tests/)
  • Added uv.lock for reproducible dependency resolution
  • Updated minimum Python version from 3.7 to 3.9
  • Applied ruff formatting across source files

Test plan

  • Verify CI test job passes on Python 3.9 and 3.11
  • Verify PyInstaller builds still succeed on Linux and macOS
  • Run uv run pytest -v locally
  • Run pre-commit run --all-files locally

…ruff

- Replace setup.py/setup.cfg with full pyproject.toml configuration
- Migrate CI workflow to use uv instead of pip, add test job
- Add pre-commit config with ruff (lint + format) and pyright
- Add test suite (tests/)
- Add uv.lock for reproducible builds
- Update minimum Python version to 3.9
- Apply ruff formatting to source files

Co-Authored-By: Andrew Van <vanandrew77@gmail.com>
- Add pytest-cov to test dependencies
- Configure coverage in pyproject.toml (source, omit _version.py)
- Upload coverage report to Codecov on Python 3.11 CI runs

Co-Authored-By: Andrew Van <vanandrew77@gmail.com>
uv's managed Python builds lack shared libraries required by PyInstaller.
Use system Python (via setup-python on macOS, python3.11-devel on manylinux)
and --python-preference system to ensure shared libs are available.

Co-Authored-By: Andrew Van <vanandrew77@gmail.com>
@codecov

codecov Bot commented Mar 14, 2026

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

uv's managed Python lacks shared libraries required by PyInstaller.
Restore the original pip-based approach for PyInstaller build steps
while keeping uv for the test job.

Co-Authored-By: Andrew Van <vanandrew77@gmail.com>
@vanandrew
vanandrew merged commit b382b27 into main Mar 14, 2026
7 checks passed
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.

1 participant