InterSystems 官方
· 一月 27

IPM 0.10.5 版发布说明

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 -pythonlist -pylist-installed -python 列出已安装 Python 软件包的支持。
  • #822:CPF 资源处理器现在支持 CPF 合并文件中的系统表达式和宏
  • #578:添加了记录和显示 IPM 安装、卸载、加载和更新历史的功能
  • #961:增加了在安装时使用 -create-lockfile 标志为模块创建锁定文件的功能。
  • #959:在 ORAS 仓库中,外部名称现在可以与 installupdate 的(默认)名称互换使用,即使用(默认)名称发布的模块可以使用其外部名称安装。
  • #951:如果提供 -force 标志,unpublish 命令将跳过用户确认提示。
  • #1018:不使用 -all 标志时,卸载时需要模块名称

已更改

  • #316:loadinstallupdate 命令中包含的所有参数(开发人员模式除外)都将传播给依赖程序
  • #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 上,问题和建议应放在讨论页面,而错误应放在问题页面)。

讨论 (0)1
登录或注册以继续