Skip to content

fix(deps): pin warp-lang<1.18 - #6047

Merged
njzjz merged 1 commit into
deepmodeling:masterfrom
iProzd:1005_pin_warp_lang
Oct 6, 2026
Merged

njzjz merged 1 commit into
deepmodeling:masterfrom
iProzd:1005_pin_warp_lang

Conversation

@iProzd

@iProzd iProzd commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

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.18 in the torch extra, next to nvalchemi-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 for cuda:0, and warp/_src/torch.py:39 raises IndexError: list index out of range while the model files for the C++ tests are being generated.

Test C++ (false, true, true, false): 15 LAMMPS tests error at setup. nvalchemi-toolkit-ops sets warp.config.quiet = True before calling warp.init(). Warp 1.18.0 removed config.quiet in favour of config.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:", so json.loads fails at the first character: JSONDecodeError: Expecting value: line 1 column 1 (char 0).

Evidence

  • The same jobs passed on 2026-09-29 with 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.
  • Three unrelated pull requests failed the CPU job with the identical 15 errors: feat(bridging): analytical short-range bridging for DPA4 and DPA4C #6045 at 02:35 UTC, the merge-queue run of feat: add the Uni-Mol v1 backbone and its self-supervised pretraining #6019 at 08:04 UTC, and feat: run Uni-Mol's pretraining objective on a DPA4 backbone #6025 at 08:22 UTC.
  • Locally, with two environments that differ only in the warp version, a subprocess that imports nvalchemiops and prints JSON parses cleanly under 1.17.0 and fails with the CI error under 1.18.0. Setting warp.config.quiet = True leaves 1.17.0 silent; 1.18.0 still prints 211 bytes.
  • The repository's own neighbour-list tests (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 same IndexError as CI. test_nlist_backend.py and test_sezm_nvalchemi.py also pass under 1.17.0 (27 passed).
  • Resolving the CI install (.[cpu,test,lmp,jax,torch]) with uv, cache disabled: master selects warp-lang==1.18.0 and this branch selects 1.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 the torch extra 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

  • Dependency Updates
    • Added the warp-lang dependency for Python 3.11 and later on Linux.

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.
Copilot AI balanced review requested due to automatic review settings October 5, 2026 11:06
@iProzd
iProzd requested a review from njzjz October 5, 2026 11:07

Copilot AI 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.

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.18 for 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.

Copilot AI commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

One or more custom setup steps configured for this repository failed during this Copilot code review run:

Build Python package

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 copilot-code-review.yml file. Read the docs for details.

@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

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
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3fdc0ccc-9337-4051-bf6a-bb2017c1097a
📥 Commits

Reviewing files that changed from the base of the PR and between 5b9fe07 and 7340425.

📒 Files selected for processing (1)
  • backend/find_pytorch.py

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The PyTorch dependency declarations now include warp-lang<1.18 for Linux with Python 3.11 or later. Comments describe the version limit as temporary.

Changes

PyTorch dependency constraint

Layer / File(s) Summary
Add warp-lang version constraint
backend/find_pytorch.py
Adds warp-lang<1.18 for Linux with Python 3.11 or later. Comments describe CUDA driver and stdout behavior associated with version 1.18.0 and state that the pin is temporary.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 73404

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 Summary

Architecture risk: 🔵 Low · up to 73404

The change affects 1 system.

Changed systems: backend

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — backend (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in backend/find_pytorch.py: Added a warp-lang<1.18 requirement for Python 3.11+ on Linux. The accompanying comments describe the CUDA driver and stdout behavior associated with version 1.18.0 and state that the pin is temporary.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: pinning warp-lang below version 1.18.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🧪 Generate unit tests (beta)
  • Create a new PR
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@iProzd iProzd added the Test CUDA Trigger test CUDA workflow label Oct 5, 2026
@github-actions github-actions Bot removed the Test CUDA Trigger test CUDA workflow label Oct 5, 2026
@codecov

codecov Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.49%. Comparing base (5b9fe07) to head (7340425).

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@njzjz-bot njzjz-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.

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

@njzjz
njzjz added this pull request to the merge queue Oct 6, 2026
Merged via the queue into deepmodeling:master with commit 7a9510d Oct 6, 2026
61 of 62 checks passed
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.

4 participants