Update module github.com/deepmap/oapi-codegen/v2 to v2.6.0#221
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Update module github.com/deepmap/oapi-codegen/v2 to v2.6.0#221renovate[bot] wants to merge 1 commit intomasterfrom
renovate[bot] wants to merge 1 commit intomasterfrom
Conversation
27cff81 to
a770119
Compare
Contributor
Author
|
a770119 to
a23334d
Compare
a23334d to
f61182a
Compare
f61182a to
0c3ebe0
Compare
0c3ebe0 to
5dbf2c4
Compare
5dbf2c4 to
6f3050a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR contains the following updates:
v2.1.0→v2.6.0Release Notes
deepmap/oapi-codegen (github.com/deepmap/oapi-codegen/v2)
v2.6.0: : 7th anniversary release 🎂Compare Source
For those that aren't aware, 7 years ago to the day,
oapi-codegenwas born!(Well, technically it's tonight at midnight UTC, but who's splitting hairs?)
There's nothing too special planned for today, but we thought it'd be the perfect time to cut
a slice of cakea release!🎉 Notable changes
New generated code requires
oapi-codegen/runtimev1.2.0+As part of #2256,
github.com/oapi-codegen/runtimev1.2.0 is needed alongsidegithub.com/oapi-codegen/oapi-codegen, for new generated code.This is providing a more future-proofed means to bind parameters.
See the release notes for the runtime package, and #2256 for more information.
oapi-codegenwas part of the GitHub Secure Open Source Fundoapi-codegenwas one of the projects taking part in the third GitHub Secure Open Source Fund session.We've written up more about what we've learned, and have some more things to share with you over the coming months about lessons we've learned and improvements we've taken that we can share.
We were pretty chuffed to be selected, and it's already helped improve our security posture as a project, which is also very important for the wider ecosystem!
godirective bump in next releaseLong-time users will be aware that we work very hard to try and keep our requirement for Go source compatibility, through the
godirective, especially as we recommend folks useoapi-codegenas a source-tracked dependency.For more details about this, see our Support Model docs.
In the next minor release, we'll be setting our minimum
godirective to Go 1.24 (End-of-Life on 2026-02-11), as it's required for a number of dependencies of ours to be updated any higher, and a change to the module import path for Speakeasy's OpenAPI Overlay library requires us fix this centrally for our users to be able to continue updating their libraries.Behind the scenes cleanup
There's also been some work behind-the-scenes to try and clean up outstanding issues (of which we know there are many!) that have been fixed, as well as Marcin's work on trying to do some more significant rework of the internals with help from Claude.
There's still, as ever, work to go with this - as we've mentioned before, sponsoring our work would be greatly appreciated, so we can continue to put in the work, considering this is a widely used and depended on project.
🚀 New features and improvements
resolve-type-name-collisionsto avoid name collisions (#200) @mgurevin🐛 Bug fixes
nullable.Nullablein arrays (#2242) @jamietannadescriptionis empty (#2226) @jamietanna$reftext responses (#2225) @mromaszewicz📝 Documentation updates
👻 Maintenance
go fix(#2229) @gaiaz-iusipovmake tidyafter Go module updates (#2159) @jamietannamake tidyafter dependency updates togo.mod(#2150) @jamietanna📦 Dependency updates
8 changes
Sponsors
We would like to thank our sponsors for their support during this release.
v2.5.1: : fix a couple of regressions from v2.5.0Compare Source
🐛 Bug fixes
x-go-type-skip-optional-pointerinallOf(#2042) @magnetikonline📝 Documentation updates
godirectives (#2099) @jamietannaprefer-skip-optional-pointer-with-omitzerotypo inREADME.md(#2028) @magnetikonline👻 Maintenance
GOVERSION(#2119) @jamietannapermissionsblocks fortidy.yml(#2101) @jamietannapermissionsblocks for Actions (#2100) @jamietannagovulncheckresults as Code Scanning alerts (#2084) @jamietannaRenovate configuration changes
examplesandinternal/test(#2033) @jamietanna📦 Dependency updates
9 changes
Sponsors
We would like to thank our sponsors for their support during this release.
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-codegendoes 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-pointerextension, but it can be a bit repetitive, or can be more complex when using an OpenAPI Overlay.As of
oapi-codegenv2.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 anomitemptyJSON tagprefer-skip-optional-pointer-with-omitzero: when used in conjunction withprefer-skip-optional-pointer, any optional fields are generated with anomitzeroJSON tag. Requires Go 1.24+In both cases, there is control on a per-field level to set
x-go-type-skip-optional-pointer: falseorx-omitzero: falseto undo these to field(s).See Globally skipping the "optional pointer" for more details.
Generating
omitzeroJSON tags, withx-omitzeroRelated to the above functionality, it is possible to define the OpenAPI extension
x-omitzeroon fields to generate theomitzeroJSON tag, based on the (now not-so-new) Go 1.24 release.Thanks to @lzap for the contribution 🚀
Using OpenAPI 3.1 with
oapi-codegenThere'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-codegenwith 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-initialismsOutput 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
CSPto 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-codegenrelease (all the way in September 2024 🥲) the following big changes towards the project and its ecosystem have been:net/httpmiddleware v1.1.0: Better error handling, allow not validatingServers(by configuration) and return an HTTP 405 Method Not Allowed where appropriateruntime: fixes formaps andx-go-type-skip-optional-pointer🚀 New features and improvements
Bytes()toClientWithResponsesresponses (#1780) @grongorprefer-skip-optional-pointer-on-container-types(#1979) @jamietannaprefer-skip-optional-pointerto default to skipping optional pointers (#1694) @aksdbyaml-tagsoption (#1798) @deitchadditional-initialisms(#1733) @micaelmalta🐛 Bug fixes
operationId(#1945) @jamietannaprefer-skip-optional-pointerin reference types + add tests forpreferskipoptionalpointer(#2021) @jamietanna📝 Documentation updates
Responsemodels (#2025) @jamietanna<details>blocks in<table>(#2019) @jamietannax-enumNames(#2000) @jamietannanethttp-middlewarefor other purposes (#1951) @jamietannago toolfor Go 1.24+ (#1908) @jamietannatools.go(#1788) @jamietanna👻 Maintenance
mainbranch please" (#1847) @jamietannaprefer-skip-optional-pointerin 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 🚀
v2.4.1: : A couple of post-release fixesCompare Source
🐛 Bug fixes
📝 Documentation updates
👻 Maintenance
godirective (#1784) @jamietannaSponsors
We would like to thank our sponsors for their support during this release.
v2.4.0: : OpenAPI Overlay, improvedimport-mappingfunctionality, and a whole host of other great things 🚀Compare Source
🎉 Notable changes
Modifying the input OpenAPI Specification, without needing to modify it directly
Prior to
oapi-codegenv2.4.0, users wishing to override specific configuration, for instance taking advantage of extensions such asx-go-typewould need to modify the OpenAPI specification they are using.In a lot of cases, this OpenAPI specification would be produced by a different team to the consumers (or even a different company) and so asking them to make changes like this were unreasonable.
This would lead to the API consumers needing to vendor the specification from the producer (which is our recommendation anyway) and then make any number of local changes to the specification to make it generate code that looks reasonable.
However, in the case that a consumer would update their specification, they would likely end up with a number of merge conflicts.
Now, as of
oapi-codegenv2.4.0, it is now possible to make changes to the input OpenAPI specification without needing to modify it directly.This takes advantage of the OpenAPI Overlay specification, which is a stable specification.
We're very excited for y'all to be able to take advantage of this, and to be able to manipulate complex specifications you don't have control over.
Using a single package, with multiple OpenAPI spec for a given package
Since
oapi-codegenv2.4.0, it is now possible to split large OpenAPI specifications into the same Go package, using the "self" mapping (denoted by a-) when using Import Mapping.This is an improvement on the previous model, which would require splitting files across multiple packages.
This should improve the ability to use a multi-file OpenAPI specification.
Reverting a breaking change to Strict servers using
text/plainChanges in oapi-codegen#1132 had unintended side effects, and so we have reverted this.
This will be a breaking change to anyone who had pulled in this change, since it landed in v1.13.1.
Minimum version of Go needed for
oapi-codegenis now 1.21Does what it says on the tin.
This was required for a new dependency, and given Go 1.21 is now End-of-Life, this isn't too bad a requirement, without requiring folks unnecessarily bump their minimum supported version higher.
Starting work towards the OpenSSF Best Practices badge
As a means to better understand the compliance of
oapi-codegenwith OpenSSF's Best Practices guide, we've started work towards the "passing" badge.This gives us some insight into where we have gaps, and makes it known for our users, too.
PR Builds now have required status checks
Previously, PR builds did not have a required status check.
Although as maintainers we would only merge changes after the CI checks had passed, this now gives us - and you as our users - greater confidence in the stability of the project.
Previously raised PRs - before 2024-09-20 - will need to merge in the latest changes in
mainbefore these status checks will pass.🚀 New features and improvements
import-mappingto the current package (#1774) @jamietanna @djgilcreaseMuxinterface instead of*http.ServeMux(#1720) @sonalys<and>in property or type names (#1740) @ansonix-oapi-codegen-only-honour-go-name(#1697) @jamietanna🐛 Bug fixes
anyOfs (#1178) @daleef-rahmancookievariables in block scope (#1687) @andremarianiellox-orderfrom next to$ref, if present (#1700) @paulmach📝 Documentation updates
deepmap/oapi-codegenreferences (#1771) @jamietannain: cookie(#1770) @jamietannaFUNDING.yml(#1661) @jamietannaConfiguration
📅 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.