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:
To Reproduce
Steps to reproduce the false positive behavior:
- Create two namespaces on an IRIS instance.
- In one namespace, install IPM v0.10.5 by running
do $System.OBJ.Import(/path/to/zpm/artifact, "ck").
- In the other namespace, install IPM v0.10.7-beta.5 in the same manner.
- 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.
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:To Reproduce
Steps to reproduce the false positive behavior:
- Create two namespaces on an IRIS instance.
- In one namespace, install IPM v0.10.5 by running
- In the other namespace, install IPM v0.10.7-beta.5 in the same manner.
- 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"`.do $System.OBJ.Import(/path/to/zpm/artifact, "ck").System information (please complete the following information):
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 todo ##class(%IPM.Main).GetVersion($$$IPMModuleName,.out)which optionally takes a list of namespaces as its third argument.