Skip to content

Errors because of the ixmp4 pin #600

@glatterf42

Description

@glatterf42

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: KeyError

We 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backend.ixmp4Interaction with ixmp4 via IXMP4Backend

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions