Skip to content

[Deps] Bump USD Core to 26.5 - #6840

Closed
AntoineRichard wants to merge 1 commit into
isaac-sim:developfrom
AntoineRichard:antoiner/bump-usd-core-26-5
Closed

[Deps] Bump USD Core to 26.5#6840
AntoineRichard wants to merge 1 commit into
isaac-sim:developfrom
AntoineRichard:antoiner/bump-usd-core-26-5

Conversation

@AntoineRichard

Copy link
Copy Markdown
Collaborator

Description

Raises the kit-less usd-core dependency from >=25.11,<26.0 to
>=26.5,<27.0 so Isaac Lab picks up the upstream fix for crashes while
parsing colliders concurrently.

Newton's pinned importer metadata still declares usd-core<26.5, so this PR
adds a narrow uv override for x86_64/AMD64 until that metadata catches up. The
lock resolves usd-core 26.8 for the supported Linux x86_64 and Windows
platforms. This intentionally excludes the unrelated Newton runtime changes
from #6301.

Type of change

  • Breaking change (extensions built against USD 25 must be rebuilt against
    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 -f
  • Fresh uv resolution (472 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

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made the corresponding changelog update
  • My changes generate no new warnings
  • I have added a changelog fragment for every touched package
  • My name already exists in CONTRIBUTORS.md

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.
@AntoineRichard
AntoineRichard requested a review from a team August 1, 2026 07:52
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels Aug 1, 2026
@greptile-apps

greptile-apps Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR upgrades kit-less OpenUSD from the USD 25 ABI to USD 26 and overrides Newton's stale resolver constraint.

  • Raises the x86_64/AMD64 usd-core range to >=26.5,<27.0.
  • Resolves usd-core 26.8 for Linux x86_64 and Windows.
  • Updates the dependency guard and adds a breaking-change changelog fragment.
  • Leaves the now-obsolete single-threaded OpenUSD rendering workaround enabled.

Confidence Score: 4/5

The 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

Filename Overview
pyproject.toml Raises the kit-less USD dependency and adds the Newton override, but does not retire the concurrency workaround whose removal condition is now satisfied.
uv.lock Records the new override and resolves usd-core 26.8 wheels for supported Linux x86_64 and Windows targets.
source/isaaclab/test/cli/test_source_package_metadata.py Updates the metadata assertion to enforce the new USD 26 dependency range.
source/isaaclab/changelog.d/antoiner-usd-core-26-5.major.rst Clearly documents the ABI-breaking dependency upgrade and required extension rebuild.

Reviews (1): Last reviewed commit: "Bump USD Core to 26.5" | Re-trigger Greptile

Comment thread pyproject.toml
# 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'",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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!

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.5 bound.
  • Implementation: The lockfile correctly resolves usd-core 26.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.

Comment thread pyproject.toml
# 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'",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.

@kellyguo11

Copy link
Copy Markdown
Contributor

We tried to do this in #6521 but decided against it because it causes a mismatch in versions with kit

@AntoineRichard

Copy link
Copy Markdown
Collaborator Author

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants