From 881f2b5c0893267c7ad4ebb73a94aaa27bb9a417 Mon Sep 17 00:00:00 2001 From: Jeremy Rickards Date: Fri, 20 Feb 2026 10:10:45 +0100 Subject: [PATCH 1/2] Skip Go linting for plugins with no schemas For example, plugins like LogExplorer that only provide frontend components (Explore views) don't have a `schemas/` directory and should be skipped. Signed-off-by: Jeremy Rickards --- scripts/golangci-lint/golangci-lint.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/golangci-lint/golangci-lint.go b/scripts/golangci-lint/golangci-lint.go index 38d54cbbc..863c31145 100644 --- a/scripts/golangci-lint/golangci-lint.go +++ b/scripts/golangci-lint/golangci-lint.go @@ -25,6 +25,13 @@ func main() { var isError bool for _, workspace := range npm.MustGetWorkspaces(".") { + schemasPath := workspace + "/schemas" + if _, err := os.Stat(schemasPath); os.IsNotExist(err) { + // No schemas, skip go validation + logrus.Infof("skipping golangci-lint for %s (no schemas)", workspace) + continue + } + cmd := exec.Command("golangci-lint", "run") cmd.Dir = workspace cmd.Stdout = os.Stdout From a7d90194c030c3f0e3a99cc45a4936316b6f2de2 Mon Sep 17 00:00:00 2001 From: Jeremy Rickards <9338170+rickardsjp@users.noreply.github.com> Date: Fri, 20 Feb 2026 12:26:41 +0100 Subject: [PATCH 2/2] Address PR feedback Co-authored-by: Augustin Husson Signed-off-by: Jeremy Rickards --- scripts/golangci-lint/golangci-lint.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/golangci-lint/golangci-lint.go b/scripts/golangci-lint/golangci-lint.go index 863c31145..22cec592c 100644 --- a/scripts/golangci-lint/golangci-lint.go +++ b/scripts/golangci-lint/golangci-lint.go @@ -16,6 +16,7 @@ package main import ( "os" "os/exec" + "path/filepath" "github.com/perses/perses/scripts/pkg/npm" "github.com/sirupsen/logrus" @@ -25,7 +26,7 @@ func main() { var isError bool for _, workspace := range npm.MustGetWorkspaces(".") { - schemasPath := workspace + "/schemas" + schemasPath := filepath.Join(workspace,"schemas") if _, err := os.Stat(schemasPath); os.IsNotExist(err) { // No schemas, skip go validation logrus.Infof("skipping golangci-lint for %s (no schemas)", workspace)