Skip to content

v4.2.0: Modernize Build System and Development Tooling

Choose a tag to compare

@agude agude released this 18 Jan 00:37
· 90 commits to main since this release

Release Notes:

This release modernizes the project's build system and development tooling. It migrates from legacy setup.py to modern Python packaging standards, adds automated linting and formatting, and updates CI/CD workflows.

There are no breaking changes to the CLI or database schema in this release.

What's New

  • Modern Python Packaging: Migrated from setup.py to pyproject.toml using hatchling as the build backend. This removes the pypandoc dependency and enables native markdown README support on PyPI.

  • UV Package Manager: Adopted UV for fast, reproducible dependency management. A uv.lock file is now included for consistent environments across development and CI.

  • Ruff Linting and Formatting: Added Ruff for linting and code formatting. The codebase has been reformatted for consistency, imports are sorted, and string formatting modernized to f-strings.

  • Updated CI/CD Workflows: GitHub Actions workflows now use UV for installation and include Ruff checks. The release workflow uses reusable workflows to eliminate duplication. All actions updated to current versions (checkout v6, setup-uv v7, pypi-publish v1.13).

  • Dependabot Configuration: Added Dependabot for automated monthly updates to GitHub Actions and UV dependencies.

  • Justfile Task Runner: Added a Justfile for common development commands. Run just to see available tasks including test, lint, format, build, and check.

  • Python Version Support: Updated supported Python versions to 3.10–3.14. Dropped Python 3.8 and 3.9 which are in security-only maintenance.