build: Modernize xapi-db-load: migrate to uv, pyproject.toml, PEP 735 dependency groups#258
build: Modernize xapi-db-load: migrate to uv, pyproject.toml, PEP 735 dependency groups#258farhan wants to merge 1 commit into
Conversation
9df6443 to
14e3d2a
Compare
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 ☂️ |
1cd60ea to
fe06549
Compare
- Replace setup.py/setup.cfg with pyproject.toml (PEP 621 static metadata) - Switch from pip-compile to uv with PEP 735 dependency groups; commit uv.lock - Update tox.ini to use tox-uv>=1 and uv-venv-lock-runner - Update CI to use astral-sh/setup-uv; SHA-pin all actions - Migrate .coveragerc config into pyproject.toml - Update Makefile: upgrade → uv lock --upgrade; requirements → uv sync - Remove requirements/ directory and stale config files - Retain pylint/isort/pycodestyle/pydocstyle/mypy as quality linters - Add static version = "3.1.0", replace hardcoded __version__ with importlib.metadata - Remove setuptools-scm, dynamic version, and redundant base dependency group - Fix sdist: include xapi_db_load/tests, prune example_configs/logs/private_configs - Remove deprecated license classifier superseded by PEP 639 - Remove codecov.yml with invented patch coverage threshold - Add doc8 to doc dependency group, remove twine duplicate Part of openedx/public-engineering#506 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fe06549 to
48832c3
Compare
irfanuddinahmad
left a comment
There was a problem hiding this comment.
Solid migration overall — dependency list matches 1:1 with the old requirements/base.in, version handling is consistent, and I also want to flag a nice incidental fix: MANIFEST.in's recursive-include xapi-db-load ... (hyphen — never matched the real xapi_db_load package dir) is corrected to the underscore form. Worth a line in the PR description since it's a real behavior change, not just tooling.
One gap worth closing before merge:
tox.ini's envlist gains docs and quality (envlist = py312, docs, quality), and both env definitions are correctly wired to dependency_groups. But .github/workflows/ci.yml's matrix still only runs toxenv: [py]. So make quality (pylint/pycodestyle/pydocstyle/mypy/isort) and the docs build still never run in CI — same gap as before this PR, but now that the scaffolding exists, it'd be low-cost to close it. forum#283 (same author, same day) does add quality/docs to its CI matrix — worth matching that here for consistency.
Important
PR implemented with the assistance of Claude Code. Refined and validated before being submitted for code review.
Modernize `xapi-db-load`
Part of openedx/public-engineering#506
Summary
Removed/Updated
Deleted files: `setup.py`, `setup.cfg`, `requirements/`, `.coveragerc`, `codecov.yml`
Updated Makefile targets:
Versioning
`version = "3.1.0"` declared directly in `pyproject.toml` — master had no PyPI publish workflow, so `setuptools-scm` is not used and the version is bumped manually on each release tag.
Important Notes
Testing Notes
This PR has not been manually tested against the repo's own features. Testing relied on CI checks and local agent tooling (`make requirements`, `make lint`, `make test`, `python -m build`). Repo-owner is encouraged to run the repo's feature tests before merging.
🤖 Generated with Claude Code