Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,9 +12,9 @@ dependencies = [
"numpy>=1.26.0",
# URLab remote-stepping client (section 6 of plan_remote_stepping.md):
# MuJoCo version pinned to URLab's submodule build (third_party/MuJoCo
# currently at 3.8.1). mismatch is rejected at handshake unless the
# currently at 3.10.0). mismatch is rejected at handshake unless the
# caller passes mujoco_version_check=False.
"mujoco==3.8.1",
"mujoco==3.10.0",
"msgpack>=1.0.0",
# gymnasium for the URLabEnv gym adapter.
"gymnasium>=1.0.0",
Expand DownExpand Up@@ -47,15 +47,15 @@ robojudo = [
"joblib>=1.3.0",
]
# mjlab eval-time runner.
# mujoco-warp is pinned to 3.8.1 explicitly: mjlab 1.3.0 (the latest at
# the time of writing) transitively brings mujoco-warp 3.7.0.1, which
# mujoco-warp is pinned to 3.10.0.3 explicitly: mjlab 1.5.3 (the latest at
# the time of writing) transitively brings an older mujoco-warp, which
# references `mujoco.mjtEnableBit.mjENBL_MULTICCD` -- a value that was
# removed in mujoco 3.8.x. With the bridge pinned to mujoco 3.8.1, the
# removed in mujoco 3.8.x. With the bridge pinned to mujoco 3.10.0, the
# import-time enum lookup fails with AttributeError and the mjlab
# registry is silently skipped. mujoco-warp 3.8.1 has the matching API.
# registry is silently skipped. mujoco-warp 3.10.0.3 has the matching API.
mjlab = [
"mjlab",
"mujoco-warp==3.8.1",
"mujoco-warp==3.10.0.3",
"torch>=2.0.0",
]
# ROS 2 rebroadcaster: rclpy / std_msgs / sensor_msgs / cv_bridge come
Expand DownExpand Up@@ -103,4 +103,3 @@ pythonpath = ["src"]
filterwarnings = [
"ignore::DeprecationWarning",
]

29 changes: 29 additions & 0 deletions tests/test_project_metadata.py
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
# Copyright (c) 2026 Jonathan Embley-Riches. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Regression checks for the published dependency constraints."""

from __future__ import annotations

import tomllib
from pathlib import Path


def test_mujoco_dependencies_match_the_urlab_3_10_runtime():
metadata = tomllib.loads(Path("pyproject.toml").read_text())

assert "mujoco==3.10.0" in metadata["project"]["dependencies"]
assert (
"mujoco-warp==3.10.0.3" in metadata["project"]["optional-dependencies"]["mjlab"]
)