diff --git a/docker/Dockerfile.eval-base b/docker/Dockerfile.eval-base index 3b70764ff..a53246cfe 100644 --- a/docker/Dockerfile.eval-base +++ b/docker/Dockerfile.eval-base @@ -20,7 +20,10 @@ ARG PYTHON_VERSION=3.12 ENV DEBIAN_FRONTEND=noninteractive \ MUJOCO_GL=egl \ - PATH=/lerobot/.venv/bin:$PATH + PATH=/lerobot/.venv/bin:$PATH \ + # cmake 4.x removed backward compat with cmake_minimum_required < 3.5. + # This env var re-enables it so packages like egl-probe can compile. + CMAKE_POLICY_VERSION_MINIMUM=3.5 RUN apt-get update && apt-get install -y --no-install-recommends \ software-properties-common build-essential git curl \ diff --git a/docker/build_benchmark_images.sh b/docker/build_benchmark_images.sh index a9fb0b62c..c96fd6d77 100755 --- a/docker/build_benchmark_images.sh +++ b/docker/build_benchmark_images.sh @@ -8,6 +8,9 @@ # # Build and push to Docker Hub under your org # bash docker/build_benchmark_images.sh --push --hub_org=pepijn223 # +# # Force-rebuild base image (e.g. after Dockerfile.eval-base changes) +# bash docker/build_benchmark_images.sh --no-cache-base --push --hub_org=pepijn223 +# # # Build only specific benchmarks # bash docker/build_benchmark_images.sh --benchmarks="libero_plus robomme" # @@ -23,12 +26,14 @@ set -euo pipefail PUSH=false HUB_ORG="" BENCHMARKS="libero libero_plus robomme robocasa" +NO_CACHE_BASE=false for arg in "$@"; do case "$arg" in --push) PUSH=true ;; --hub_org=*) HUB_ORG="${arg#*=}" ;; --benchmarks=*) BENCHMARKS="${arg#*=}" ;; + --no-cache-base) NO_CACHE_BASE=true ;; *) echo "Unknown arg: $arg"; exit 1 ;; esac done @@ -44,8 +49,14 @@ fi ok() { echo "[OK] $*"; } fail() { echo "[FAIL] $*"; exit 1; } +BASE_CACHE_FLAG="" +if [[ "$NO_CACHE_BASE" == "true" ]]; then + BASE_CACHE_FLAG="--no-cache" +fi + echo "=== Building lerobot-eval-base ===" docker build \ + ${BASE_CACHE_FLAG} \ -f "${SCRIPT_DIR}/Dockerfile.eval-base" \ -t lerobot-eval-base:latest \ "${REPO_ROOT}" || fail "lerobot-eval-base build failed" diff --git a/pyproject.toml b/pyproject.toml index a000ffece..fc556dbb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -174,7 +174,16 @@ video_benchmark = ["scikit-image>=0.23.2,<0.26.0", "pandas>=2.2.2,<2.4.0"] # NOTE: Explicitly listing scipy helps flatten the dependecy tree. aloha = ["gym-aloha>=0.1.2,<0.2.0", "lerobot[scipy-dep]"] pusht = ["gym-pusht>=0.1.5,<0.2.0", "pymunk>=6.6.0,<7.0.0"] # TODO: Fix pymunk version in gym-pusht instead -libero = ["lerobot[transformers-dep]", "hf-libero>=0.1.3,<0.2.0; sys_platform == 'linux'", "lerobot[scipy-dep]"] +libero = [ + "lerobot[transformers-dep]", + "hf-libero>=0.1.3,<0.2.0; sys_platform == 'linux'", + # hf-egl-probe is the fixed fork of egl-probe (robomimic transitive dep). + # egl-probe's CMakeLists.txt requires cmake_minimum_required < 3.5 which + # modern cmake rejects. Installing hf-egl-probe first satisfies the egl_probe + # import without source compilation. + "hf-egl-probe>=1.0.1; sys_platform == 'linux'", + "lerobot[scipy-dep]", +] libero_plus = [ "lerobot[transformers-dep]", "hf-egl-probe>=1.0.1; sys_platform == 'linux'",