Skip to content

Skip plugin install and upgrade if the requested version is already installed#1552

Open
vcheung-stripe wants to merge 4 commits intomasterfrom
vcheung-plugin-install-skip-latest
Open

Skip plugin install and upgrade if the requested version is already installed#1552
vcheung-stripe wants to merge 4 commits intomasterfrom
vcheung-plugin-install-skip-latest

Conversation

@vcheung-stripe
Copy link
Copy Markdown
Collaborator

Summary

What it says on the tin. I also updated these commands to output what version was previously installed, if there was one.

Manually tested a bunch of situations:

Screenshot 2026-04-17 at 3 49 26 PM

vcheung-stripe and others added 4 commits April 17, 2026 15:33
… upgrade

When the user requests the latest plugin version (no version specified for
install, or any upgrade), the "already installed" message now appends
"(latest)" to clarify that the installed version is up to date.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude
Removes the helper method to avoid multiple return values, mirroring
the structure of upgrade.go.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude
…essages

Adds InstalledVersion() to Plugin and uses it to display the prior version
when upgrading, e.g. "upgraded from v1.0.0 to v1.1.0".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude
…grade

Factors out versionChangeVerb helper using hashicorp/go-version to pick
the correct verb when showing version transition messages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Committed-By-Agent: claude
@vcheung-stripe vcheung-stripe requested a review from a team as a code owner April 17, 2026 22:49
Comment thread pkg/cmd/plugin/install.go
return plugin, version
}

func (ic *InstallCmd) installPluginByName(cmd *cobra.Command, arg string) (version string, err error) {
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a big change but most of it is from inlining installPluginByName.

Comment thread pkg/plugins/plugin.go
return nil
}

// IsVersionInstalled returns true if the given version of the plugin is already installed on disk.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think checking the file system has the expected paths and files is enough to say that a version is installed. We could validate the plugin checksum if we want to make this even more precise, but this feels good enough for now since this feature is more of a nicety.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants