From 501e67a6577577f819bff7db21d58a3090dea5f1 Mon Sep 17 00:00:00 2001 From: Dan Cech Date: Fri, 23 Sep 2016 08:38:59 -0400 Subject: [PATCH] use semver when comparing grafana and plugin versions (#6108) --- pkg/plugins/update_checker.go | 18 +++++++++++++++++- public/views/index.html | 8 ++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/pkg/plugins/update_checker.go b/pkg/plugins/update_checker.go index 79e6c061e5d..76c566803ac 100644 --- a/pkg/plugins/update_checker.go +++ b/pkg/plugins/update_checker.go @@ -9,6 +9,7 @@ import ( "github.com/grafana/grafana/pkg/log" "github.com/grafana/grafana/pkg/setting" + "github.com/hashicorp/go-version" ) var ( @@ -85,7 +86,15 @@ func checkForUpdates() { for _, gplug := range gNetPlugins { if gplug.Slug == plug.Id { plug.GrafanaNetVersion = gplug.Version - plug.GrafanaNetHasUpdate = plug.Info.Version != plug.GrafanaNetVersion + + plugVersion, err1 := version.NewVersion(plug.Info.Version) + gplugVersion, err2 := version.NewVersion(gplug.Version) + + if err1 != nil || err2 != nil { + plug.GrafanaNetHasUpdate = plug.Info.Version != plug.GrafanaNetVersion + } else { + plug.GrafanaNetHasUpdate = plugVersion.LessThan(gplugVersion) + } } } } @@ -117,4 +126,11 @@ func checkForUpdates() { GrafanaLatestVersion = githubLatest.Stable GrafanaHasUpdate = githubLatest.Stable != setting.BuildVersion } + + currVersion, err1 := version.NewVersion(setting.BuildVersion) + latestVersion, err2 := version.NewVersion(GrafanaLatestVersion) + + if err1 == nil && err2 == nil { + GrafanaHasUpdate = currVersion.LessThan(latestVersion) + } } diff --git a/public/views/index.html b/public/views/index.html index a54d2c0c166..8d231ed2b68 100644 --- a/public/views/index.html +++ b/public/views/index.html @@ -64,13 +64,13 @@ Grafana v[[.BuildVersion]] (commit: [[.BuildCommit]]) -
  • - [[if .NewGrafanaVersionExists]] + [[if .NewGrafanaVersionExists]] +
  • New version available! - [[end]] -
  • + + [[end]]