Commit bc3ebea
authored
[Bump] Bump Newton to 1.6.0rc1 for newton#4017 (#7445)
## Summary
- Bumps Newton from `1.5.1` to `1.6.0rc1`, the first release carrying
[newton#4017](newton-physics/newton#4017),
unblocking the MuJoCo tendon adapter that PR #7161 needs.
- `warp-lang` and `mujoco`/`mujoco-warp` move with it, because
`1.6.0rc1` requires them.
- Pins `newton[sim]` in `[project].dependencies` as well, so a wheel
built from this metadata resolves the fix rather than falling back to
the newest stable.
- Updates test literals in `isaaclab` and `isaaclab_newton` for Newton's
new actuator class names, and asks for a determinism guarantee in the
manipulation determinism test.
# Description
`resolve_fixed_tendon_actuator_columns` reads `mujoco.actuator_trntype`
through an
`ArticulationView`. Every Newton 1.5.x release rejects that with *"has
custom frequency
'mujoco:actuator' which is not supported by ArticulationView"*;
newton#4017 makes
`ArticulationView` generic over custom frequencies.
`1.6.0rc1` (published 2026-09-03) is the first release containing that
fix — verified two ways:
the merge commit `4055a159` is an ancestor of `v1.6.0rc1`, and
`custom_frequency_label_attributes`,
the symbol the fix introduces in `newton/_src/sim/model.py`, is present
at `v1.6.0rc1` and absent
at `v1.5.1`. No `1.6.0` final exists yet, and no 1.5.x backport carries
the fix, so `1.6.0rc1` is
the only released option.
The release requires `warp-lang>=1.17.0` and `mujoco-warp~=3.12.0`, so
those pins move too:
| Package | Before | After |
| --- | --- | --- |
| `newton[sim]` | `1.5.1` | `1.6.0rc1` |
| `warp-lang` | `1.16.0` | `1.17.0` |
| `mujoco` | `3.11.0` | `3.12.0` |
| `mujoco-warp` | `3.11.0` | `3.12.0` |
`warp-lang` is pinned to the `1.17.0` release rather than left as
`>=1.17.0`: Newton's prerelease
enables prerelease resolution, and an unbounded bound then resolves to a
nightly
(`1.18.0.dev20260903`).
## Wheel installs get the pin too
`[tool.uv].override-dependencies` only reaches `uv sync`, so it does not
constrain a wheel built
from this metadata. `1.6.0rc1` is a prerelease, which a default resolve
skips, so a loose bound
resolved `newton 1.5.1` — without newton#4017, the fix this bump exists
to deliver. Since
`wheel.yml` builds on every push to `develop`, that would have shipped.
`[project].dependencies` now pins `newton[sim]==1.6.0rc1`, matching the
override. A default
resolve of the new metadata returns `1.6.0rc1` under both `uv pip
compile` and `pip download`,
with no `--pre` flag. `isaacsim-core==6.0.1.0` requires
`newton[sim]==1.2.1`, so installing the
`isaacsim` extra still needs an override — exactly as on `develop`,
which carries an equally
exact pin in the same place.
## Newton actuator class rename
`1.6.0rc1` introduces `DrivePD` / `DriveNeuralMLP` / `DriveNeuralLSTM`
alongside the existing
`ControllerPD` / `ControllerNeural*`. Both names remain importable, so
this is **not** a breaking
API change and no production code changes. Tests in `isaaclab` and
`isaaclab_newton` assert on the
class name Newton *constructs with*, which switched to the `Drive*`
form, so those literals are
updated.
## Determinism
`test_manipulation_env_determinism[cuda-Isaac-Open-Drawer-Franka]`
failed on this branch in CI.
Two separate questions: whether the bump caused it, and why it failed at
all.
**Not caused by the bump.** Each arm was run 5x on the same machine,
because a single run of an
intermittent test samples a coin rather than measuring it:
| GPU | develop pins (`newton 1.5.1` / `warp 1.16.0` / `mujoco 3.11.0`)
| this PR (`newton 1.6.0rc1` / `warp 1.17.0` / `mujoco 3.12.0`) |
| --- | --- | --- |
| RTX PRO 6000 Blackwell | 3 / 5 failed | 3 / 5 failed |
| L40 | 3 / 3 passed | 4 / 4 passed |
Both pin sets fail at the same rate on Blackwell and both are clean on
L40, so the failure is
hardware-dependent, not version-dependent. Intermediate Newton revisions
(the commits before and
at [newton#4119](newton-physics/newton#4119),
the MuJoCo 3.12 bump) show
the same behaviour, so neither Warp 1.17, MuJoCo 3.12, nor #4119 is
implicated.
**Why it failed.** The test asserted bit-reproducible rewards without
ever asking for a
determinism guarantee. Newton defaults to
`wp.DeterministicMode.NOT_GUARANTEED`, under which
Warp's atomics may accumulate in any order, so two runs of the same
environment are not required
to agree — the assertion was stricter than the configuration it ran
under, and whether it held
came down to GPU scheduling.
The Newton-backed case now passes `deterministic_mode="run_to_run"`,
which is exactly the
guarantee this test asserts: one device, one process, run twice.
`deterministic_mode` is a Newton
setting, so the PhysX-backed `IsaacContrib-Lift-Cube-Franka` case leaves
it unset and the helper
keeps asserting that the mode is only applied to a `NewtonCfg` backend.
This is a
test-configuration fix, not a masking of the intermittency: the
guarantee the assertion depends
on is now actually requested.
Related: [#7561](#7561)
addresses the adjacent layer and
does not overlap this PR. Newton's solvers take a per-module
`deterministic` argument, which is
what `deterministic_mode` reaches and what this PR sets; Newton's sensor
and geometry kernels take
no such argument and fall back to the `warp.config.deterministic`
global, which #7561 raises from
the same config field in the RL entrypoint.
## Type of change
- Bug fix (non-breaking change which fixes an issue)
## Release backport
- [ ] <!-- backport-active-release --> Backport this pull request to the
active release branch after it merges into `develop`
## Validation
- `uv lock --check` — clean; the relock moves exactly the four packages
above, and the
`[project].dependencies` pin moves exactly one further lockfile line
- Default resolve of the published metadata returns `newton==1.6.0rc1`
under both
`uv pip compile` and `pip download`, with no `--pre` flag
- `uv run --frozen python -m pytest
source/isaaclab/test/cli/test_wheel_builder_metadata.py
source/isaaclab/test/cli/test_uv_run_pyproject.py` — 21 passed, which
enforces that the two generated `uv-overrides.txt` files match the
override table and that `[tool.isaaclab.versions]` mirrors the
dependency pins
- `uv run isaaclab -f` — passed
- Full Docker + Tests suite — **48 passed / 0 failed** on `b184335e80b`1 parent 493ee92 commit bc3ebea
11 files changed
Lines changed: 86 additions & 55 deletions
File tree
- source
- isaaclab_newton
- changelog.d
- test/assets
- isaaclab_tasks
- changelog.d
- test/core
- isaaclab
- changelog.d
- test
- actuators
- install_ci/uv_pip
- tools/wheel_builder
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
91 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
92 | 95 | | |
93 | 96 | | |
94 | 97 | | |
| |||
222 | 225 | | |
223 | 226 | | |
224 | 227 | | |
225 | | - | |
| 228 | + | |
226 | 229 | | |
227 | 230 | | |
228 | 231 | | |
| |||
402 | 405 | | |
403 | 406 | | |
404 | 407 | | |
405 | | - | |
406 | | - | |
407 | | - | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
408 | 411 | | |
409 | 412 | | |
410 | 413 | | |
| |||
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
| 113 | + | |
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| |||
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
Lines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
598 | 598 | | |
599 | 599 | | |
600 | 600 | | |
601 | | - | |
| 601 | + | |
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
| |||
772 | 772 | | |
773 | 773 | | |
774 | 774 | | |
775 | | - | |
| 775 | + | |
776 | 776 | | |
777 | 777 | | |
778 | 778 | | |
| |||
845 | 845 | | |
846 | 846 | | |
847 | 847 | | |
848 | | - | |
| 848 | + | |
849 | 849 | | |
850 | 850 | | |
851 | 851 | | |
852 | | - | |
| 852 | + | |
853 | 853 | | |
854 | 854 | | |
855 | 855 | | |
| |||
890 | 890 | | |
891 | 891 | | |
892 | 892 | | |
893 | | - | |
| 893 | + | |
894 | 894 | | |
895 | 895 | | |
896 | 896 | | |
897 | | - | |
| 897 | + | |
898 | 898 | | |
899 | 899 | | |
900 | 900 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
Lines changed: 9 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | | - | |
42 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
43 | 47 | | |
44 | 48 | | |
45 | 49 | | |
46 | | - | |
| 50 | + | |
47 | 51 | | |
48 | | - | |
| 52 | + | |
49 | 53 | | |
50 | 54 | | |
51 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
0 commit comments