From ee3354a8853387fa7905921fcf920a113242b33a Mon Sep 17 00:00:00 2001 From: Pepijn Date: Sun, 22 Mar 2026 20:57:14 -0700 Subject: [PATCH] fix(docker): fix libero_plus deps by replacing git dep with lerobot[libero] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The libero @ git+...@main dep had empty install_requires, causing uv to skip robosuite (and other deps) during resolution — they appeared "already resolved" from a stale git dep cache even though not installed. Fix: use lerobot[libero] as the dep source (hf-libero properly declares all deps including robosuite via robomimic). The LIBERO-plus Python module is installed from the git clone with --no-deps, so hf-libero's declared deps are used but LIBERO-plus's environments override via .pth. Also remove egl_probe (broken original) duplicate alongside hf-egl-probe. Co-Authored-By: Claude Sonnet 4.6 --- docker/Dockerfile.eval-libero-plus | 4 ++++ pyproject.toml | 13 +++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile.eval-libero-plus b/docker/Dockerfile.eval-libero-plus index 9e726f2a0..fc47cdaca 100644 --- a/docker/Dockerfile.eval-libero-plus +++ b/docker/Dockerfile.eval-libero-plus @@ -15,7 +15,11 @@ FROM lerobot-eval-base:latest RUN uv pip install --no-cache ".[libero_plus]" \ + # Clone LIBERO-plus; its setup.py has empty install_requires so deps come from the + # lerobot[libero] extra above. Install the package to get LIBERO-plus environments, + # then add a .pth so the libero module can locate its data files at runtime. && git clone --depth 1 https://github.com/sylvestf/LIBERO-plus.git /tmp/LIBERO-plus \ + && uv pip install --no-cache --no-deps /tmp/LIBERO-plus \ && python -c "import pathlib, site; pathlib.Path(site.getsitepackages()[0], 'libero_plus_repo.pth').write_text('/tmp/LIBERO-plus\n')" \ && python -c "import libero, robosuite, bddl" diff --git a/pyproject.toml b/pyproject.toml index fc556dbb8..a21349b2a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -185,20 +185,17 @@ libero = [ "lerobot[scipy-dep]", ] libero_plus = [ - "lerobot[transformers-dep]", - "hf-egl-probe>=1.0.1; sys_platform == 'linux'", - "egl_probe>=1.0.1; sys_platform == 'linux'", - "libero @ git+https://github.com/sylvestf/LIBERO-plus.git@main ; sys_platform == 'linux'", - # LIBERO-plus setup.py has empty install_requires; declare its runtime deps here. - "robosuite>=1.4.0,<1.5.0; sys_platform == 'linux'", + # Inherit all of libero's deps (hf-libero → robosuite/robomimic/egl-probe/scipy/transformers). + # LIBERO-plus extends LIBERO with extra task suites; its Python module is installed + # from the git clone in Dockerfile.eval-libero-plus (overrides hf-libero via .pth). + "lerobot[libero]", + # Additional runtime deps declared by LIBERO-plus but absent from its setup.py: "bddl>=1.0.1,<2.0.0; sys_platform == 'linux'", "future; sys_platform == 'linux'", # bddl transitive dep not declared in its metadata - "robomimic>=0.2.0,<0.3.0; sys_platform == 'linux'", "easydict>=1.9; sys_platform == 'linux'", "wand; sys_platform == 'linux'", "scikit-image>=0.20.0; sys_platform == 'linux'", "gym>=0.25.0,<0.27.0; sys_platform == 'linux'", - "lerobot[scipy-dep]", ] libero-plus = ["lerobot[libero_plus]"] robomme = [