From ec99b6910b4143f7f6abeb760e9969493a52581b Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 16 Jun 2017 16:19:13 -0400 Subject: [PATCH] remove "~> 0.0" constraint suggestions Don't suggest constraints when the available plugin isn't versioned. Add zero version const for comparisons. --- command/init.go | 2 +- plugin/discovery/find.go | 2 +- plugin/discovery/meta_set.go | 2 +- plugin/discovery/meta_set_test.go | 4 ++-- plugin/discovery/version.go | 2 ++ 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/command/init.go b/command/init.go index 69c0ec3aa..d7dd4c98d 100644 --- a/command/init.go +++ b/command/init.go @@ -303,7 +303,7 @@ func (c *InitCommand) getProviders(path string, state *terraform.State, upgrade continue } - if req.Versions.Unconstrained() { + if req.Versions.Unconstrained() && meta.Version != discovery.VersionZero { // meta.Version.MustParse is safe here because our "chosen" metas // were already filtered for validity of versions. constraintSuggestions[name] = meta.Version.MustParse().MinorUpgradeConstraintStr() diff --git a/plugin/discovery/find.go b/plugin/discovery/find.go index 539b9358c..a01b96c4c 100644 --- a/plugin/discovery/find.go +++ b/plugin/discovery/find.go @@ -153,7 +153,7 @@ func ResolvePluginPaths(paths []string) PluginMetaSet { parts := strings.SplitN(baseName, "_v", 2) name := parts[0] - version := "0.0.0" + version := VersionZero if len(parts) == 2 { version = parts[1] } diff --git a/plugin/discovery/meta_set.go b/plugin/discovery/meta_set.go index 363978443..181ea1fcd 100644 --- a/plugin/discovery/meta_set.go +++ b/plugin/discovery/meta_set.go @@ -186,7 +186,7 @@ func (s PluginMetaSet) OverridePaths(paths map[string]string) PluginMetaSet { for name, path := range paths { ret.Add(PluginMeta{ Name: name, - Version: "0.0.0", + Version: VersionZero, Path: path, }) } diff --git a/plugin/discovery/meta_set_test.go b/plugin/discovery/meta_set_test.go index bd15c5be6..f2d8ec5ce 100644 --- a/plugin/discovery/meta_set_test.go +++ b/plugin/discovery/meta_set_test.go @@ -402,14 +402,14 @@ func TestPluginMetaSetOverridePaths(t *testing.T) { } if !ns.Has(PluginMeta{ Name: "foo", - Version: "0.0.0", + Version: VersionZero, Path: "override-foo", }) { t.Errorf("new set is missing 'foo' override") } if !ns.Has(PluginMeta{ Name: "fun", - Version: "0.0.0", + Version: VersionZero, Path: "override-fun", }) { t.Errorf("new set is missing 'fun' override") diff --git a/plugin/discovery/version.go b/plugin/discovery/version.go index 1dffebc97..8fad58d67 100644 --- a/plugin/discovery/version.go +++ b/plugin/discovery/version.go @@ -7,6 +7,8 @@ import ( version "github.com/hashicorp/go-version" ) +const VersionZero = "0.0.0" + // A VersionStr is a string containing a possibly-invalid representation // of a semver version number. Call Parse on it to obtain a real Version // object, or discover that it is invalid.