Skip to content

Locks qpsolvers version to be last known compatible version with PINK IK#5555

Closed
peterd-NV wants to merge 1 commit intoisaac-sim:developfrom
peterd-NV:peterd/lock_qpsolvers_version
Closed

Locks qpsolvers version to be last known compatible version with PINK IK#5555
peterd-NV wants to merge 1 commit intoisaac-sim:developfrom
peterd-NV:peterd/lock_qpsolvers_version

Conversation

@peterd-NV
Copy link
Copy Markdown
Collaborator

@peterd-NV peterd-NV commented May 8, 2026

Description

Locks the version of qpsolvers to 4.11.0 which is last known version that works with pin_pink.
This fixes Pink IK tests.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label May 8, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 8, 2026

Greptile Summary

This PR pins qpsolvers to 4.11.0 to prevent pin-pink==3.1.0 from breaking due to the removal of the primal_start keyword argument in qpsolvers 4.12.0, which caused PinkIKController to silently return no-op joint positions.

  • setup.py: adds qpsolvers==4.11.0 under the same Linux ARM/x86_64 PEP 508 marker block as the other pink_ik dependencies (pin, pin-pink==3.1.0, daqp==0.7.2).
  • changelog.d/peterd-lock-qpsolvers-version.rst: new fragment documenting the root cause and the silent IK failure it produced.

Confidence Score: 5/5

Safe to merge; the change is a one-line dependency pin with no logic modifications.

The only change is adding qpsolvers==4.11.0 under the same platform guard already used for the other pink_ik dependencies. It correctly prevents pip from picking up the incompatible 4.12.0 release that caused a silent IK no-op. The changelog fragment is accurate and follows the existing format.

No files require special attention; the changelog entry has a minor style inconsistency (missing Changed section) but does not affect functionality.

Important Files Changed

Filename Overview
source/isaaclab/setup.py Adds qpsolvers==4.11.0 as an explicit dependency under the same Linux + ARM/x86_64 PEP 508 marker block used by the other pink_ik dependencies, preventing pip from resolving a newer incompatible version.
source/isaaclab/changelog.d/peterd-lock-qpsolvers-version.rst New changelog fragment documenting the fix; follows the Fixed section convention but is missing a Changed section to record the added install requirement, unlike the pattern used in comparable entries.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["pip install isaaclab (Linux ARM/x86)"] --> B["Resolves qpsolvers"]
    B -- "Before PR (unconstrained)" --> C["qpsolvers>=4.12.0 installed"]
    C --> D["pin-pink==3.1.0 calls solve_ik()"]
    D --> E["TypeError: unexpected kwarg 'primal_start'"]
    E --> F["PinkIKController silently returns current joints (IK no-op)"]
    B -- "After PR (qpsolvers==4.11.0)" --> G["qpsolvers 4.11.0 installed"]
    G --> H["pin-pink==3.1.0 calls solve_ik()"]
    H --> I["IK solved correctly"]
Loading

Reviews (1): Last reviewed commit: "lock qpsolvers version to be last known ..." | Re-trigger Greptile

Comment on lines +4 to +8
* Pinned ``qpsolvers==4.11.0`` to keep Pink IK working. ``qpsolvers`` 4.12.0
dropped the ``primal_start`` kwarg, causing ``pin-pink==3.1.0`` to raise
``TypeError`` inside ``solve_ik``;
:class:`~isaaclab.controllers.pink_ik.PinkIKController` then silently
fell back to returning the current joints, making IK a no-op.
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 Other entries that add a new install requirement (e.g., antoiner-fix-from-files-windows-filelock.rst) include a Changed section alongside the Fixed section to record the added dependency. Adding one here would keep the changelog consistent.

Suggested change
* Pinned ``qpsolvers==4.11.0`` to keep Pink IK working. ``qpsolvers`` 4.12.0
dropped the ``primal_start`` kwarg, causing ``pin-pink==3.1.0`` to raise
``TypeError`` inside ``solve_ik``;
:class:`~isaaclab.controllers.pink_ik.PinkIKController` then silently
fell back to returning the current joints, making IK a no-op.
* Pinned ``qpsolvers==4.11.0`` to keep Pink IK working. ``qpsolvers`` 4.12.0
dropped the ``primal_start`` kwarg, causing ``pin-pink==3.1.0`` to raise
``TypeError`` inside ``solve_ik``;
:class:`~isaaclab.controllers.pink_ik.PinkIKController` then silently
fell back to returning the current joints, making IK a no-op.
Changed
^^^^^^^
* Added ``qpsolvers==4.11.0`` to ``isaaclab`` install requirements (Linux only).

@peterd-NV peterd-NV changed the title lock qpsolvers version to be last known compatible version with pink Locks qpsolvers version to be last known compatible version with PINK IK May 8, 2026
@kellyguo11
Copy link
Copy Markdown
Contributor

Looks like @ooctipus was able to fix the tests in #5556. @peterd-NV do those changes look good to you?

@kellyguo11 kellyguo11 closed this May 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants