-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop dimod 0.8.x support and fix CI #259
Drop dimod 0.8.x support and fix CI #259
Conversation
Version 0.8 is now almost 2 years old, and most Ocean packages already dropped support for it, so it's becoming a pain to maintain the whole collection of packages compatible (primarily samplers: neal, tabu, greedy) and tested.
2b1413d
to
5cd5091
Compare
In the process, we had to increase the lower bound of dimod to 0.9.6, due to dwave-networx, dwave-neal and numpy conflicts.
e4e0b33
to
e61fe6d
Compare
e61fe6d
to
96cfe37
Compare
# Include dwave-preprocessing, as dimod went back and forth with | ||
# including it as a core dependency vs extra. Make it unbounded, | ||
# as it's already constrained by dimod (if required). | ||
'dwave-preprocessing', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe pip's version resolution order will fail if we release a version of dwave-preprocessing
that's outside of dimod's version constraints. Since it does something like bfs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure I understand what you mean?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC, it will first install everything listed here using the ranges specified here. So dwave-preprocessing
will be unbounded. Then it will install the dependencies of the dependencies and discover that dimod (may) require something smaller. I could be misremembering though the order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps, but dimod doesn't constrain dwave-preprocessing anymore, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of course, you're right.
FWIW dimod and dwave-preprocessing are linked at the C++ level, and when we merge dwavesystems/dimod#1043 that will constitute a breaking change for dwave-preprocessing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to know. 🤦
New Features --- - Add `hybrid.Log`, a block to log user-define state metrics to a JSON file, python logger, or in-memory queue or list. See dwavesystems#257. - Add convenience JSON encoders for commonly used NumPy (`hybrid.utils.NumpyEncoder`) and Ocean types (`hybrid.utils.OceanEncoder`). See dwavesystems#257. Fixes --- - Clarify docs, dwavesystems#142. Upgrade --- - Drop dimod 0.8.x support. Oldest supported dimod version is now 0.9.6. See dwavesystems#259.
Support
dimod>=0.9.6
and make dependency versions consistent.Fix CI to correctly sweep supported versions of dependencies. Close #258.