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 4 commits 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
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.
|
Thanks for the thorough review, @irfanuddinahmad! Both points addressed in the latest commit:
|
- 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>
73bc979 to
216e624
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
216e624 to
a4779f4
Compare
- Mock chdb at autodoc time (fails to initialize on macOS) - Add -f to sphinx-apidoc so stale RST files are overwritten on each build - Remove unsupported logo_only theme option from sphinx_book_theme - Fix get_config docstring RST indentation (unexpected indent warning) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fa7dcbe to
b20ffef
Compare
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.
Quality / Docs CI
These envs were added to the CI matrix in this PR. All failures fixed are pre-existing (master never ran these checks in CI):
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