📖 3 min read (~ 500 words).

June 2026

go-openapi and go-swagger had an active June, with 602 commits across 17 repositories. The month leaned heavily on security hardening — sandboxed file loading, secure spec loaders, and generator/CI defenses — while two structural moves reshaped the libraries: the swag / jsonpointer dependency reshuffle and the extraction of go-swagger’s code scanner into a new go-openapi/codescan repository.

Themes

  • Security hardening, across the board. swag now sandboxes local file loading behind a WithRoot option (GHSA-v2xp-g8xf-22pf) and documents the loader’s security implications; loads added secure loaders and containment options; go-swagger hardened generated code against untrusted-spec injection and sanitized its examples/artifact CI workflows; ci-workflows and testify received coverage- and secret-handling hardening.
  • The swag / jsonpointer reshuffle. jsonpointer was refactored into specialized sub-package modules, dropped mailru/easyjson as a default dependency, removed most remaining external dependencies, and gained a new jsonname provider that better respects Go naming conventions; swag deprecated its own jsonname module (moved to jsonpointer) and added a generic sync.Pool factory. Shipped as jsonpointer v0.24.0 and swag v0.27.0.
  • A new repository: go-openapi/codescan. The spec code-scanner previously living inside go-swagger is now a standalone repo, complete with a Hugo documentation site scaffold, a grammar preprocessor, and a deterministic golden-test harness; go-swagger was updated to consume codescan v0.35.0 for swagger generate spec.
  • testify assertions for go1.26. New ErrorAsType / NotErrorAsType assertions with go-version-guarded codegen, plus guards against nil interfaces and cyclic inputs in the reflection walkers, and new fuzz tests. Released as v2.6.0.
  • go-swagger codegen fixes. Explicit casing for x-go-name is now preserved (#3319, #3357), an initialisms regression from v0.34.0 was fixed, and an opt-in --with-stringer generates model String() methods.
  • Docs alignment and CI cadence. Documentation was aligned with the org template across many libraries, a shared webhook-announcements workflow (Discord) was added, and the all-time contributors workflow moved from a weekly to a monthly schedule.

Repository highlights

RepositoryLatest releaseHighlights
swagv0.27.0Sandboxed local loading via WithRoot (GHSA-v2xp-g8xf-22pf); generic sync.Pool factory; jsonname module deprecated
jsonpointerv0.24.0Split into specialized sub-package modules; default mailru/easyjson dependency dropped; new jsonname provider
go-swaggerv0.35.0Generator hardened against untrusted-spec injection; x-go-name casing preserved; opt-in --with-stringer; wired to codescan v0.35.0
codescanv0.35.0New repository — code scanner extracted from go-swagger; Hugo docs site; grammar preprocessor
testifyv2.6.0go1.26 ErrorAsType/NotErrorAsType assertions; nil/cyclic-input guards; fuzz tests
loadsv0.24.0Secure loaders and containment options
runtimev0.32.4nil-guard for param.Schema in the UntypedRequestBinder map path
validatev0.26.0Warn on dubious $ref locations; pool-redemption race fix
strfmtv0.26.4Validate uri format for absolute URIs carrying a fragment
specv0.22.6Header extension now marshals correctly as JSON
ci-workflowsv0.4.0New webhook-announcements shared workflow; coverage security hardening

A quarterly report covering this period in more depth will follow.

Thanks to our contributors

A warm thank-you to the external contributors who landed changes this month:

Your contributions are genuinely appreciated.