From 6cd35ae46e39bb1431b2294acdc3381c86fd2a46 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 15 Jan 2026 18:04:15 +0000 Subject: [PATCH] Remove modcheck from build dependencies to allow local development The modcheck target was blocking local development by requiring all go.mod and go.sum changes to be committed before building. This change: - Removes modcheck from build target dependencies (binary, binary-minimal, binary-debug, cli, bench, exporter-minimal) - Keeps modcheck as a standalone target for CI validation - Adds explicit modcheck step to golangci-lint workflow for CI validation - Allows developers to build locally without committing dependency changes - CI still validates that go.mod and go.sum are properly maintained This resolves the issue where developers couldn't build after making code changes that required dependency updates until they committed the go.mod and go.sum changes first. Co-authored-by: rchincha <45800463+rchincha@users.noreply.github.com> --- .github/workflows/golangci-lint.yaml | 3 +++ Makefile | 14 +++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/golangci-lint.yaml b/.github/workflows/golangci-lint.yaml index 15be9f12..29bc111a 100644 --- a/.github/workflows/golangci-lint.yaml +++ b/.github/workflows/golangci-lint.yaml @@ -44,6 +44,9 @@ jobs: # skip-build-cache: true env: GOEXPERIMENT: jsonv2 + - name: Check go.mod and go.sum are up to date + run: | + make modcheck - name: Run linter from make target run: | make check diff --git a/Makefile b/Makefile index 8f7cd0f8..152c2cf4 100644 --- a/Makefile +++ b/Makefile @@ -104,7 +104,7 @@ else endif .PHONY: all -all: modcheck swaggercheck binary binary-minimal binary-debug cli bench exporter-minimal verify-config check check-gh-actions test covhtml +all: swaggercheck binary binary-minimal binary-debug cli bench exporter-minimal verify-config check check-gh-actions test covhtml .PHONY: modtidy modtidy: @@ -182,30 +182,30 @@ gen-protobuf: $(PROTOC) .PHONY: binary-minimal binary-minimal: EXTENSIONS= -binary-minimal: modcheck build-metadata +binary-minimal: build-metadata env CGO_ENABLED=0 GOEXPERIMENT=jsonv2 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)-minimal$(BIN_EXT) $(BUILDMODE_FLAGS) -v -trimpath -ldflags "-X $(CONFIG_RELEASE_TAG)=${RELEASE_TAG} -X $(CONFIG_COMMIT)=${COMMIT} -X $(CONFIG_BINARY_TYPE)=minimal -X $(CONFIG_GO_VERSION)=${GO_VERSION} -s -w" ./cmd/zot .PHONY: binary binary: $(if $(findstring ui,$(BUILD_LABELS)), ui) -binary: modcheck build-metadata +binary: build-metadata env CGO_ENABLED=0 GOEXPERIMENT=jsonv2 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)$(BIN_EXT) $(BUILDMODE_FLAGS) $(GO_CMD_TAGS) -v -trimpath -ldflags "-X $(CONFIG_RELEASE_TAG)=${RELEASE_TAG} -X $(CONFIG_COMMIT)=${COMMIT} -X $(CONFIG_BINARY_TYPE)=$(extended-name) -X $(CONFIG_GO_VERSION)=${GO_VERSION} -s -w" ./cmd/zot .PHONY: binary-debug binary-debug: $(if $(findstring ui,$(BUILD_LABELS)), ui) -binary-debug: modcheck swaggercheck build-metadata +binary-debug: swaggercheck build-metadata env CGO_ENABLED=0 GOEXPERIMENT=jsonv2 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)-debug$(BIN_EXT) $(BUILDMODE_FLAGS) -tags $(BUILD_LABELS),debug -v -gcflags all='-N -l' -ldflags "-X $(CONFIG_RELEASE_TAG)=${RELEASE_TAG} -X $(CONFIG_COMMIT)=${COMMIT} -X $(CONFIG_BINARY_TYPE)=$(extended-name) -X $(CONFIG_GO_VERSION)=${GO_VERSION}" ./cmd/zot .PHONY: cli -cli: modcheck build-metadata +cli: build-metadata env CGO_ENABLED=0 GOEXPERIMENT=jsonv2 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zli-$(OS)-$(ARCH)$(BIN_EXT) $(BUILDMODE_FLAGS) -tags $(BUILD_LABELS),search -v -trimpath -ldflags "-X $(CONFIG_COMMIT)=${COMMIT} -X $(CONFIG_BINARY_TYPE)=$(extended-name) -X $(CONFIG_GO_VERSION)=${GO_VERSION} -s -w" ./cmd/zli .PHONY: bench -bench: modcheck build-metadata +bench: build-metadata env CGO_ENABLED=0 GOEXPERIMENT=jsonv2 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zb-$(OS)-$(ARCH)$(BIN_EXT) $(BUILDMODE_FLAGS) $(GO_CMD_TAGS) -v -trimpath -ldflags "-X $(CONFIG_COMMIT)=${COMMIT} -X $(CONFIG_BINARY_TYPE)=$(extended-name) -X $(CONFIG_GO_VERSION)=${GO_VERSION} -s -w" ./cmd/zb .PHONY: exporter-minimal exporter-minimal: EXTENSIONS= -exporter-minimal: modcheck build-metadata +exporter-minimal: build-metadata env CGO_ENABLED=0 GOEXPERIMENT=jsonv2 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zxp-$(OS)-$(ARCH)$(BIN_EXT) $(BUILDMODE_FLAGS) -v -trimpath ./cmd/zxp .PHONY: test-prereq