mirror of https://github.com/pulumi/pulumi.git
![]() When installing plugins, we download the plugin into a temporary folder, unpack it and then move that folder into its final location (as an atomic operation). We do this so that if the download fails in some way, we would not "poision" our plugin cache. In order to ensure the move into the final location happens atomically, we download the plugin into a folder with a `.tmpXXXXXX` suffix inside the plugin root itself. However, we were not ignoring this folder when enumarating plugins. This would cause some weird behaviors: - When a plugin was being installed `pulumi plugin ls` would show a plugin with a version like `v1.0.0-rc.1.tmp123456`. - For cases where the version of the plugin had applied metadata (e.g. our alpha builds where we append the commit hash to the version via `+gACBDEF123`) the `.tmpXXXXXX` suffix was considered part of the build metadata. This would mean we could actually end up selecting these plugins and trying to run them, which was not going to work correctly (since they are in the process of being downloaded). Because the way to hit this was using a dev release while also trying to run a another program that used the same plugin, it was unlikely that customers would hit this, but we would see this from time to time in CI, where we run many pulumi programs at the same time (the `examples` repo is one case where we'd often hit it). Fixes: #1353 |
||
---|---|---|
.. | ||
creds.go | ||
paths.go | ||
plugins.go | ||
plugins_test.go | ||
project.go | ||
project_test.go | ||
settings.go | ||
templates.go | ||
templates_test.go | ||
workspace.go |