Update module github.com/oapi-codegen/oapi-codegen/v2 to v2.5.0 - autoclosed #176
+3
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.
This PR contains the following updates:
v2.4.1
->v2.5.0
Release Notes
oapi-codegen/oapi-codegen (github.com/oapi-codegen/oapi-codegen/v2)
v2.5.0
: : No more optional pointers (optionally),omitzero
, better control over initialisms, and so much more!Compare Source
v2.5.0: No more optional pointers (optionally)!
🎉 Notable changes
Begone optional pointers! (optionally)
One of the key things
oapi-codegen
does is to use an "optional pointer", following idiomatic Go practices, to indicate that a field/type is optional.This can be tuned on a per-field basis, using the
x-go-type-skip-optional-pointer
extension, but it can be a bit repetitive, or can be more complex when using an OpenAPI Overlay.As of
oapi-codegen
v2.5.0, this can be tuned in two specific ways, via the following Output Options:prefer-skip-optional-pointer
: a global default that you do not want the "optional pointer" generated. Optional fields will not have an "optional pointer", and will have anomitempty
JSON tagprefer-skip-optional-pointer-with-omitzero
: when used in conjunction withprefer-skip-optional-pointer
, any optional fields are generated with anomitzero
JSON tag. Requires Go 1.24+In both cases, there is control on a per-field level to set
x-go-type-skip-optional-pointer: false
orx-omitzero: false
to undo these to field(s).See Globally skipping the "optional pointer" for more details.
Generating
omitzero
JSON tags, withx-omitzero
Related to the above functionality, it is possible to define the OpenAPI extension
x-omitzero
on fields to generate theomitzero
JSON tag, based on the (now not-so-new) Go 1.24 release.Thanks to @lzap for the contribution 🚀
Using OpenAPI 3.1 with
oapi-codegen
There's some promising behind-the-scenes discussions with may lead to OpenAPI 3.1 support (#373) coming in the not-too-distant future 👀
In the meantime, Jamie (one of the Core Maintainers) has written a blog post about how to use
oapi-codegen
with OpenAPI 3.1 specs (by downgrading them to OpenAPI 3.0).Defining your own initialisms
As a means to define your own custom initialisms, it's possible to use the
additional-initialisms
Output Option.Thanks @micaelmalta for the contribution 🚀
If your organisation uses a lot of TLAs (Two Letter Acronyms or Three Letter Acronyms) or any other sorts of initialisms, it's handy to be able to configure these yourself.
For instance, if you regularly use the term CSP to refer to Cloud Service Provider, you may want
CSP
to be used in variable names.This makes it possible to define i.e.
Minimum version of Go needed for oapi-codegen is now 1.22.5
As part of a couple of updates in #1888 and #1986, we're now requiring Go >= 1.22.5.
Similar to the bump to Go 1.21 in v2.4.0
Notable background work
Since the last
oapi-codegen
release (all the way in September 2024 🥲) the following big changes towards the project and its ecosystem have been:net/http
middleware v1.1.0: Better error handling, allow not validatingServers
(by configuration) and return an HTTP 405 Method Not Allowed where appropriateruntime
: fixes formap
s andx-go-type-skip-optional-pointer
🚀 New features and improvements
Bytes()
toClientWithResponses
responses (#1780) @grongorprefer-skip-optional-pointer-on-container-types
(#1979) @jamietannaprefer-skip-optional-pointer
to default to skipping optional pointers (#1694) @aksdbyaml-tags
option (#1798) @deitchadditional-initialisms
(#1733) @micaelmalta🐛 Bug fixes
operationId
(#1945) @jamietannaprefer-skip-optional-pointer
in reference types + add tests forpreferskipoptionalpointer
(#2021) @jamietanna📝 Documentation updates
Response
models (#2025) @jamietanna<details>
blocks in<table>
(#2019) @jamietannax-enumNames
(#2000) @jamietannanethttp-middleware
for other purposes (#1951) @jamietannago tool
for Go 1.24+ (#1908) @jamietannatools.go
(#1788) @jamietanna👻 Maintenance
main
branch please" (#1847) @jamietannaprefer-skip-optional-pointer
in reference types + add tests forpreferskipoptionalpointer
(#2021) @jamietanna📦 Dependency updates
13 changes
d35c59a
(#1969) @renovate[bot]Sponsors
We would like to thank our sponsors for their support during this release.
New contributors
We had 16 new contributors in this release, thanks folks 🚀
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.