[Deps] Bump USD Core to 26.5 - #6840
Conversation
Raise the kit-less OpenUSD dependency floor to include the upstream\nmultithreaded physics parser fix. Override Newton's stale importer bound\nuntil its published metadata catches up.
Greptile SummaryThe PR upgrades kit-less OpenUSD from the USD 25 ABI to USD 26 and overrides Newton's stale resolver constraint.
Confidence Score: 4/5The PR appears safe to merge, with a non-blocking cleanup needed to re-enable OpenUSD worker concurrency in kit-less rendering. The dependency and lock changes consistently select USD 26 for the stated supported platforms, but the rendering harness still forces PXR_WORK_THREAD_LIMIT=1 even though the upgraded minimum fixes the race that required it. Files Needing Attention: pyproject.toml and source/isaaclab/test/rendering/rendering_test_utils.py Important Files Changed
Reviews (1): Last reviewed commit: "Bump USD Core to 26.5" | Re-trigger Greptile |
| # they must never co-install: usd-core supplies pxr where it has wheels (x86_64), | ||
| # usd-exchange supplies it on aarch64 (where usd-core has no wheel). | ||
| "usd-core>=25.11,<26.0 ; platform_machine == 'x86_64' or platform_machine == 'AMD64'", | ||
| "usd-core>=26.5,<27.0 ; platform_machine == 'x86_64' or platform_machine == 'AMD64'", |
There was a problem hiding this comment.
Obsolete concurrency workaround remains
Raising the minimum to usd-core>=26.5 satisfies the documented condition for removing PXR_WORK_THREAD_LIMIT=1, but the rendering harness still disables OpenUSD worker concurrency, increasing kit-less workflow runtime and leaving the upgraded concurrent path untested.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Isaac Lab Review Bot
The USD 26 dependency update and lockfile are internally consistent for project-level uv sync, but the published wheel metadata retains an unresolved conflict between usd-core>=26.5 and Newton importers requiring usd-core<26.5.
- Design and architecture: The Newton compatibility workaround is implemented only through
[tool.uv].override-dependencies. Because that override is not part of distributed wheel metadata, it does not protect the documented wheel installation path. - API: The breaking USD ABI range is clearly declared and documented in the major changelog fragment with rebuild guidance. However, the resulting published dependency contract is unsatisfiable on x86_64/AMD64 while the selected Newton importer metadata retains its
<26.5bound. - Implementation: The lockfile correctly resolves
usd-core26.8 for the configured Linux x86_64 and Windows environments, and the metadata guard reflects the new range. Before merge, the wheel-install producer/consumer path needs a distributed Newton requirement compatible with USD 26.5+, or the change must wait for corrected upstream Newton metadata.
Minor fixes needed. Posted 1 actionable finding inline.
The full PR diff was reviewed; some supplemental surrounding file context was omitted.
Automated review; human maintainers own approval decisions.
| # they must never co-install: usd-core supplies pxr where it has wheels (x86_64), | ||
| # usd-exchange supplies it on aarch64 (where usd-core has no wheel). | ||
| "usd-core>=25.11,<26.0 ; platform_machine == 'x86_64' or platform_machine == 'AMD64'", | ||
| "usd-core>=26.5,<27.0 ; platform_machine == 'x86_64' or platform_machine == 'AMD64'", |
There was a problem hiding this comment.
🟡 Warning · Design Architecture — USD floor conflicts with Newton on wheel install path
project.dependencies now requires usd-core>=26.5 alongside newton[sim,importers]>=1.2.0, whose importer metadata still caps usd-core<26.5 (as stated by the new comment at line 384). The compensating fix lives only in [tool.uv] override-dependencies, which line 93 documents as uv sync only and which is not emitted into wheel metadata. The documented uv pip install <wheel>[extras] path exercised by install_ci/uv_pip/ would then be unresolvable. Constrain the distributed Newton requirement or wait for its metadata fix.
|
We tried to do this in #6521 but decided against it because it causes a mismatch in versions with kit |
Not anymore since Kit moved in this version no? Wasn't that the whole point of migrating to this Kit version? |
Description
Raises the kit-less
usd-coredependency from>=25.11,<26.0to>=26.5,<27.0so Isaac Lab picks up the upstream fix for crashes whileparsing colliders concurrently.
Newton's pinned importer metadata still declares
usd-core<26.5, so this PRadds a narrow uv override for x86_64/AMD64 until that metadata catches up. The
lock resolves
usd-core 26.8for the supported Linux x86_64 and Windowsplatforms. This intentionally excludes the unrelated Newton runtime changes
from #6301.
Type of change
USD 26)
Screenshots
Not applicable.
Verification
./isaaclab.sh -p -m pytest source/isaaclab/test/cli/test_source_package_metadata.py(
2 passed)./isaaclab.sh -p tools/changelog/cli.py check develop./isaaclab.sh -f472 packages,usd-core 26.8)No new test was added; the existing hard-coded USD dependency guard was
updated for the new ABI range.
Checklist
./isaaclab.sh --formatCONTRIBUTORS.md