Skip to content

Fix MuJoCo Warp CI dependency installation - #2298

Closed
shi-eric wants to merge 1 commit into
NVIDIA:mainfrom
shi-eric:ershi/fix-mujoco-warp-ci
Closed

shi-eric wants to merge 1 commit into
NVIDIA:mainfrom
shi-eric:ershi/fix-mujoco-warp-ci

Conversation

@shi-eric

@shi-eric shi-eric commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

What problem are you trying to solve?

The MuJoCo Warp integration job fails during test collection with AttributeError: module 'mujoco' has no attribute 'mjtTendon'. Upstream mujoco_warp#1927 switched to mujoco-core>=4.0.0, which provides the Python module named mujoco. Warp CI also explicitly installs the old mujoco distribution; the two wheels overwrite files in the same package.

What does this change?

Remove the explicit mujoco requirement from the GitHub job and both GitLab jobs, letting upstream mujoco_warp select its MuJoCo dependency. Keep testing upstream main and preserve the existing test commands, CUDA artifacts, runners, scheduling, and failure policies.

Report mujoco-core metadata in GitHub, preserving its resolved-commit link. Add mujoco-core version and exact mujoco_warp SHA reporting to both GitLab jobs using direct_url.json and uv run --no-sync python.

Existing pull requests

  • I searched open pull requests for duplicate or overlapping work.
  • Related pull requests: None found.

Validation

  • Regression validation: In a fresh Python 3.12 environment, the corrected install resolved mujoco_warp main to 60dbbdf5fb387181ade656bb9d2c13162c3bec51, the same SHA as the failing run. It installed mujoco-core==4.0.2.dev1019107346 without the old mujoco distribution; import mujoco; import mujoco_warp and mujoco.mjtTendon.mjTENDON_FIXED succeeded. Printed mujoco.__version__ (4.0.2) and its virtual-environment module path. Confirmed the old GitHub metadata lookup fails in this corrected environment.
  • Serial environment: A second fresh Python 3.12 environment using GitLab's serial install sequence (only pytest added) also passes both imports and the extracted reporting block. The old mujoco, JAX, and xdist distributions are absent.
  • NVIDIA GPU: The GitHub MuJoCo Warp GPU job passed on an NVIDIA RTX PRO 6000 Blackwell Server Edition: 3,609 passed, 38 skipped, 25 warnings in 607.28 seconds. The primary four-worker test step passed; the serial rerun was skipped. CI logs confirm Warp commit f41911963b7305eb28a7602cc98226c89a9d08a7, mujoco-core==4.0.2.dev1019107346, and upstream mujoco_warp SHA 60dbbdf5fb387181ade656bb9d2c13162c3bec51. The GitLab jobs have not been run; their installation and reporting changes were checked locally.
  • Other validation: Installed Warp from the current checkout and mujoco_warp via its VCS URL, with pytest pytest-xdist "jax[cuda13]". Both YAML files parse, all three extracted reporting blocks execute successfully against the VCS-installed package, and GitHub's summary retains the resolved-commit link. Checks confirm all other job settings are unchanged. uv pip check, uvx pre-commit run --files .github/workflows/ci.yml .gitlab-ci.yml, and git diff --check pass.

Checklist

  • I have read and followed the Contributing Guidelines.
  • This pull request does not bundle unrelated changes unless a maintainer agreed to the broader scope.
  • My branch is up to date with main and contains one commit, unless a maintainer agreed to keep the change as multiple commits.
  • I included any required changelog fragments and used a + prefix only for changes that do not require a GitHub issue. No fragment is needed for this internal CI maintenance change.

MuJoCo Warp now depends on mujoco-core, which provides the mujoco
module. Explicitly installing mujoco as well lets the two distributions
overwrite each other's package files and breaks test collection.

Let upstream mujoco_warp choose its MuJoCo dependency in all three CI
jobs. Report the mujoco-core version and resolved upstream commit so
integration failures can be tied to the exact installed dependencies.

Signed-off-by: Eric Shi <ershi@nvidia.com>
@greptile-apps

