-
Notifications
You must be signed in to change notification settings - Fork 115
Description
This issue serves as a collection and explanation for various issues that we see now or that may arise in the future because of our decision to pin ixmp4.
We have made the decision to pin the version of ixmp4 to a very narrow range because ixmp4 is still under development and no stability is guaranteed: thus, there's no benefit to support old versions of it, while the latest versions might be incompatible with the IXMP4Backend in here, which we then want to adjust consciously. As soon as ixmp4 becomes stable enough to reach 1.0, we can remove the pin and support as many versions as possible.
In the meantime, though, the door is open to errors such as the one we recently saw in the CI suite: a dependency of ixmp4 releases a new version to which ixmp4 itself needs to adjust. A specific version of ixmp only sees the pin for ixmp4, though: so it picks up the latest version of ixmp4's dependency, but an outdated version of ixmp4, thus causing an error.
There's no going back in time to fix something like this.
Tip
For users, the best way to deal with this is to update to the latest version of ixmp on the main branch in this repo.
Note
For the CI suite, the best way to deal with this is to apply markers to the failing tests explaining the reason and skipping or xfailing them.
Example
In the message-ix-models CI, we currently still see an error like this in the test cases that use ixmp v3.11.0:
E KeyError: "No item called 'node' found on this Scenario!"
.venv/lib/python3.13/site-packages/ixmp/backend/ixmp4.py:606: KeyErrorWe saw similar errors in ixmp's CI a few days ago and #598 was created and merged to address them. Now they are resolved on main, but testing against earlier versions of ixmp that already depend on ixmp4 may still reveal them.