diff --git a/.github/actions/go-linter/action.yaml b/.github/actions/go-linter/action.yaml index 8e401b10e7..fd341901dc 100644 --- a/.github/actions/go-linter/action.yaml +++ b/.github/actions/go-linter/action.yaml @@ -18,6 +18,6 @@ runs: - name: Run staticcheck linter uses: dominikh/staticcheck-action@v1.3.1 with: - version: 2024.1.1 + version: 2025.1.1 install-go: false working-directory: ${{ inputs.working-directory }} diff --git a/.github/actions/go/action.yaml b/.github/actions/go/action.yaml index d3ce7666e8..d74ca14a61 100644 --- a/.github/actions/go/action.yaml +++ b/.github/actions/go/action.yaml @@ -3,7 +3,7 @@ description: 'This action install go and cache modules and build dependencies' inputs: go-version: description: 'The go version to install' - default: '1.23' + default: '1.25' required: false cache-dependency-path: description: 'The path to the dependency to cache' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7007e5900f..2254cffef3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,8 +9,8 @@ The following sections provide a guide on how to contribute to the WunderGraph C This guide assumes you have already installed the following software: -- make (should be installed on all linux / IOS systems) -- [golang](https://go.dev/dl/) `>= 1.18` +- make (should be installed on all Linux / MacOS systems) +- [golang](https://go.dev/dl/) `>= 1.25` - [pnpm](https://pnpm.io/installation) >= 9 - Node.js [LTS](https://nodejs.org/en/about/releases/). You can also pnpm to [install](https://pnpm.io/cli/env) Node.js. - [docker desktop](https://docs.docker.com/desktop/) (includes: engine, buildkit & compose) **or**: @@ -44,7 +44,7 @@ According to best practices, we don't commit the `go.work` or `go.work.sum` file ### Example ``` -go 1.23 +go 1.25 use ( ./demo @@ -86,8 +86,8 @@ We merge all pull requests in `squash merge` mode. You're not enforced to use [c - [Docker](https://docs.docker.com/get-docker/) - [Docker Compose V2](https://docs.docker.com/compose/install/) - [NodeJS LTS](https://nodejs.org/en/download/) -- [PNPM 8+](https://pnpm.io/installation) -- [Go 1.23+](https://golang.org/doc/install) +- [PNPM 9+](https://pnpm.io/installation) +- [Go 1.25+](https://golang.org/doc/install) - [wgc](https://www.npmjs.com/package/wgc) - .env/.env.local (see below) diff --git a/Makefile b/Makefile index e33f39f2f5..63c2674640 100644 --- a/Makefile +++ b/Makefile @@ -4,11 +4,11 @@ setup-build-tools: go install github.com/bufbuild/buf/cmd/buf@v1.32.2 go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2 go install connectrpc.com/connect/cmd/protoc-gen-connect-go@v1.16.2 - go install gotest.tools/gotestsum@v1.12.2 + go install gotest.tools/gotestsum@v1.12.3 setup-dev-tools: setup-build-tools go install github.com/amacneil/dbmate/v2@v2.6.0 - go install honnef.co/go/tools/cmd/staticcheck@2024.1.1 + go install honnef.co/go/tools/cmd/staticcheck@2025.1.1 go install github.com/yannh/kubeconform/cmd/kubeconform@v0.6.3 go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.11.3 go install github.com/vektra/mockery/v3@v3.3.1 diff --git a/adr/custom-modules-v1.md b/adr/custom-modules-v1.md index a2fd513072..6f9aec7a64 100644 --- a/adr/custom-modules-v1.md +++ b/adr/custom-modules-v1.md @@ -662,7 +662,7 @@ Every custom router has its own `go.mod` file which represents in Go a module. T module github.com/myorg/myrouter -go 1.23 +go 1.25 require ( "github.com/wundergraph/cosmo/router v0.93.0 diff --git a/aws-lambda-router/go.mod b/aws-lambda-router/go.mod index bea3880a8a..24c9124cbd 100644 --- a/aws-lambda-router/go.mod +++ b/aws-lambda-router/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/aws-lambda-router -go 1.23.0 +go 1.25 require ( github.com/akrylysov/algnhsa v1.1.0 diff --git a/cli/src/commands/router/commands/plugin/templates/plugin.ts b/cli/src/commands/router/commands/plugin/templates/plugin.ts index 5cd556161c..fbb94082c5 100644 --- a/cli/src/commands/router/commands/plugin/templates/plugin.ts +++ b/cli/src/commands/router/commands/plugin/templates/plugin.ts @@ -6,7 +6,7 @@ const goMod = ` module {modulePath} -go 1.24.1 +go 1.25.1 require ( github.com/stretchr/testify v1.10.0 @@ -402,7 +402,7 @@ generated/service.proto bin/ `; -const dockerfile = `FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS builder +const dockerfile = `FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS builder # Multi-platform build arguments ARG TARGETOS diff --git a/composition-go/go.mod b/composition-go/go.mod index 25e8e15be8..66f005baae 100644 --- a/composition-go/go.mod +++ b/composition-go/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/composition-go -go 1.23 +go 1.25 require ( github.com/dop251/goja v0.0.0-20230906160731-9410bcaa81d2 diff --git a/connect-go/go.mod b/connect-go/go.mod index be9eddc70a..9bd40c963a 100644 --- a/connect-go/go.mod +++ b/connect-go/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/connect-go -go 1.23 +go 1.25 require ( connectrpc.com/connect v1.17.0 diff --git a/demo/docker/availability.Dockerfile b/demo/docker/availability.Dockerfile index adb9364105..a97f5df0f9 100644 --- a/demo/docker/availability.Dockerfile +++ b/demo/docker/availability.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/countries.Dockerfile b/demo/docker/countries.Dockerfile index e5e2ff4ef9..dbbba843dc 100644 --- a/demo/docker/countries.Dockerfile +++ b/demo/docker/countries.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/employees.Dockerfile b/demo/docker/employees.Dockerfile index a5870cc9a6..55cb45840c 100644 --- a/demo/docker/employees.Dockerfile +++ b/demo/docker/employees.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/family.Dockerfile b/demo/docker/family.Dockerfile index 91486f00c7..d036650b74 100644 --- a/demo/docker/family.Dockerfile +++ b/demo/docker/family.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/hobbies.Dockerfile b/demo/docker/hobbies.Dockerfile index dfcbca172e..4903dfe403 100644 --- a/demo/docker/hobbies.Dockerfile +++ b/demo/docker/hobbies.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/mood.Dockerfile b/demo/docker/mood.Dockerfile index 25b66f5c61..bbe6454b75 100644 --- a/demo/docker/mood.Dockerfile +++ b/demo/docker/mood.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/products.Dockerfile b/demo/docker/products.Dockerfile index 5ec05ce48e..6ca1a899d0 100644 --- a/demo/docker/products.Dockerfile +++ b/demo/docker/products.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/products_fg.Dockerfile b/demo/docker/products_fg.Dockerfile index 31e523f004..66b416c887 100644 --- a/demo/docker/products_fg.Dockerfile +++ b/demo/docker/products_fg.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/docker/test1.Dockerfile b/demo/docker/test1.Dockerfile index f3d5c2ff3b..c5910ef086 100644 --- a/demo/docker/test1.Dockerfile +++ b/demo/docker/test1.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder WORKDIR /app diff --git a/demo/go.mod b/demo/go.mod index 39482304ff..854a61eda7 100644 --- a/demo/go.mod +++ b/demo/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/demo -go 1.23.0 +go 1.25 require ( github.com/99designs/gqlgen v0.17.76 @@ -92,7 +92,7 @@ require ( github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/logrusorgru/aurora/v4 v4.0.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/mark3labs/mcp-go v0.30.0 // indirect + github.com/mark3labs/mcp-go v0.36.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/minio/md5-simd v1.1.2 // indirect diff --git a/demo/go.sum b/demo/go.sum index ec71ad2e11..2a8c0753c9 100644 --- a/demo/go.sum +++ b/demo/go.sum @@ -217,6 +217,7 @@ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/mark3labs/mcp-go v0.30.0 h1:Taz7fiefkxY/l8jz1nA90V+WdM2eoMtlvwfWforVYbo= github.com/mark3labs/mcp-go v0.30.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4= +github.com/mark3labs/mcp-go v0.36.0/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= diff --git a/demo/pkg/subgraphs/projects/Dockerfile b/demo/pkg/subgraphs/projects/Dockerfile index 6729c1f311..f5812fd5be 100644 --- a/demo/pkg/subgraphs/projects/Dockerfile +++ b/demo/pkg/subgraphs/projects/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS builder # Multi-platform build arguments ARG TARGETOS diff --git a/demo/pkg/subgraphs/projects/go.mod b/demo/pkg/subgraphs/projects/go.mod index 1fde2a01fa..53c0a3235a 100644 --- a/demo/pkg/subgraphs/projects/go.mod +++ b/demo/pkg/subgraphs/projects/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects -go 1.23.0 +go 1.25 require ( github.com/hashicorp/go-hclog v1.6.3 diff --git a/graphqlmetrics/Dockerfile b/graphqlmetrics/Dockerfile index c2b75e7e45..5f89a3a1e1 100644 --- a/graphqlmetrics/Dockerfile +++ b/graphqlmetrics/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${BUILDPLATFORM} golang:1.23 AS builder +FROM --platform=${BUILDPLATFORM} golang:1.25 AS builder ARG TARGETOS ARG TARGETARCH diff --git a/graphqlmetrics/go.mod b/graphqlmetrics/go.mod index 9cc1c09c7c..8a8bd016a4 100644 --- a/graphqlmetrics/go.mod +++ b/graphqlmetrics/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/graphqlmetrics -go 1.23.0 +go 1.25 require ( connectrpc.com/connect v1.16.2 diff --git a/otelcollector/Dockerfile b/otelcollector/Dockerfile index 18fffb0cd0..560d99eb4b 100644 --- a/otelcollector/Dockerfile +++ b/otelcollector/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${BUILDPLATFORM} golang:1.23 AS builder +FROM --platform=${BUILDPLATFORM} golang:1.25 AS builder ARG TARGETOS ARG TARGETARCH @@ -16,7 +16,7 @@ RUN ./ocb --config otelcol-builder.yaml \ && chmod +x /app/otelcol-dev/otelcol \ && /app/otelcol-dev/otelcol --version -FROM --platform=${BUILDPLATFORM} golang:1.23 +FROM --platform=${BUILDPLATFORM} golang:1.25 COPY ./otel-config.yaml /etc/otel-config.yaml COPY --from=builder /app/otelcol-dev/otelcol /otelcol diff --git a/router-plugin/go.mod b/router-plugin/go.mod index 99506041ea..f1a4bc0106 100644 --- a/router-plugin/go.mod +++ b/router-plugin/go.mod @@ -1,8 +1,9 @@ module github.com/wundergraph/cosmo/router-plugin -go 1.23.0 +go 1.25 require ( + github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/go-plugin v1.6.3 github.com/hashicorp/go-retryablehttp v0.7.7 github.com/tonglil/opentelemetry-go-datadog-propagator v0.1.3 @@ -25,7 +26,6 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect diff --git a/router-tests/go.mod b/router-tests/go.mod index 1ee92c4187..9b20c95146 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/router-tests -go 1.23.0 +go 1.25 require ( github.com/MicahParks/jwkset v0.9.0 diff --git a/router-tests/testenv/testexec.go b/router-tests/testenv/testexec.go index c8b92f55f8..a02ccfbec2 100644 --- a/router-tests/testenv/testexec.go +++ b/router-tests/testenv/testexec.go @@ -162,8 +162,10 @@ func runRouterBin(t *testing.T, ctx context.Context, opts RunRouterBinConfigOpti } newCtx, cancel := context.WithCancelCause(ctx) + err = runCmdWithLogs(t, ctx, cmd, false, cmdLogChannel) if err != nil { + cancel(err) return nil, err } diff --git a/router/Dockerfile b/router/Dockerfile index 3fd57faaba..50ad4410d2 100644 --- a/router/Dockerfile +++ b/router/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${BUILDPLATFORM} golang:1.23 AS builder +FROM --platform=${BUILDPLATFORM} golang:1.25 AS builder ARG TARGETOS ARG TARGETARCH diff --git a/router/README.md b/router/README.md index dbee35ef68..dd09c420e8 100644 --- a/router/README.md +++ b/router/README.md @@ -9,7 +9,7 @@ The router is the component that understands the GraphQL Federation protocol. It ### Prerequisites -- [Go 1.21](https://golang.org/doc/install) +- [Go 1.25](https://golang.org/doc/install) Use the `.env.example` file to create a `.env` file with the specified environment variables. diff --git a/router/custom.Dockerfile b/router/custom.Dockerfile index de3aef8f83..5866e125a3 100644 --- a/router/custom.Dockerfile +++ b/router/custom.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23 as builder +FROM golang:1.25 as builder ARG TARGETOS ARG TARGETARCH diff --git a/router/go.mod b/router/go.mod index 74a005e3d4..a275277fa5 100644 --- a/router/go.mod +++ b/router/go.mod @@ -1,6 +1,6 @@ module github.com/wundergraph/cosmo/router -go 1.23.0 +go 1.25 require ( connectrpc.com/connect v1.16.2 diff --git a/scripts/install-proto-tools.sh b/scripts/install-proto-tools.sh index ee2ac08dd8..b20194009f 100755 --- a/scripts/install-proto-tools.sh +++ b/scripts/install-proto-tools.sh @@ -2,7 +2,7 @@ set -euo pipefail # Versions -GO_VERSION="${GO_VERSION:-1.24.1}" +GO_VERSION="${GO_VERSION:-1.25.1}" PROTOC_VERSION="${PROTOC_VERSION:-29.3}" PROTOC_GEN_GO_VERSION="${PROTOC_GEN_GO_VERSION:-1.36.5}" PROTOC_GEN_GO_GRPC_VERSION="${PROTOC_GEN_GO_GRPC_VERSION:-1.5.1}"