Skip to content

Adopt uv for Python environment management #5853

@tongyx361

Description

@tongyx361

Feature request

Adopt uv as the standard Python environment and dependency manager for verl. This includes resolving existing dependency conflicts and migrating from pip to uv across the project.

Motivation

uv offers faster installs and reproducible environments, but uv sync requires the full dependency tree to resolve cleanly. Currently it fails due to dependency conflicts such as:

  • pyext==0.7 is incompatible with Python >= 3.12 (uses removed inspect.getargspec)
  • sglang and vllm optional dependencies have conflicting torchaudio version requirements
  • There may be other undiscovered conflicts

These conflicts also affect pip users but are silently ignored — uv surfaces them explicitly.

Your contribution

Attempted in #5846 but reverted — needs dedicated work to:

  1. Audit and resolve all dependency conflicts in setup.py / pyproject.toml
  2. Fix or replace incompatible dependencies (e.g., pyext)
  3. Add PEP 735 [dependency-groups] (e.g., dev group for pre-commit, py-spy, hydra-core)
  4. Update CI workflows and docs to use uv

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions