Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update module github.com/deepmap/oapi-codegen/v2 to v2.4.1 #145

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 25, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/deepmap/oapi-codegen/v2 v2.0.0 -> v2.4.1 age adoption passing confidence

Release Notes

deepmap/oapi-codegen (github.com/deepmap/oapi-codegen/v2)

v2.4.1: : A couple of post-release fixes

Compare Source

🐛 Bug fixes

📝 Documentation updates

👻 Maintenance

Sponsors

We would like to thank our sponsors for their support during this release.

DevZero logo

Speakeasy logo

Elastic logo

Cybozu logo

v2.4.0: : OpenAPI Overlay, improved import-mapping functionality, 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-codegen v2.4.0, users wishing to override specific configuration, for instance taking advantage of extensions such as x-go-type would 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-codegen v2.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-codegen v2.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/plain

Changes in https://github.com/oapi-codegen/oapi-codegen/pull/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-codegen is now 1.21

Does 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-codegen with OpenSSF's Best Practices guide, we've started work towards the "passing" badge.

OpenSSF Best Practices

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 main before these status checks will pass.

🚀 New features and improvements

🐛 Bug fixes

📝 Documentation updates

👻 Maintenance

📦 Dependency updates

9 changes

Sponsors

We would like to thank our sponsors for their support during this release.

DevZero logo

Speakeasy logo

Elastic logo

Cybozu logo

v2.3.0: Updates related to repository move

Compare Source

With this version, oapi-codegen consolidates all code under github.com/oapi-codegen. When you install the core tool, please use this new location, github.com/oapi-codegen/oapi-codegen/v2 starting with version v2.3.0, but continue to use github.com/deepmap/oapi-codegen/v2 with any earlier release.

This release contains changes to import paths, go.mod and the README.

What's Changed

Full Changelog: oapi-codegen/oapi-codegen@v2.2.0...v2.3.0

v2.2.0: : Pure-Go 1.22+ server, documentation overhaul. JSON schema and several bug fixes

Compare Source

Big announcements

In case you've missed it, we've got a few big announcements as maintainers of oapi-codegen which we'd recommend you read in more depth.

We'd also like to thank our sponsors for this release:

DevZero logo
🔊 Notable features

The v2.2.0 release was largely focussed on the following big changes, alongside a number of other bug fixes.

Generate a pure Go 1.22+ net/http server

With Go 1.22+'s enhanced routing, it's now easier than ever to be able to write a pure-Go HTTP service, and thanks to a contribution from @​thedadams we now have a std-http-server, further documented in the Supported Servers section in the README.

[!NOTE]
Not seeing this working, i.e. seeing a 404 page not found? Make sure that the go directive in your project's go.mod is updated!

In the future we're going to see if we can preemptively warn you if you're not quite set up correctly.

Documentation overhaul

A significant undertaking in this release was to rewrite pretty much every line of documentation we had, as well as introducing a number of additional examples and test cases.

We're excited to hear your feedback on the new structure of the README, the additional docs added, and whether there are any additional examples that may be of use.

JSON Schema configuration

In the spirit of documentation, we now also have a JSON schema which can be found further documented in the Usage section in the README.

This not only gives a separate definition of fields and their meaning, but it can be used with IDEs for autocompletion and validation, allowing for a much better Developer Experience.

kin-openapi upgrade

A few big upgrades have come in kin-openapi, which we use for the underlying OpenAPI parsing and validation, which included a significant breaking change that meant that consumers of oapi-codegen couldn't upgrade the kin-openapi version until we had made changes in oapi-codegen.

This has additionally been set up as an FAQ as it's one we commonly get.

🚀 New features and improvements
🐛 Bug fixes
📝 Documentation updates
👻 Maintenance
📦 Dependency updates
16 changes

v2.1.0: : Nullable, external reference improvements, x-order, and many more!

Compare Source

🔊 Notable features

Nullable types

It's possible that you want to be able to determine whether a field isn't sent, is sent as null or has a value.

For instance, if you had the following OpenAPI property:

S:
  type: object
  properties:
    Field:
      type: string
      nullable: true
    required: []

The current behaviour in oapi-codegen is to generate:

type S struct {
	Field *string `json:"field,omitempty"`
}

However, you lose the ability to understand the three cases, as there's no way to distinguish two of the types from each other:

  • is this field not sent? (Can be checked with S.Field == nil)
  • is this field null? (Can be checked with S.Field == nil)
  • does this field have a value? (S.Field != nil && *S.Field == "123")

Therefore, as requested in #​1039, this is now possible to represent with the nullable.Nullable type from our new library, oapi-codegen/nullable.

If you configure your generator's Output Options as so:

output-options:
  nullable-type: true

You will now receive the following output:

type S struct {
    Field nullable.Nullable[string] `json:"field,omitempty"`
}

Note that this is opt-in only, due to it being a break in existing signatures and behaviour.

You can find out more about how this works in a blog post with further details.

External references are now handled better

A big change has come in which handling of external references (also called import mappings) is much more resilient and predictable for generated code.

This allows cases where multiple files referencing each other (for instance if you've split your API across multiple files, and join them using $refs) now correctly generate code.

There are a few cases that won't be covered, that we'll complete in https://github.com/deepmap/oapi-codegen/issues/1440 but until then, it hopefully should work better.

Thank you to Ejendomstorvet for sponsoring this work.

🚀 New features and improvements

🐛 Bug fixes

📝 Documentation updates

👻 Maintenance

📦 Dependency updates

New Contributors


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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependency label Jan 25, 2024
@renovate renovate bot force-pushed the renovate/github.com-deepmap-oapi-codegen-v2-2.x branch from 54cf56c to c514d59 Compare June 4, 2024 07:30
@renovate renovate bot changed the title Update module github.com/deepmap/oapi-codegen/v2 to v2.1.0 Update module github.com/deepmap/oapi-codegen/v2 to v2.2.0 Jun 4, 2024
@renovate renovate bot force-pushed the renovate/github.com-deepmap-oapi-codegen-v2-2.x branch from c514d59 to b0e8ca1 Compare June 4, 2024 11:08
Copy link
Contributor Author

renovate bot commented Jun 4, 2024

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 5 additional dependencies were updated

Details:

Package Change
github.com/stretchr/testify v1.8.4 -> v1.9.0
github.com/getkin/kin-openapi v0.120.0 -> v0.124.0
github.com/go-openapi/jsonpointer v0.20.0 -> v0.20.2
github.com/go-openapi/swag v0.22.4 -> v0.22.8
golang.org/x/text v0.14.0 -> v0.15.0

@renovate renovate bot force-pushed the renovate/github.com-deepmap-oapi-codegen-v2-2.x branch 2 times, most recently from f50a9e1 to f3f3002 Compare June 6, 2024 22:44
@renovate renovate bot changed the title Update module github.com/deepmap/oapi-codegen/v2 to v2.2.0 Update module github.com/deepmap/oapi-codegen/v2 to v2.3.0 Jun 6, 2024
Copy link
Contributor Author

renovate bot commented Jun 6, 2024

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: go.sum
Command failed: go get -d -t ./...
go: -d flag is deprecated. -d=true is a no-op
go: github.com/deepmap/oapi-codegen/[email protected]: parsing go.mod:
	module declares its path as: github.com/oapi-codegen/oapi-codegen/v2
	        but was required as: github.com/deepmap/oapi-codegen/v2

@renovate renovate bot force-pushed the renovate/github.com-deepmap-oapi-codegen-v2-2.x branch from f3f3002 to 2e7d49f Compare September 20, 2024 21:57
@renovate renovate bot changed the title Update module github.com/deepmap/oapi-codegen/v2 to v2.3.0 Update module github.com/deepmap/oapi-codegen/v2 to v2.4.0 Sep 20, 2024
@renovate renovate bot force-pushed the renovate/github.com-deepmap-oapi-codegen-v2-2.x branch from 2e7d49f to e5177de Compare September 28, 2024 12:49
@renovate renovate bot changed the title Update module github.com/deepmap/oapi-codegen/v2 to v2.4.0 Update module github.com/deepmap/oapi-codegen/v2 to v2.4.1 Sep 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants