From 25d9ece42f73b5ac2d43c5e39b50a291fd83560c Mon Sep 17 00:00:00 2001 From: Anton Troshin Date: Fri, 22 Nov 2024 15:59:51 -0600 Subject: [PATCH 1/2] Add version parsing check skip malformed versions and avoid panic (#1469) * Add version parsing check skip malformed versions and avoid panic Signed-off-by: Anton Troshin * lint Signed-off-by: Anton Troshin * do not return error on nil, skip bad versions Signed-off-by: Anton Troshin * simplify condition to skip prerelease and versions with metadata print warning on error and non-semver version tag Signed-off-by: Anton Troshin --------- Signed-off-by: Anton Troshin --- pkg/version/version.go | 17 ++++++++++---- pkg/version/version_test.go | 46 +++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/pkg/version/version.go b/pkg/version/version.go index d25f6d92e..22aa2e75a 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -119,11 +119,18 @@ func GetLatestReleaseGithub(githubURL string) (string, error) { latestVersion := defaultVersion for _, release := range githubRepoReleases { - if !strings.Contains(release.TagName, "-rc") { - cur, _ := version.NewVersion(strings.TrimPrefix(release.TagName, "v")) - if cur.GreaterThan(latestVersion) { - latestVersion = cur - } + cur, err := version.NewVersion(strings.TrimPrefix(release.TagName, "v")) + if err != nil || cur == nil { + print.WarningStatusEvent(os.Stdout, "Malformed version %s, skipping", release.TagName) + continue + } + // Prerelease versions and versions with metadata are skipped. + if cur.Prerelease() != "" || cur.Metadata() != "" { + continue + } + + if cur.GreaterThan(latestVersion) { + latestVersion = cur } } diff --git a/pkg/version/version_test.go b/pkg/version/version_test.go index 0642e2700..24cb69b93 100644 --- a/pkg/version/version_test.go +++ b/pkg/version/version_test.go @@ -162,6 +162,52 @@ func TestGetVersionsGithub(t *testing.T) { "no releases", "", }, + { + "Malformed version no releases", + "/malformed_version_no_releases", + `[ + { + "url": "https://api.github.com/repos/dapr/dapr/releases/186741665", + "html_url": "https://github.com/dapr/dapr/releases/tag/vedge", + "id": 186741665, + "tag_name": "vedge", + "target_commitish": "master", + "name": "Dapr Runtime vedge", + "draft": false, + "prerelease": false + } +] `, + "no releases", + "", + }, + { + "Malformed version with latest", + "/malformed_version_with_latest", + `[ + { + "url": "https://api.github.com/repos/dapr/dapr/releases/186741665", + "html_url": "https://github.com/dapr/dapr/releases/tag/vedge", + "id": 186741665, + "tag_name": "vedge", + "target_commitish": "master", + "name": "Dapr Runtime vedge", + "draft": false, + "prerelease": false + }, + { + "url": "https://api.github.com/repos/dapr/dapr/releases/44766923", + "html_url": "https://github.com/dapr/dapr/releases/tag/v1.5.1", + "id": 44766923, + "tag_name": "v1.5.1", + "target_commitish": "master", + "name": "Dapr Runtime v1.5.1", + "draft": false, + "prerelease": false + } +] `, + "", + "1.5.1", + }, } m := http.NewServeMux() s := http.Server{Addr: ":12345", Handler: m, ReadHeaderTimeout: time.Duration(5) * time.Second} From dbbe022a8abeb53ff536d8243fbdfa019441af84 Mon Sep 17 00:00:00 2001 From: Mike Nguyen Date: Tue, 26 Nov 2024 21:09:01 +0000 Subject: [PATCH 2/2] fix: allow the scheduler client to initialise for edge builds (#1467) Signed-off-by: mikeee --- cmd/run.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/run.go b/cmd/run.go index f91c772e6..45247cd09 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -230,7 +230,7 @@ dapr run --run-file /path/to/directory -k output.DaprGRPCPort) } - if semver.Compare(fmt.Sprintf("v%v", daprVer.RuntimeVersion), "v1.14.0-rc.1") == -1 { + if (daprVer.RuntimeVersion != "edge") && (semver.Compare(fmt.Sprintf("v%v", daprVer.RuntimeVersion), "v1.14.0-rc.1") == -1) { print.InfoStatusEvent(os.Stdout, "The scheduler is only compatible with dapr runtime 1.14 onwards.") for i, arg := range output.DaprCMD.Args { if strings.HasPrefix(arg, "--scheduler-host-address") {