Repository navigation
QFw: keep the resolver off the sdist-only ibm-platform-services - #167
Merged
Merged
Conversation
The image build stopped working today without any change in QFw:
error: Failed to build `ibm-platform-services==0.55.2`
cause: The build backend returned an error
ModuleNotFoundError: No module named 'pkg_resources'
qiskit-ibm-runtime asks for ibm-platform-services>=0.22.6 and iqm-client
pins requests==2.32.3 exactly. ibm-platform-services 0.77.0, published in
the last few days, moved to ibm-cloud-sdk-core>=3.24.4, which requires
requests>=2.32.4. The two cannot both be satisfied, so the resolver walks
back down the platform-services versions, and without a floor it reaches
0.55.2. That is the one version in the range published as an sdist only,
and its build imports pkg_resources without declaring setuptools, so it
fails.
Add a floor that keeps the resolution on 0.66.1, the version QFw has been
building with all along, together with ibm-cloud-sdk-core 3.24.1 and
requests 2.32.3. Nothing else in the resolved set changes.
The floor can go once iqm-client stops pinning requests to a single
version. iqm-client 35 and 36 relax it to requests<3,>=2.32.3, but that is
a two-major-version bump on the IQM hardware path and wants its own
validation.
Signed-off-by: Doug Oucharek <dougso@me.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What broke
The image build stopped working today with no change in QFw:
The same build six days ago resolved
ibm-platform-servicesto 0.66.1, whichis still what the running containers have.
Why
qiskit-ibm-runtimeasks foribm-platform-services>=0.22.6, andiqm-client==34.0.1pinsrequests==2.32.3exactly.ibm-platform-services0.77.0, published in the last few days, moved to
ibm-cloud-sdk-core>=3.24.4,which needs
requests>=2.32.4. uv states the conflict:So the resolver walks back down the
ibm-platform-servicesversions, and withno floor it reaches 0.55.2. That is the one version in the range published as
an sdist only: 0.59.0 and later all ship wheels. Its build imports
pkg_resourceswithout declaring setuptools as a build dependency, so itfails under uv's isolated build.
The change
A floor that keeps the resolution where it has been all along. With it, the set
resolves to
ibm-platform-services==0.66.1,ibm-cloud-sdk-core==3.24.1andrequests==2.32.3— the same combination the current image carries. Nothingelse in the 136 resolved packages changes.
I checked the whole resolved set for other sdist-only packages. The only one is
docplex==2.32.264, which the current image already has at that exact version,so it builds.
This is not caused by the IBM QDMI work in #156: with
ibm-qdmiremoved fromsetup/qdmi-requirements.txtthe resolution fails in exactly the same way.When it can go
Once
iqm-clientstops pinningrequeststo a single version. 35.0.0 and36.0.0 relax it to
requests<3,>=2.32.3, which removes the conflict at itssource and would let the newest
ibm-platform-servicesin. That is atwo-major-version bump on the IQM hardware path, so it wants its own
validation rather than riding along with a build fix.