@@ -11,7 +11,7 @@ OEP-67: Standard Tools and Technologies
1111 * - Title
1212 - Tools and Technology Standards
1313 * - Last Modified
14- - 2025-02-10
14+ - 2026-04-24
1515 * - Authors
1616 - Feanil Patel <feanil@axim.org>
1717 * - Arbiter
@@ -27,7 +27,8 @@ OEP-67: Standard Tools and Technologies
2727 * - Resolution
2828 - * https://github.com/openedx/openedx-proposals/pull/518
2929 * - References
30- - :ref: `OEP-11 Front End Technology Standards `
30+ - * Replaces :ref: `OEP-11 Front End Technology Standards `
31+ * Replaces :ref: `OEP-18 Python Dependency Management `
3132
3233Abstract
3334********
@@ -327,6 +328,32 @@ they do not require disruptive migrations that would break existing MySQL
327328installations. Support for these other database backends is not guaranteed and
328329may require plugins or lag behind the official releases.
329330
331+ #. **pyproject.toml should be used to declare project metadata and dependencies **
332+
333+ **Rationale **: `PEP 621 `_ standardized project metadata in ``pyproject.toml ``,
334+ and `PEP 735 `_ added dependency groups — a standard way to declare
335+ context-specific dependencies (test, docs, CI, dev, etc.). Using
336+ ``pyproject.toml `` as the single source of truth replaces the older pattern
337+ of ``requirements/*.in `` files and ``setup.py `` / ``setup.cfg ``, simplifies
338+ tooling, and aligns with the broader Python ecosystem.
339+
340+ #. **uv should be used for Python dependency locking and virtual environment management **
341+
342+ **Rationale **: `uv `_ consolidates dependency resolution, locking, virtual
343+ environment creation, and tool execution into a single fast tool. It replaces
344+ `pip-tools `_ (``pip-compile `` / ``pip-sync ``) and produces a single
345+ ``uv.lock `` file from ``pyproject.toml `` dependency groups. The existing
346+ ``make upgrade `` pattern is preserved — the target now runs
347+ ``uv lock --upgrade `` instead of ``pip-compile --upgrade ``.
348+
349+ **Decision Record **: For details, see
350+ :ref: `Use uv for Python dependency management `.
351+
352+ .. _PEP 621 : https://peps.python.org/pep-0621/
353+ .. _PEP 735 : https://peps.python.org/pep-0735/
354+ .. _uv : https://docs.astral.sh/uv/
355+ .. _pip-tools : https://github.com/jazzband/pip-tools
356+
330357
331358Decisions
332359*********
@@ -357,7 +384,7 @@ considered.
357384 :maxdepth: 1
358385 :glob:
359386
360- .. oep-0067/decisions/backend/*
387+ oep-0067/decisions/backend/*
361388
362389
363390
@@ -368,11 +395,22 @@ Consequences
368395
369396* All ADRs under OEP-11 will be moved to be under this OEP instead.
370397
398+ * :ref: `OEP-18 Python Dependency Management ` will be superseded by the backend
399+ technology recommendations in this OEP.
400+
371401* Future decisions for technology changes will require an ADR and an update to this OEP
372402
373403Change History
374404**************
375405
406+ 2026-04-24
407+ ==========
408+
409+ * Add ``pyproject.toml `` and ``uv `` to Backend Technology Selection
410+ * Add backend ADR for adopting uv (replacing pip-tools)
411+ * Mark :ref: `OEP-18 Python Dependency Management ` as superseded
412+ * `Pull request #784 <https://github.com/openedx/openedx-proposals/pull/784 >`_
413+
3764142025-02-10
377415==========
378416
0 commit comments