IPM 0.10.5 版已于 2026 年 1 月 15 日发布。新版本包含大量改进和错误修复,请务必直接从GitHub 页面或社区注册中心查看!
主要变化如下
- 重写了依赖关系解析,大大提高了性能,包括在非常复杂的情况下速度提高了 200 倍
- 跟踪 IPM 安装、加载、更新和卸载的历史日志,可使用zpm "log "查看
- 系统表达式(如${namespace} 和 $$$ 宏)现在可在 CPF 合并文件中进行评估,使初始配置更具灵活性
- 模块.xml 中的
<Invoke>将更直观地表现为始终检查 %Status 返回值,前提是且仅当方法签名声明返回 %Status。这意味着如果没有返回任何值、返回值不是 %Status 或不是 $$$OK,就会产生错误。
以下是完整的变更列表:
已添加
- #938:为软件包命令添加了 -export-python-deps 标志
- #462:用于版本库配置的
repo命令现在支持使用-password-stdin标志的密码秘密输入终端模式。- #935:添加通用的 JFrog Artifactory tarball 资源处理器,用于将工件与软件包捆绑,并在安装时部署到最终位置。
- #950:新增使用
list -python、list -py和list-installed -python列出已安装 Python 软件包的支持。- #822:CPF 资源处理器现在支持 CPF 合并文件中的系统表达式和宏
- #578:添加了记录和显示 IPM 安装、卸载、加载和更新历史的功能
- #961:增加了在安装时使用
-create-lockfile标志为模块创建锁定文件的功能。- #959:在 ORAS 仓库中,外部名称现在可以与
install和update的(默认)名称互换使用,即使用(默认)名称发布的模块可以使用其外部名称安装。- #951:如果提供
-force标志,unpublish命令将跳过用户确认提示。- #1018:不使用 -all 标志时,卸载时需要模块名称
已更改
- #316:
load、install或update命令中包含的所有参数(开发人员模式除外)都将传播给依赖程序- #885:始终同步加载依赖项,并让每个模块根据需要使用多线程编译来加载,而不是试图绕过 IRIS 编译器对项目加载进行多线程编译,从而导致锁争用。
- #481:通过以下方法提高 BuildDependencyGraph 的性能:
- 消除递归并使用迭代。
- 取消深度优先搜索,采用纯广度优先搜索。
- 通过折叠搜索表达式(减少交叉表达式),更好地缓存模块搜索结果。
已删除
- #938:删除了 %Publish() 中对秘密标志 NewVersion 的处理
已修复
- #943:当
load命令与 GitHub 仓库 URL 一起使用时,会再次接受branch参数。- #701:修正了关于
search命令的误导性帮助注释- #958:如果使用外部名称,更新命令不应提前失败
- #970: 修复:解决 "生成 "命令 WebApp 处理中的错误
- #965:在名称不带斜线的目录上进行文件复制(FileCopy)现在可以正常工作了
- #937:发布包含
<WebApplication>的模块不再出错- #957:改进了操作系统命令执行的错误信息。现在,当命令执行失败时,错误信息会包含完整命令及其返回代码。还修正了 Windows
attrib命令的参数分离,并删除了对丢失命令的误导性错误处理。- #789:修复在为 ORAS 软件包列出指定命名空间的模块时出现的错误。
- #999、#1000:安装 IPM 时清除旧版本 IPM 中使用的陈旧映射
- #1007:
${ipmDir}表达式现在可在<Arg>的<Invoke>中使用。- #1015:修复
*作为版本要求和相交范围无法正常工作的依赖关系解析错误。- #1036:
update命令不再将开发者模式传播给依赖关系已弃用
- #828:用于
<Invoke>操作的CheckStatus标志已被弃用。现在的默认行为是,如果且仅当方法签名返回 %Library.Status 时,始终检查该方法的状态。- #885:
-synchronous标志,因为同步加载依赖关系现在是默认行为。安全性
- urllib3 轮已更新至 2.6.3
如果您有任何问题、建议或要提出的 bug,请随时在此处或GitHub 页面上提出。(在 GitHub 上,问题和建议应放在讨论页面,而错误应放在问题页面)。







