Skip to content

`tap package install --version` Considers Packages Differing Only for the Build Metadata Identical

When installing from a local .TapPackage file, no check on the package version is performed:

$ tap package install UeSIM.1.0.1-alpha.9.42+523712df.fix.TapPackage
Downloaded 'UeSIM' to '/home/user/.tap/PackageCache/UeSIM.1.0.1-alpha.9.42+523712df.fix.Windows,Linux.TapPackage'. [1.99 ms]
Installing to /home/user/.tap
Installed UeSIM version 1.0.1-alpha.9.42+523712df.fix [14.2 ms]

So it's possible both to re-install the same package:

$ tap package install UeSIM.1.0.1-alpha.9.42+523712df.fix.TapPackage
Downloaded 'UeSIM' to '/home/user/.tap/PackageCache/UeSIM.1.0.1-alpha.9.42+523712df.fix.Windows,Linux.TapPackage'. [1.97 ms]
Installing to /home/user/.tap
Uninstalled UeSIM version 1.0.1-alpha.9.42+523712df.fix. [7.52 ms]
Installed UeSIM version 1.0.1-alpha.9.42+523712df.fix [13.1 ms]

And to install a package whose version only differs for the build metadata +7089e03e.ERROR:

$ ./tap package install UeSIM.1.0.1-alpha.9.42+7089e03e.ERROR.TapPackage
Downloaded 'UeSIM' to '/home/user/.tap/PackageCache/UeSIM.1.0.1-alpha.9.42+7089e03e.ERROR.Windows,Linux.TapPackage'. [3.07 ms]
Installing to /home/user/.tap
Uninstalled UeSIM version 1.0.1-alpha.9.42+523712df.fix. [7.26 ms]
Installed UeSIM version 1.0.1-alpha.9.42+7089e03e.ERROR [19.6 ms]

But the latter is not true when using the --version option to get the package from the package cache or from a package repository

$ tap package install UeSIM --version 1.0.1-alpha.9.42+523712df.fix
Package 'UeSIM' is already installed.

The easy workaround is just to uninstall the previous package version ;)

Edited by Dave Heintz