Skip to content

Bug: IPMVersion attribute of SystemRequirements in module.xml does not appear to work in all cases #1114

@isc-eneil

Description

@isc-eneil

Describe the bug

My module has the following line in its module.xml:
<SystemRequirements IPMVersion=">=0.10.7-beta.5"/>

When I tried to install it in a namespace with IPM version 0.10.5, it still succeeds although the system requirement is not satisfied.

I'll note that another teammate on the same IRIS version but on Mac encountered a false negative scenario (I don't have reproducible steps for this but it may offer a clue). When installing in a namespace with 0.10.7-beta.5 installed which has version 0.9.0+snapshot of IPM in other namespaces, the zpm "install <module>" fails with the following error message:

Image

To Reproduce

Steps to reproduce the false positive behavior:

  1. Create two namespaces on an IRIS instance.
  2. In one namespace, install IPM v0.10.5 by running do $System.OBJ.Import(/path/to/zpm/artifact, "ck").
  3. In the other namespace, install IPM v0.10.7-beta.5 in the same manner.
  4. Save the following file somewhere in your local filesystem:```
TestModule 1.0.0 module ``` 4. In the namespace with IPM 0.10.5 installed, run `zpm "repo"` and set up a repo pointing to the directory containing the module.xml file above. 6. Then, run `zpm "install TestIPMVersion"`.

System information (please complete the following information):

  • IRIS version: IRIS for Windows (x86-64) 2025.1.1 (Build 308_0_24556U) Wed Oct 15 2025 22:36:01 EDT
  • OS: Windows, but also reproduced on Mac
  • Docker or local: local

Dev Notes

Because I've seen it fail in both the false positive and false negative and the false negative error message indicates the wrong version of IPM for the namespace, I think that %IPM.Storage.SystemRequirements::CheckIPMVersion() needs to pass the current namespace to do ##class(%IPM.Main).GetVersion($$$IPMModuleName,.out) which optionally takes a list of namespaces as its third argument.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions