Repository navigation
fix(deps): pin warp-lang<1.18 - #6047
Conversation
warp-lang 1.18.0, released 2026-10-05, breaks the two required C++ test jobs on every pull request. Its wheel is built for CUDA 13.4, which the GPU runners' 12.2 driver does not support, so Warp sees no GPU. It also dropped the config.quiet that nvalchemi-toolkit-ops sets before warp.init(), so the start-up banner now lands on stdout and breaks the LAMMPS tests that parse a subprocess's stdout as JSON.
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The narrowly scoped dependency pin correctly matches the affected dependency’s platform markers.
Review effort: Balanced
Findings: None
What changed in this PR
Pins Warp below 1.18 to restore C++ test compatibility for Linux PyTorch installations.
Changes:
- Adds
warp-lang<1.18for Linux with Python 3.11+. - Documents the CUDA and stdout compatibility reasons.
| File | Description |
|---|---|
backend/find_pytorch.py |
Adds the temporary Warp dependency constraint. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
One or more custom setup steps configured for this repository failed during this Copilot code review run: Setup steps run before each review. If the review above is missing context, or no review was posted at all, the failing step above may be the cause. See the workflow run for failure details, fix your setup steps configuration, and re-request a review. Note You can configure setup steps for Copilot code review separately from Copilot cloud agent with a |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe PyTorch dependency declarations now include ChangesPyTorch dependency constraint
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to Linux Python 3.11+ installs selecting the PyTorch extra now cap Warp below 1.18, including the inspected CUDA and LAMMPS test jobs. No concrete remaining merge risk is supported by the available evidence. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6047 +/- ##
==========================================
- Coverage 77.74% 77.49% -0.25%
==========================================
Files 1155 1155
Lines 139649 139649
Branches 5056 5056
==========================================
- Hits 108573 108226 -347
- Misses 29191 29541 +350
+ Partials 1885 1882 -3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
njzjz-bot
left a comment
There was a problem hiding this comment.
Reviewed the one-file dependency change and its build-metadata/CI consumers. The Warp upper bound uses exactly the same Linux/Python >=3.11 marker as nvalchemi-toolkit-ops, so it constrains the affected dependency path without adding Warp on macOS or Python 3.10. No actionable issue found in this change.
The relevant CI now provides direct evidence, beyond the PR description: the CPU C++ job installed nvalchemi-toolkit-ops==0.4.1 and warp-lang==1.17.0 and completed successfully (https://github.com/deepmodeling/deepmd-kit/actions/runs/37300779040/job/111732714359). The subsequent CUDA run actually executed both GPU jobs successfully, rather than merely passing a skipped-job aggregator (https://github.com/deepmodeling/deepmd-kit/actions/runs/37301902630). As a cross-check, the latest #5955 CPU C++ job installed Warp 1.18.0 and failed all 15 affected LAMMPS cases because the subprocess JSON begins with the Warp initialization banner (https://github.com/deepmodeling/deepmd-kit/actions/runs/37384380279/job/112013920572). This supports the pin as a scoped stopgap.
Python/C++/CUDA and build workflows are successful at this head. Read the Docs still reports failure (https://app.readthedocs.org/projects/deepmd/builds/34942432/); I have not attributed that separate failure. I inspected source and upstream job logs; I did not run tests locally.
Agent: dot
Reviewed head: 7340425
7a9510d
warp-lang 1.18.0 was published to PyPI on 2026-10-05 at 00:22 UTC. Since then, the two required C++ test jobs fail on every pull request whose CI installs it, for two independent reasons. This pins
warp-lang<1.18in thetorchextra, next tonvalchemi-toolkit-ops, which is how warp enters the dependency tree.What breaks
Test C++ on CUDA: Warp sees no GPU. The only Linux x86_64 wheel of 1.18.0 on PyPI is built against the CUDA 13.4 toolkit. The GPU runners have a 12.2 driver, so Warp initialises with the CPU as its only device ("insufficient CUDA driver version!" in the job log). The neighbour-list builder then asks Warp forcuda:0, andwarp/_src/torch.py:39raisesIndexError: list index out of rangewhile the model files for the C++ tests are being generated.Test C++ (false, true, true, false): 15 LAMMPS tests error at setup.nvalchemi-toolkit-opssetswarp.config.quiet = Truebefore callingwarp.init(). Warp 1.18.0 removedconfig.quietin favour ofconfig.log_level, so the setting no longer has any effect, and Warp prints its start-up banner on stdout. The four DPA4 LAMMPS test files compute their expected values in a subprocess and parse that subprocess's stdout as JSON. The stdout now starts with "Warp 1.18.0 initialized:", sojson.loadsfails at the first character:JSONDecodeError: Expecting value: line 1 column 1 (char 0).Evidence
warp-lang==1.17.0. I diffed every installed package between that passing job and a failing job today: 11 versions changed, and warp is the only one that appears anywhere in the failures.nvalchemiopsand prints JSON parses cleanly under 1.17.0 and fails with the CI error under 1.18.0. Settingwarp.config.quiet = Trueleaves 1.17.0 silent; 1.18.0 still prints 211 bytes.test_nv_graph_builder.py,test_nv_matrix_decode.py,test_graph_builder_dispatch.py,test_neighbor_backend_missing.py), run from this branch on a GPU with a 12.2 driver: 44 passed under 1.17.0; 8 failed under 1.18.0 with the sameIndexErroras CI.test_nlist_backend.pyandtest_sezm_nvalchemi.pyalso pass under 1.17.0 (27 passed)..[cpu,test,lmp,jax,torch]) with uv, cache disabled: master selectswarp-lang==1.18.0and this branch selects1.17.0. Of 155 resolved packages, that is the only difference.I could not run the four LAMMPS tests themselves locally, because there is no LAMMPS Python module here; the CI on this pull request is the check for those.
Scope
One requirement and its comment, in
backend/find_pytorch.py. It applies wherever thetorchextra is installed, which covers all three test workflows. It does not change any code, test, or other dependency.This is a stopgap. Warp publishes a CUDA 12 build of 1.18.0 on its GitHub releases page (#6045 installs it in CI), and the tests could stop parsing a subprocess's stdout. Either would let this pin go, and the comment says what to remove once both are resolved. I chose the pin because it is the smallest change that unblocks every pull request at once.
Summary by CodeRabbit
warp-langdependency for Python 3.11 and later on Linux.