Announcement
· 5 hr ago

IPM Version 0.10.5 Release Notes

IPM version 0.10.5 has been released on January 15, 2026. This new version contains a ton of improvements and bug fixes so be sure to check it out either directly from the GitHub page or from the Community Registry!

The big changes include the following:

  • A rewrite of dependency resolution that drastically improves performance, including a 200x speed increase in very complicated cases
  • A History Log that tracks the IPM installs, loads, updates, and uninstalls that can be viewed using zpm "log" 
  • System expressions, like ${namespace}, and $$$ macros are now evaluated in CPF merge files allowing for more initial configuration flexibility
  • <Invoke> in module.xml behaves more intuitively by always checking the %Status return value if and only if the method signature declares %Status is returned. This means an error will be thrown if nothing is returned, the return value is not a %Status, or it is not $$$OK.

Here's the full changelist:

Added

  • #938: Added flag -export-python-deps to package command
  • #462: The repo command for repository configuration now supports secret input terminal mode for passwords with the -password-stdin flag
  • #935: Adding a generic JFrog Artifactory tarball resource processor for bundling artifact with a package and deploying it to a final location on install.
  • #950: Added support for listing installed Python packages using list -pythonlist -py and list-installed -python
  • #822: The CPF resource processor now supports system expressions and macros in CPF merge files
  • #578: Added functionality to record and display IPM history of install, uninstall, load, and update
  • #961: Adding creation of a lock file for a module by using the -create-lockfile flag on install.
  • #959: In ORAS repos, external name can now be used interchangeably with (default) name for install and update, i.e. a module published with its (default) name can be installed using its external name.
  • #951: The unpublish command will skip user confirmation prompt if the -force flag is provided.
  • #1018: Require module name for uninstall when not using the -all flag

Changed

  • #316: All parameters, except developer mode, included with a loadinstall or update command will be propagated to dependencies
  • #885: Always synchronously load dependencies and let each module do multi-threading as needed to load using multicompile instead of trying to do own multi-threading of item load which causes lock contention by bypassing IRIS compiler.
  • #481: Improve BuildDependencyGraph performance by doing the following:
    • Eliminate recursion and use iteration.
    • Remove depth first search and do pure breadth first search.
    • Have better caching of results for module searches by collapsing search expressions (reducing expressions that are intersections).

Removed

  • #938: Removed secret flag NewVersion handling in %Publish()

Fixed

  • #943: The load command when used with a GitHub repository URL accepts a branch argument again
  • #701: Fix misleading help comments about search command
  • #958: Update command should not fail early if external name is used
  • #970: fix: Resolve error in 'generate' command WebApp processing
  • #965: FileCopy on a directory with a Name without the leading slash now works
  • #937: Publishing a module with a <WebApplication> containing a Path no longer errors out
  • #957: Improved error messages for OS command execution. Now, when a command fails, the error message includes the full command and its return code. Also fixed argument separation for the Windows attrib command and removed misleading error handling for missing commands.
  • #789: Fix error when listing modules for an ORAS repo with a specified namespace.
  • #999, #1000: Installing IPM cleans up stale mappings used in old versions of IPM
  • #1007: The ${ipmDir} expression now works in the <Arg> of an <Invoke>
  • #1015: Fix dependency resolution bugs where * as the version requirement and intersecting ranges wouldn't work properly.
  • #1036: The update command no longer propagates developer mode to dependencies

Deprecated

  • #828: The CheckStatus flag for <Invoke> action has been deprecated. Default behavior is now to always check the status of the method if and only if the method signature returns %Library.Status
  • #885: -synchronous flag since loading dependencies synchronously is now the default behavior.

Security

  • urllib3 wheel has been updated to 2.6.3

 

If you have any questions, suggestions, or bugs you'd like to raise, feel free to bring them up here or on the GitHub page. (On GitHub, questions and suggestions should go to the discussions page, and bugs should go to the issues page.)

Discussion (1)3
Log in or sign up to continue