Skip to content

Reconcile NumPy pin with QiskitOpt for shared benchmark environmentsΒ #52

Description

@bernalde

Part of the benchmark runtime follow-up tracked in JuliaQUBO/QUBOBenchmarks.jl#19.

Problem

DWave v0.7.2 resolves on its own, but its hard pip numpy pin cannot share a Python environment with QiskitOpt v0.7.0.

Current registered DWave CondaPkg.toml:

[deps]
python = ">=3.11,<=3.13"

[pip.deps]
numpy = "==2.4.6"
dwave-ocean-sdk = "==9.3.0"
dwave_networkx = "==0.8.18"

QiskitOpt v0.7.0 currently declares:

[deps]
python = ">=3.11,<3.12"

[pip.deps]
numpy = "~=2.2.0"
qiskit = "~=2.3.0"
qiskit-aer = "~=0.17.0"
qiskit-ibm-runtime = "~=0.46.0"
qiskit-optimization = "~=0.7.0"
scipy = "~=1.15.0"

The Python bounds are compatible, but the numpy bounds are not.

Evidence

CondaPkg.resolve() succeeds for DWave alone and for QiskitOpt alone.

For DWave + QiskitOpt, CondaPkg writes:

[pypi-dependencies]
numpy = "==2.4.6,~=2.2.0"

and pixi fails with:

failed to solve the pypi requirements
you require numpy βˆ…

Requested work

  • Check whether DWave.jl really needs the hard numpy ==2.4.6 pin.
  • If not, relax the bound to a range that can coexist with QiskitOpt or remove the direct numpy pin if dwave-ocean-sdk already constrains it adequately.
  • If the hard pin is required, document why and link that decision back to JuliaQUBO/QUBOBenchmarks.jl#19 so the benchmark harness can isolate DWave from QiskitOpt.

Acceptance criteria

  • CondaPkg.resolve() succeeds for DWave + QiskitOpt, or this package explicitly documents why DWave cannot share a Python environment with QiskitOpt.
  • The chosen policy has a minimal smoke check.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions