From 3d6310c03de25919ac9db3f6b05d7ceb7dada6ca Mon Sep 17 00:00:00 2001 From: Pepijn Date: Sun, 22 Mar 2026 21:34:50 -0700 Subject: [PATCH] fix(docker): also override numpy==1.26.4 for robomme image mani-skill==3.0.0b21 requires numpy<2.0.0 in addition to gymnasium==0.29.1, both conflicting with lerobot's base requirements. numpy 1.26.4 is runtime-compatible with lerobot's usage (no numpy 2.x-only APIs are used in the eval worker or env wrappers). Co-Authored-By: Claude Sonnet 4.6 --- docker/Dockerfile.eval-robomme | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile.eval-robomme b/docker/Dockerfile.eval-robomme index ed63990dd..1eb78603d 100644 --- a/docker/Dockerfile.eval-robomme +++ b/docker/Dockerfile.eval-robomme @@ -14,12 +14,13 @@ FROM lerobot-eval-base:latest -# robomme → mani-skill==3.0.0b21 → gymnasium==0.29.1, conflicting with -# lerobot's gymnasium>=1.1.1 requirement. Override allows the install. -# Both gymnasium 0.29.x and 1.x use the same 5-tuple step() API (since -# gym 0.26), so the eval worker is compatible with the downgraded version. -RUN printf 'gymnasium==0.29.1\n' > /tmp/gym_override.txt \ - && uv pip install --no-cache --override /tmp/gym_override.txt ".[robomme]" \ +# mani-skill==3.0.0b21 (robomme dep) pins gymnasium==0.29.1 and numpy<2.0.0, +# conflicting with lerobot's gymnasium>=1.1.1 and numpy>=2.0.0. +# Both overrides are safe at runtime: +# - gymnasium 0.29.x has the same 5-tuple step() API as 1.x (since gym 0.26) +# - numpy 1.26.4 is API-compatible with lerobot's actual usage (no 2.x-only APIs used) +RUN printf 'gymnasium==0.29.1\nnumpy==1.26.4\n' > /tmp/robomme_override.txt \ + && uv pip install --no-cache --override /tmp/robomme_override.txt ".[robomme]" \ && python -c "import robomme" CMD ["/bin/bash"]