Bump Go dependencies in both backend/ and backend/_example/memory_store.
Notable updates:
- github.com/go-pkgz/lgr v0.12.1 -> v0.12.3
- github.com/klauspost/compress v1.18.2 -> v1.18.5
- github.com/PuerkitoBio/goquery v1.11.0 -> v1.12.0
- github.com/montanaflynn/stats v0.7.1 -> v0.9.0
- github.com/redis/go-redis/v9 v9.17.2 -> v9.18.0
- github.com/slack-go/slack v0.17.3 -> v0.21.1
- go.mongodb.org/mongo-driver v1.17.6 -> v1.17.9
- golang.org/x/crypto v0.48.0 -> v0.50.0
- golang.org/x/net v0.49.0 -> v0.53.0
- golang.org/x/image v0.36.0 -> v0.39.0
- golang.org/x/sys v0.41.0 -> v0.43.0
- golang.org/x/{oauth2,sync,text} minor bumps
Key markdown/sanitisation libs (bluemonday v1.0.27,
alecthomas/chroma/v2 v2.23.1, russross/blackfriday/v2 v2.1.0,
Depado/bfchroma/v2 v2.0.0) are already at the latest available
versions and were not bumped.
Verified the Chroma span-class allowlist regex in
backend/app/store/comment.go:128-131 is still fully in sync with
chroma/v2 types.go StandardTypes map (86 classes, byte-equal after
sorting). The inline comment references commit c263f6f which is
stale (Chroma is at v2 now), but the class list content is current.
Ran `go mod tidy` + `go mod vendor` + full race test suite on both
modules. All green. Added a reminder in CLAUDE.md that updating
backend/ Go modules also requires `go mod tidy` in
backend/_example/memory_store since the example module uses a
local replace directive and inherits indirect deps from the main
module.
123 lines
4.0 KiB
Makefile
123 lines
4.0 KiB
Makefile
GO_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} \; | sort)
|
|
REDIS_VERSION ?= 8.6
|
|
RE_CLUSTER ?= false
|
|
RCE_DOCKER ?= true
|
|
CLIENT_LIBS_TEST_IMAGE ?= redislabs/client-libs-test:custom-21860421418-debian-amd64
|
|
|
|
docker.start:
|
|
export RE_CLUSTER=$(RE_CLUSTER) && \
|
|
export RCE_DOCKER=$(RCE_DOCKER) && \
|
|
export REDIS_VERSION=$(REDIS_VERSION) && \
|
|
export CLIENT_LIBS_TEST_IMAGE=$(CLIENT_LIBS_TEST_IMAGE) && \
|
|
docker compose --profile all up -d --quiet-pull
|
|
|
|
docker.stop:
|
|
docker compose --profile all down
|
|
|
|
docker.e2e.start:
|
|
@echo "Starting Redis and cae-resp-proxy for E2E tests..."
|
|
docker compose --profile e2e up -d --quiet-pull
|
|
@echo "Waiting for services to be ready..."
|
|
@sleep 3
|
|
@echo "Services ready!"
|
|
|
|
docker.e2e.stop:
|
|
@echo "Stopping E2E services..."
|
|
docker compose --profile e2e down
|
|
|
|
test:
|
|
$(MAKE) docker.start
|
|
@if [ -z "$(REDIS_VERSION)" ]; then \
|
|
echo "REDIS_VERSION not set, running all tests"; \
|
|
$(MAKE) test.ci; \
|
|
else \
|
|
MAJOR_VERSION=$$(echo "$(REDIS_VERSION)" | cut -d. -f1); \
|
|
if [ "$$MAJOR_VERSION" -ge 8 ]; then \
|
|
echo "REDIS_VERSION $(REDIS_VERSION) >= 8, running all tests"; \
|
|
$(MAKE) test.ci; \
|
|
else \
|
|
echo "REDIS_VERSION $(REDIS_VERSION) < 8, skipping vector_sets tests"; \
|
|
$(MAKE) test.ci.skip-vectorsets; \
|
|
fi; \
|
|
fi
|
|
$(MAKE) docker.stop
|
|
|
|
test.ci:
|
|
set -e; for dir in $(GO_MOD_DIRS); do \
|
|
echo "go test in $${dir}"; \
|
|
(cd "$${dir}" && \
|
|
export RE_CLUSTER=$(RE_CLUSTER) && \
|
|
export RCE_DOCKER=$(RCE_DOCKER) && \
|
|
export REDIS_VERSION=$(REDIS_VERSION) && \
|
|
go mod tidy -compat=1.18 && \
|
|
go vet && \
|
|
go test -v -coverprofile=coverage.txt -covermode=atomic ./... -race -skip Example); \
|
|
done
|
|
cd internal/customvet && go build .
|
|
go vet -vettool ./internal/customvet/customvet
|
|
|
|
test.ci.skip-vectorsets:
|
|
set -e; for dir in $(GO_MOD_DIRS); do \
|
|
echo "go test in $${dir} (skipping vector sets)"; \
|
|
(cd "$${dir}" && \
|
|
export RE_CLUSTER=$(RE_CLUSTER) && \
|
|
export RCE_DOCKER=$(RCE_DOCKER) && \
|
|
export REDIS_VERSION=$(REDIS_VERSION) && \
|
|
go mod tidy -compat=1.18 && \
|
|
go vet && \
|
|
go test -v -coverprofile=coverage.txt -covermode=atomic ./... -race \
|
|
-run '^(?!.*(?:VectorSet|vectorset|ExampleClient_vectorset)).*$$' -skip Example); \
|
|
done
|
|
cd internal/customvet && go build .
|
|
go vet -vettool ./internal/customvet/customvet
|
|
|
|
bench:
|
|
export RE_CLUSTER=$(RE_CLUSTER) && \
|
|
export RCE_DOCKER=$(RCE_DOCKER) && \
|
|
export REDIS_VERSION=$(REDIS_VERSION) && \
|
|
go test ./... -test.run=NONE -test.bench=. -test.benchmem -skip Example
|
|
|
|
test.e2e:
|
|
@echo "Running E2E tests with auto-start proxy..."
|
|
$(MAKE) docker.e2e.start
|
|
@echo "Running tests..."
|
|
@E2E_SCENARIO_TESTS=true go test -v ./maintnotifications/e2e/ -timeout 30m || ($(MAKE) docker.e2e.stop && exit 1)
|
|
$(MAKE) docker.e2e.stop
|
|
@echo "E2E tests completed!"
|
|
|
|
test.e2e.docker:
|
|
@echo "Running Docker-compatible E2E tests..."
|
|
$(MAKE) docker.e2e.start
|
|
@echo "Running unified injector tests..."
|
|
@E2E_SCENARIO_TESTS=true go test -v -run "TestUnifiedInjector|TestCreateTestFaultInjectorLogic|TestFaultInjectorClientCreation" ./maintnotifications/e2e/ -timeout 10m || ($(MAKE) docker.e2e.stop && exit 1)
|
|
$(MAKE) docker.e2e.stop
|
|
@echo "Docker E2E tests completed!"
|
|
|
|
test.e2e.logic:
|
|
@echo "Running E2E logic tests (no proxy required)..."
|
|
@E2E_SCENARIO_TESTS=true \
|
|
REDIS_ENDPOINTS_CONFIG_PATH=/tmp/test_endpoints_verify.json \
|
|
FAULT_INJECTION_API_URL=http://localhost:8080 \
|
|
go test -v -run "TestCreateTestFaultInjectorLogic|TestFaultInjectorClientCreation" ./maintnotifications/e2e/
|
|
@echo "Logic tests completed!"
|
|
|
|
.PHONY: all test test.ci test.ci.skip-vectorsets bench fmt test.e2e test.e2e.logic docker.e2e.start docker.e2e.stop
|
|
|
|
build:
|
|
export RE_CLUSTER=$(RE_CLUSTER) && \
|
|
export RCE_DOCKER=$(RCE_DOCKER) && \
|
|
export REDIS_VERSION=$(REDIS_VERSION) && \
|
|
go build .
|
|
|
|
fmt:
|
|
gofumpt -w ./
|
|
goimports -w -local github.com/redis/go-redis ./
|
|
|
|
go_mod_tidy:
|
|
set -e; for dir in $(GO_MOD_DIRS); do \
|
|
echo "go mod tidy in $${dir}"; \
|
|
(cd "$${dir}" && \
|
|
go get -u ./... && \
|
|
go mod tidy -compat=1.18); \
|
|
done
|