Skip to content

fix(packaging): drop Newton/Warp backend to match Isaac-only re-scope (closes #89)#92

Closed
yinsong1986 wants to merge 3 commits into
strands-labs:mainfrom
yinsong1986:fix/drop-newton-warp-isaac-only
Closed

fix(packaging): drop Newton/Warp backend to match Isaac-only re-scope (closes #89)#92
yinsong1986 wants to merge 3 commits into
strands-labs:mainfrom
yinsong1986:fix/drop-newton-warp-isaac-only

Conversation

@yinsong1986

Copy link
Copy Markdown
Contributor

What

Commits the repo to Isaac-Sim-only by removing the Newton/Warp backend
from code + packaging, so they match the docs, README, and umbrella
roadmap (#8). This is Option A from #89 (the likely maintainer intent,
since #8 + the README/docs were deliberately re-scoped to Isaac-only and
all Newton issues — #18#21, #34, #37#41 — were closed).

Why

The docs/roadmap said Isaac-only, but the code and packaging still shipped a
full Newton/Warp backend: a reader following the docs would be surprised that
pip install 'strands-robots-sim[newton]' worked and
create_simulation("newton") resolved. The two disagreed; this makes them
agree.

Changes

Packaging (pyproject.toml)

  • Removed the [newton] extra (warp-lang / newton-physics).
  • Removed newton from the [all] extra; kept [all] as an alias of
    [isaac] so existing pip install 'strands-robots-sim[all]' invocations
    keep working.
  • Removed the newton and warp strands_robots.backends entry points.
  • Dropped newton/warp from keywords and the "Newton" mention from the
    package description.
  • hatch run test now collects only strands_robots_sim/isaac/tests/.

Package layout

  • Deleted strands_robots_sim/newton/ (the NewtonSimulation stub +
    tests/).
  • strands_robots_sim/__init__.py: dropped the NewtonSimulation mention.
  • isaac/{loaders,procedural,config}.py: removed stale comments pointing at
    the deleted newton module.

Docs / examples (Newton mentions + a docs↔packaging gap)

  • isaac/tests/test_entrypoint.py + docs/getting-started/installation.md:
    corrected the [isaac] dependency description — it pins
    isaacsim / isaaclab / usd-core, not warp-lang (the docs
    previously claimed warp-lang was pulled in, which was a docs-ships /
    packaging-absent gap).
  • tests/README.md, examples/MIGRATION.md, examples/mujoco_gs/README.md,
    examples/libero/libero_backend_matrix.py: dropped Newton rows / examples /
    driver references.
  • .github/workflows/test-lint.yml: dropped the Newton CI comment.

Test surface

  • hatch run lint — passes (black / isort / flake8 across
    strands_robots_sim + examples).
  • hatch run test184 passed, 31 skipped (skips are GPU-gated Isaac
    tests). No new failures introduced; the Newton stub-shape suite is removed
    along with the package it pinned.
  • import strands_robots_sim smoke — OK.

Acceptance criteria (from #89)

Out of scope (follow-ups)

  • The docs reference an isaac_sim entry-point alias
    (docs/api-reference.md, docs/architecture.md, docs/backends/isaac.md,
    docs/getting-started/installation.md, isaac/tests/test_entrypoint.py
    docstring) but pyproject.toml only declares the isaac entry point. That
    is a separate Isaac-aliasing docs↔packaging discrepancy, unrelated to
    Newton/Warp — worth its own issue rather than expanding this PR.
  • examples/so101_curobo/* references to warp are about the Warp
    library
    version conflict with cuRobo (Isaac kit bundles warp 1.5 vs
    cuRobo needing >=1.14), not the Newton backend — intentionally left alone.

Project board

Please move #89 to In review on the
Strands Labs - Robots board
if it isn't moved automatically.

…closes strands-labs#89)

The docs, README, and umbrella roadmap (strands-labs#8) present strands-robots-sim
as Isaac-Sim-only (Newton/Warp was dropped from strands-labs#8 and all Newton issues
were closed), but the code and packaging still shipped a full Newton/Warp
backend. This commits to Option A: make packaging + code match the
Isaac-only docs/roadmap.

Changes:
- pyproject.toml: drop the `[newton]` extra and remove it from `[all]`
  (kept `[all]` as an alias of `[isaac]` so existing invocations work);
  remove the `newton`/`warp` `strands_robots.backends` entry points;
  drop the `newton`/`warp` keywords and the "Newton" mention from the
  description; collect only `strands_robots_sim/isaac/tests/` in the
  `hatch run test` script.
- Delete the `strands_robots_sim/newton/` package (simulation stub +
  tests).
- strands_robots_sim/__init__.py: drop the NewtonSimulation reference.
- isaac/{loaders,procedural,config}.py: remove stale comments pointing
  at the deleted newton module.
- isaac/tests/test_entrypoint.py: correct the `[isaac]` dep description
  (isaacsim/isaaclab/usd-core, not warp-lang).
- docs/getting-started/installation.md: describe the actual `[isaac]`
  deps instead of claiming warp-lang is pulled in.
- tests/README.md, examples/MIGRATION.md, examples/mujoco_gs/README.md,
  examples/libero/libero_backend_matrix.py: drop Newton rows/examples.
- .github/workflows/test-lint.yml: drop the Newton CI comment.

After this, pyproject, the package layout, README/docs, and strands-labs#8 all tell
the same Isaac-only story; no "ships in docs but absent in packaging"
(or vice-versa) gaps remain.
@yinsong1986 yinsong1986 requested a review from cagataycali June 17, 2026 11:40
cagataycali
cagataycali previously approved these changes Jun 17, 2026
…p-isaac-only

# Conflicts:
#	docs/getting-started/installation.md
#	strands_robots_sim/isaac/tests/test_entrypoint.py
@yinsong1986

Copy link
Copy Markdown
Contributor Author

Merged main in and resolved conflicts in docs/getting-started/installation.md and strands_robots_sim/isaac/tests/test_entrypoint.py (both prose/docstring-only conflicts where this PR's Newton/Warp removal and the base's #91 Isaac Sim 4.5.x pin alignment were independent edits — kept the base's more precise 4.5.x wording, which now matches the merged pyproject.toml). pyproject.toml auto-merged cleanly, preserving both the Newton/Warp drop and the 4.5.x pins. Lint + tests green (184 passed, 31 skipped). Ready for re-review.

@cagataycali

Copy link
Copy Markdown
Member

Heads-up: #89 was just closed by #94, which landed the same Option A direction this PR takes (delete strands_robots_sim/newton/, drop the [newton] extra and newton/warp entry points, keep [all] as an [isaac] alias, and scrub the Newton doc/example drift). As a result this PR now shows CONFLICTING and its target issue is already resolved, so it looks superseded.

Before recommending closure I diffed the two change sets and they cover the same surface (pyproject extras/entry-points/keywords/description, strands_robots_sim/newton/ removal, examples/MIGRATION.md, examples/libero/libero_backend_matrix.py, tests/README.md, examples/mujoco_gs/README.md, the installation.md warp-lang doc fix, and the test-lint.yml comment). #94 additionally pins the decision with a TestNewtonRemoved regression suite so it cannot drift back.

The one genuinely-distinct follow-up both PRs flagged as out of scope — the docs claiming an isaac_sim entry-point alias that pyproject.toml never declares — is now tracked separately as #95.

Suggest closing this as superseded by #94 unless there's a delta I missed; happy to be corrected if so.

…p-isaac-only

# Conflicts:
#	.github/workflows/test-lint.yml
#	docs/getting-started/installation.md
#	examples/MIGRATION.md
#	examples/libero/libero_backend_matrix.py
#	examples/mujoco_gs/README.md
#	pyproject.toml
#	strands_robots_sim/__init__.py
#	strands_robots_sim/isaac/config.py
#	strands_robots_sim/isaac/procedural.py
@yinsong1986

Copy link
Copy Markdown
Contributor Author

Merged main in (merge commit 07f49a0) and resolved conflicts in pyproject.toml, strands_robots_sim/init.py, strands_robots_sim/isaac/config.py, strands_robots_sim/isaac/procedural.py, .github/workflows/test-lint.yml, docs/getting-started/installation.md, examples/MIGRATION.md, examples/libero/libero_backend_matrix.py, and examples/mujoco_gs/README.md. All nine conflicts were prose/comment-level wording differences arising because upstream #94 landed the same Newton/Warp removal in parallel; both sides expressed the identical Isaac-only intent, so no behavioural lines diverged. Kept the more complete/specific wording on each side (no information lost). The upstream TestNewtonRemoved contract suite merged cleanly and passes. hatch run lint and hatch run test are green (189 passed, 31 GPU/USD-gated skips, 0 failures). Ready for re-review.

@yinsong1986

Copy link
Copy Markdown
Contributor Author

Thanks for the careful diff — your read is correct and I confirmed it independently against current main (post-#94 merge).

What I checked:

  • chore: remove Newton/Warp backend (Isaac-only re-scope) #94 is merged (mergedAt 2026-06-17T15:08:18Z) and Newton/Warp still shipped in code + packaging despite the Isaac-only re-scope (#8) #89 is closed by it, so this PR's target issue is already resolved.
  • strands_robots_sim/newton/ no longer exists on main (git ls-tree -r upstream/main | grep -i newton → empty), confirming the directory removal already landed.
  • Diffing this branch against current main (git diff upstream/main..fix/drop-newton-warp-isaac-only), the only residual changes are prose rewording of the same decision — line re-wrapping and singular/plural ("entry-point plugin(s)", "heavy GPU-only backend(s)") in pyproject.toml, strands_robots_sim/__init__.py, examples/MIGRATION.md, examples/libero/libero_backend_matrix.py, examples/mujoco_gs/README.md, installation.md, strands_robots_sim/isaac/procedural.py, and the test-lint.yml comment. No functional delta: the extras/entry-points/keywords/description edits, the directory removal, and the [all][isaac] alias are all already on main via chore: remove Newton/Warp backend (Isaac-only re-scope) #94.

So there's no delta worth a forward-fix here. Agreed this is superseded by #94, with the one genuinely-distinct follow-up (docs claiming an isaac_sim entry-point alias pyproject.toml never declares) already tracked as #95. No objection to closing #92 as superseded.

@cagataycali

Copy link
Copy Markdown
Member

Closing as superseded by #94, which landed the same Isaac-only re-scope (Newton/Warp removal, [newton] extra + entry points dropped, [all] kept as an [isaac] alias, doc/example scrub) and is now on main. Per the discussion above we confirmed there is no functional delta remaining on this branch versus main after #94 — only equivalent prose rewording. The one genuinely-distinct follow-up (docs claiming an isaac_sim entry-point alias pyproject.toml never declares) is tracked separately in #95. Thanks for the parallel work and the careful diff confirming equivalence.

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.

2 participants