OEP-67: Add uv and pyproject.toml as backend standards, archive OEP-18#784
OEP-67: Add uv and pyproject.toml as backend standards, archive OEP-18#784
Conversation
|
@feanil: Is there any need for a DEPR for the migration? Possibly not. I haven't thought this through. Just asking. Thanks. |
ce55ef0 to
ca4fbd9
Compare
|
I don't think this needs a DEPR. I'm planning on announcing pretty widely before merging this which I think will be sufficient. If others feel strongly that there should be a corresponding DEPR. I'm happy to have them create/manage that DEPR and I can follow its schedule for merging this. |
|
@feanil: You can decide. Fast track DEPR is obviously an option that wouldn't affect your schedule, and it might just widen your inform, for those that listen for DEPRs. Something to consider. Thanks and good luck. |
sarina
left a comment
There was a problem hiding this comment.
This is great, thanks for putting it together. Added a couple nits to be addressed but I don't need to re-review.
ca4fbd9 to
6ca7eaf
Compare
Add pyproject.toml (PEP 621/735) and uv as backend technology standards in OEP-67, with a new backend ADR documenting the decision to replace pip-tools. Archive OEP-18 (Python Dependency Management) as Replaced, following the same pattern used when OEP-11 was superseded by OEP-67. References: - PEP 621: https://peps.python.org/pep-0621/ - PEP 735: https://peps.python.org/pep-0735/ - uv docs: https://docs.astral.sh/uv/ - Jazzband sunsetting: https://jazzband.co/news/2026/03/14/sunsetting-jazzband Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6ca7eaf to
ebac6f2
Compare
Co-authored-by: Piotr Surowiec <piotr@surowiec.it>
Summary
Add two backend technology entries to OEP-67:
pyproject.toml(PEP 621/735) for declaring project metadata and dependencies, anduvfor dependency locking and virtual environment management.Add the first backend ADR (
decisions/backend/0001-uv.rst) documenting the decision to adopt uv over pip-tools, Poetry, and PDM. Includes comprehensive examples (pyproject.toml, tox.ini, common commands).Archive OEP-18 (Python Dependency Management) as Replaced, following the same pattern used when OEP-11 was superseded by OEP-67.
Why now
The Python packaging ecosystem has standardized on
pyproject.tomlfor project metadata (PEP 621) and dependency groups (PEP 735). uv provides a fast, unified tool that natively supports these standards — consolidating dependency resolution, locking, venv management, and tool execution.Meanwhile, pip-tools (the current OEP-18 standard) does not support PEP 735 dependency groups, and Jazzband — the organization maintaining pip-tools — is sunsetting, raising questions about long-term maintenance.
Open edX repositories should adopt
pyproject.toml+uvas the standard approach for Python dependency management. The existingmake upgradeworkflow is preserved — the target runsuv lock --upgradeinstead ofpip-compile --upgrade. OEP-18's pip-tools workflow should be superseded.Rendered Versions of Changed Pages
uvProof-of-concept migrations
edx_lint write_uv_constraintscommand for shared constraints