From 198d3bc1e76fba00175265484f45af610e61d1b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 15:15:16 +0000 Subject: [PATCH 1/2] fix(deps): update module github.com/getkin/kin-openapi to v0.143.0 (go.mod) --- examples/go.mod | 2 +- examples/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- internal/test/go.mod | 2 +- internal/test/go.sum | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/go.mod b/examples/go.mod index 4ab5588e8..8ca0d2bc9 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -5,7 +5,7 @@ go 1.25.0 replace github.com/oapi-codegen/oapi-codegen/v2 => ../ require ( - github.com/getkin/kin-openapi v0.142.0 + github.com/getkin/kin-openapi v0.143.0 github.com/gin-gonic/gin v1.12.0 github.com/go-chi/chi/v5 v5.2.5 github.com/gofiber/fiber/v2 v2.52.13 diff --git a/examples/go.sum b/examples/go.sum index d486e0e84..164ed817f 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -59,8 +59,8 @@ github.com/fxamacker/cbor/v2 v2.9.2 h1:X4Ksno9+x3cz0TZv69ec1hxP/+tymuR8PXQJyDwfh github.com/fxamacker/cbor/v2 v2.9.2/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM= github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= -github.com/getkin/kin-openapi v0.142.0 h1:izj0vBdFprMhitfzaX8sTqztsEQyvwhssBoB6n8NO7w= -github.com/getkin/kin-openapi v0.142.0/go.mod h1:3BH9M9XDe/y9M5DSvEocVYAYq1w0qrhJHjC/vZi0AaY= +github.com/getkin/kin-openapi v0.143.0 h1:mIrOpir9J5x2m1vdree2rhuJ/GYGwbTVBp1kuSCJ62Y= +github.com/getkin/kin-openapi v0.143.0/go.mod h1:3BH9M9XDe/y9M5DSvEocVYAYq1w0qrhJHjC/vZi0AaY= github.com/gin-contrib/sse v1.1.1 h1:uGYpNwTacv5R68bSGMapo62iLTRa9l5zxGCps4hK6ko= github.com/gin-contrib/sse v1.1.1/go.mod h1:QXzuVkA0YO7o/gun03UI1Q+FTI8ZV/n5t03kIQAI89s= github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= diff --git a/go.mod b/go.mod index fbacc1818..44530fc4c 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/oapi-codegen/oapi-codegen/v2 go 1.25.0 require ( - github.com/getkin/kin-openapi v0.142.0 + github.com/getkin/kin-openapi v0.143.0 github.com/speakeasy-api/openapi v1.24.0 github.com/stretchr/testify v1.11.1 go.yaml.in/yaml/v3 v3.0.4 diff --git a/go.sum b/go.sum index f65df5a85..758d3c1e4 100644 --- a/go.sum +++ b/go.sum @@ -13,8 +13,8 @@ github.com/dprotaso/go-yit v0.0.0-20220510233725-9ba8df137936/go.mod h1:ttYvX5ql github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/getkin/kin-openapi v0.142.0 h1:izj0vBdFprMhitfzaX8sTqztsEQyvwhssBoB6n8NO7w= -github.com/getkin/kin-openapi v0.142.0/go.mod h1:3BH9M9XDe/y9M5DSvEocVYAYq1w0qrhJHjC/vZi0AaY= +github.com/getkin/kin-openapi v0.143.0 h1:mIrOpir9J5x2m1vdree2rhuJ/GYGwbTVBp1kuSCJ62Y= +github.com/getkin/kin-openapi v0.143.0/go.mod h1:3BH9M9XDe/y9M5DSvEocVYAYq1w0qrhJHjC/vZi0AaY= github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= github.com/go-openapi/swag/jsonname v0.26.0 h1:gV1NFX9M8avo0YSpmWogqfQISigCmpaiNci8cGECU5w= diff --git a/internal/test/go.mod b/internal/test/go.mod index d1b522f1d..34e805294 100644 --- a/internal/test/go.mod +++ b/internal/test/go.mod @@ -5,7 +5,7 @@ go 1.25.0 replace github.com/oapi-codegen/oapi-codegen/v2 => ../../ require ( - github.com/getkin/kin-openapi v0.142.0 + github.com/getkin/kin-openapi v0.143.0 github.com/gin-gonic/gin v1.12.0 github.com/go-chi/chi/v5 v5.2.5 github.com/gofiber/fiber/v2 v2.52.13 diff --git a/internal/test/go.sum b/internal/test/go.sum index 79913cd5a..b6cfe37da 100644 --- a/internal/test/go.sum +++ b/internal/test/go.sum @@ -57,8 +57,8 @@ github.com/fxamacker/cbor/v2 v2.9.2 h1:X4Ksno9+x3cz0TZv69ec1hxP/+tymuR8PXQJyDwfh github.com/fxamacker/cbor/v2 v2.9.2/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM= github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= -github.com/getkin/kin-openapi v0.142.0 h1:izj0vBdFprMhitfzaX8sTqztsEQyvwhssBoB6n8NO7w= -github.com/getkin/kin-openapi v0.142.0/go.mod h1:3BH9M9XDe/y9M5DSvEocVYAYq1w0qrhJHjC/vZi0AaY= +github.com/getkin/kin-openapi v0.143.0 h1:mIrOpir9J5x2m1vdree2rhuJ/GYGwbTVBp1kuSCJ62Y= +github.com/getkin/kin-openapi v0.143.0/go.mod h1:3BH9M9XDe/y9M5DSvEocVYAYq1w0qrhJHjC/vZi0AaY= github.com/gin-contrib/sse v1.1.1 h1:uGYpNwTacv5R68bSGMapo62iLTRa9l5zxGCps4hK6ko= github.com/gin-contrib/sse v1.1.1/go.mod h1:QXzuVkA0YO7o/gun03UI1Q+FTI8ZV/n5t03kIQAI89s= github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= From 08fff26f1a0c02b693d45d12adc36171ebaf78fd Mon Sep 17 00:00:00 2001 From: Marcin Romaszewicz Date: Tue, 21 Jul 2026 16:46:46 -0700 Subject: [PATCH 2/2] Fix path ordering kin-openapi v0.143.0 removed StringMap and introduced attachOriginToResolved, which re-attaches Origins to $ref-resolved path items using the *external* file's origin tree. pathItemSourceLine was therefore returning line numbers from the external file rather than the base spec, producing a different (and non-reproducible across external file layouts) handler registration order. Detect external $ref path items (Ref != "" and not an internal "#/..." ref) and return 0, restoring the stable SortedMapKeys alphabetical fallback that matched pre-v0.143.0 behaviour. Closes: N/A --- pkg/codegen/operations.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/codegen/operations.go b/pkg/codegen/operations.go index 6e0447a5d..7146fc882 100644 --- a/pkg/codegen/operations.go +++ b/pkg/codegen/operations.go @@ -1329,6 +1329,15 @@ func pathItemSourceLine(pathItem *openapi3.PathItem) int { if pathItem == nil || pathItem.Origin == nil || pathItem.Origin.Key == nil { return 0 } + // kin-openapi >= v0.143.0 calls attachOriginToResolved for $ref-resolved + // path items, giving them an Origin from the *external* file rather than + // the base spec. Those line numbers are meaningless for base-spec + // declaration order, so treat them as unavailable (return 0), which lets + // the stable SortedMapKeys alphabetical order take over — matching the + // pre-v0.143.0 behaviour. + if pathItem.Ref != "" && !strings.HasPrefix(pathItem.Ref, "#") { + return 0 + } return pathItem.Origin.Key.Line }