From b573d80f4e0b9de944b656ed5ae2e7fd2d93bd5a Mon Sep 17 00:00:00 2001 From: Sahid Velji Date: Sat, 31 May 2025 12:49:49 -0400 Subject: [PATCH 1/2] chore: add multi-module compatible Makefile targets Signed-off-by: Sahid Velji --- Makefile | 37 ++++++++++++++++++++++++++------ providers/flagd/go.mod | 2 -- providers/flagsmith/go.mod | 2 -- providers/go-feature-flag/go.mod | 2 -- providers/launchdarkly/go.mod | 2 -- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 80f2818a0..6e02b67c6 100644 --- a/Makefile +++ b/Makefile @@ -10,17 +10,10 @@ workspace-init: workspace-update: $(foreach module, $(ALL_GO_MOD_DIRS), go work use $(module);) -test: - go list -f '{{.Dir}}/...' -m | xargs -I{} go test -v {} - # call with TESTCONTAINERS_RYUK_DISABLED="true" to avoid problems with podman on Macs e2e: go clean -testcache && go list -f '{{.Dir}}/...' -m | xargs -I{} go test -tags=e2e {} -lint: - go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.5 - $(foreach module, $(ALL_GO_MOD_DIRS), ${GOPATH}/bin/golangci-lint run $(module)/...;) - new-provider: mkdir ./providers/$(MODULE_NAME) cd ./providers/$(MODULE_NAME) && go mod init github.com/open-feature/go-sdk-contrib/providers/$(MODULE_NAME) && touch README.md @@ -34,3 +27,33 @@ new-hook: append-to-release-please: jq '.packages += {"${MODULE_TYPE}/${MODULE_NAME}": {"release-type":"go","package-name":"${MODULE_TYPE}/${MODULE_NAME}","bump-minor-pre-major":true,"bump-patch-for-minor-pre-major":true,"versioning":"default","extra-files": []}}' release-please-config.json > tmp.json mv tmp.json release-please-config.json + +.PHONY: go-mod-tidy +go-mod-tidy: $(ALL_GO_MOD_DIRS:%=go-mod-tidy/%) +go-mod-tidy/%: DIR=$* +go-mod-tidy/%: + @echo "go mod tidy in $(DIR)" \ + && cd $(DIR) \ + && go mod tidy + +.PHONY: lint +lint: golangci-lint + +.PHONY: golangci-lint golangci-lint-fix +golangci-lint-fix: ARGS=--fix +golangci-lint-fix: golangci-lint +golangci-lint: $(ALL_GO_MOD_DIRS:%=golangci-lint/%) +golangci-lint/%: DIR=$* +golangci-lint/%: + @echo 'golangci-lint $(if $(ARGS),$(ARGS) ,)$(DIR)' \ + && cd $(DIR) \ + && go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8 run --allow-serial-runners $(ARGS) + +.PHONY: test +test-verbose: ARGS=-v +test: $(ALL_GO_MOD_DIRS:%=test/%) +test/%: DIR=$* +test/%: + @echo "go test $(ARGS) $(DIR)/..." \ + && cd $(DIR) \ + && go test $(ARGS) ./... diff --git a/providers/flagd/go.mod b/providers/flagd/go.mod index 31a336edb..f022d4dba 100644 --- a/providers/flagd/go.mod +++ b/providers/flagd/go.mod @@ -2,8 +2,6 @@ module github.com/open-feature/go-sdk-contrib/providers/flagd go 1.23.0 -toolchain go1.24.3 - require ( buf.build/gen/go/open-feature/flagd/connectrpc/go v1.18.1-20250127221518-be6d1143b690.1 buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250127221518-be6d1143b690.2 diff --git a/providers/flagsmith/go.mod b/providers/flagsmith/go.mod index bf165dcc3..60a7237f5 100644 --- a/providers/flagsmith/go.mod +++ b/providers/flagsmith/go.mod @@ -2,8 +2,6 @@ module github.com/open-feature/go-sdk-contrib/providers/flagsmith go 1.22 -toolchain go1.24.3 - require ( github.com/Flagsmith/flagsmith-go-client/v3 v3.7.0 github.com/open-feature/go-sdk v1.11.0 diff --git a/providers/go-feature-flag/go.mod b/providers/go-feature-flag/go.mod index 6deed66be..f898123fa 100644 --- a/providers/go-feature-flag/go.mod +++ b/providers/go-feature-flag/go.mod @@ -2,8 +2,6 @@ module github.com/open-feature/go-sdk-contrib/providers/go-feature-flag go 1.21.0 -toolchain go1.24.3 - require ( github.com/bluele/gcache v0.0.2 github.com/open-feature/go-sdk v1.11.0 diff --git a/providers/launchdarkly/go.mod b/providers/launchdarkly/go.mod index 92ba7a72d..d4a8f922b 100644 --- a/providers/launchdarkly/go.mod +++ b/providers/launchdarkly/go.mod @@ -2,8 +2,6 @@ module github.com/open-feature/go-sdk-contrib/providers/launchdarkly go 1.23.0 -toolchain go1.24.3 - require ( github.com/hooklift/assert v0.1.0 github.com/launchdarkly/go-sdk-common/v3 v3.1.0 From 3540ad8f5b40be8d6a3e5cdbd15d10642a85657d Mon Sep 17 00:00:00 2001 From: Sahid Velji Date: Tue, 10 Jun 2025 21:48:58 -0400 Subject: [PATCH 2/2] chore: use variable for golangci-lint version Signed-off-by: Sahid Velji --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6e02b67c6..09d09f831 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ ALL_GO_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} \; | s MODULE_TYPE ?= providers FLAGD_TESTBED = flagd-testbed FLAGD_SYNC = sync-testbed +GOLANGCI_LINT_VERSION := v1.64.8 workspace-init: go work init @@ -47,7 +48,7 @@ golangci-lint/%: DIR=$* golangci-lint/%: @echo 'golangci-lint $(if $(ARGS),$(ARGS) ,)$(DIR)' \ && cd $(DIR) \ - && go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8 run --allow-serial-runners $(ARGS) + && go run github.com/golangci/golangci-lint/cmd/golangci-lint@${GOLANGCI_LINT_VERSION} run --allow-serial-runners $(ARGS) .PHONY: test test-verbose: ARGS=-v