greptile-apps Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The PR appears safe to merge.

Summary

Removes the explicit mujoco install from all three MuJoCo Warp jobs so upstream can choose its dependency.

  • MuJoCo Warp CI jobs let upstream mujoco_warp select MuJoCo and report what they install.

No actionable issues found. GPU suites were not run during this review.

Reviews (1) · Last reviewed commit: "Fix MuJoCo Warp CI dependency installati..." · Reviewed by Greptile

@coderabbitai

coderabbitai Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Chores
    • Updated automated test workflows to report the versions of the MuJoCo components being tested and to use a consistent installation approach across test jobs. The workflows continue to include relevant test tools and record the MuJoCo Warp revision used.

The MuJoCo Warp CI jobs no longer install mujoco directly. They report the installed mujoco-core version. GitLab jobs also report the MuJoCo Warp source commit.

Changes: MuJoCo Warp CI

Layer / File(s) Summary
CI dependency and version reporting
.github/workflows/ci.yml, .gitlab-ci.yml
The jobs omit direct installation of mujoco and report the installed mujoco-core version. GitLab jobs also report the MuJoCo Warp source commit. The GitHub workflow retains its existing commit reporting.

Suggested reviewers: christophercrouzet

Change: Bug fix

Merge Risk: Minimal · up to f4191

This CI-only change removes the conflicting mujoco install and adds dependency reporting. No concrete merge-blocking risk was found. The GPU jobs will validate it when CI runs.

Architecture risk: Low · up to f4191

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/ci.yml: The dependency installation drops mujoco while retaining the editable project, MuJoCo Warp from main, pytest, pytest-xdist, and jax[cuda13].
  • observed — Modified behavior in .github/workflows/ci.yml: The report now reads and prints the mujoco-core distribution version instead of the mujoco version, and writes that version under the mujoco-core label in the GitHub step summary; MuJoCo Warp commit reporting remains.
  • observed — Modified behavior in .gitlab-ci.yml: The parallel MuJoCo Warp job removes the direct mujoco installation and adds a step that prints the installed mujoco-core version and the mujoco-warp source commit from its distribution metadata. The job continues to install pytest, pytest-xdist, and CUDA 13 JAX.
  • observed — Modified behavior in .gitlab-ci.yml: The serial MuJoCo Warp job removes the direct mujoco installation and adds the same version and source-commit reporting step. It continues to install pytest.
Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title "Fix MuJoCo Warp CI dependency installation" names the main change: the CI jobs stop explicitly installing the conflicting mujoco distribution and report mujoco-core instead. It is short…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description is specific and related to the changeset. It explains the failing MuJoCo Warp CI job (AttributeError on mjtTendon) caused by the explicit mujoco distribution conflicting with mujoco-co…
Full details: Title check

Explanation

The title "Fix MuJoCo Warp CI dependency installation" names the main change: the CI jobs stop explicitly installing the conflicting mujoco distribution and report mujoco-core instead. It is short, specific, and matches the GitHub and GitLab changes in the summary.

Full details: Description check

Explanation

The description is specific and related to the changeset. It explains the failing MuJoCo Warp CI job (AttributeError on mjtTendon) caused by the explicit mujoco distribution conflicting with mujoco-core. It lists the changes: removing the explicit mujoco requirement from the GitHub job and both GitLab jobs, and adding mujoco-core version and mujoco_warp SHA reporting. It also gives validation results for the GitHub GPU job and local GitLab checks. The raw summary matches these changes.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

  • Source mode: Auto
  • Repository: NVIDIA/warp
  • Branch: main
  • File: .coderabbit.yml
  • Commit: 9583c0b
  • Layers: Repository YAML
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 32af6c3b-6673-4069-930f-419cfc090324
Commits

Reviewing files that changed from the base of the PR and between 9583c0b and f419119.

Files selected for processing: 2

  • .github/workflows/ci.yml
  • .gitlab-ci.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

@shi-eric shi-eric closed this Nov 13, 2026
@shi-eric
shi-eric deleted the ershi/fix-mujoco-warp-ci branch November 13, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant