Releases: mattpolzin/OpenAPIKit
Extend and Validate (4)
What's Changed
- Add vendor extension support to Content.Encoding type by @ayushshrivastv (#405)
- Added a Validation that checks all operationIds in Link objects are valid by @ayushshrivastv (#404)
New Contributors
- @ayushshrivastv made their first contribution in #405
Full Changelog: 4.0.0-rc.2...4.0.0-rc.3
Extend and Validate
What's Changed
- Add vendor extension support to Content.Encoding type by @ayushshrivastv (#405)
- Added a Validation that checks all operationIds in Link objects are valid by @ayushshrivastv (#404)
New Contributors
- @ayushshrivastv made their first contribution in #405
Full Changelog: 3.4.2...3.5.0
The path that ends where it begins (4) (release candidate)
The path that ends where it begins
What Versions May Come (release candidate)
What's Changed
Breaking Changes
The OpenAPIKit30 module's OpenAPI.Document.Version
gained the v3_0_x(x: Int)
case and the OpenAPIKit module's OpenAPI.Document.Version
gained the v3_1_x(x: Int)
case. Any exhaustive switch statements will need to be updated.
Full Changelog: 4.0.0-beta.2...4.0.0-rc.1
Send Some Love
This release is mostly about rounding off concurrency support to the extent where strict concurrency checking can be enabled in CI and downstream projects can use OpenAPIKit in async contexts.
Breaking Changes
In order to conform to the Sendable
protocol, some breaking changes were made to the AnyCodable
type. This is the type used extensively for "examples" and "vendor extensions" in OpenAPIKit.
- The constructor for
AnyCodable
now requires knowledge at compile time that the value it is initialized with isSendable
. - Array and Dictionary literal protocol conformances had to be dropped. Anywhere you were relying on implicit conversion from e.g.
["hello": 1]
to anAnyCodable
, wrap the literal with an explicit call to init:.init(["hello": 1])
.
Hook, Line, and Sinker (4)
What's Changed
- Disable vendor extensions via user info (#388)
- Make Document.Info members mutable by @wwalexander (#390)
- surface webhook operation ids with
Document
allOperationIds
property (#393) - ditto for
allTags
andallServers
.
Breaking Changes
Whereas disabling vendorExtensions
encoding/decoding used to be accomplished by setting VendorExtensionsConfiguration. isEnabled
to false, you now disable it using the encoder's or decoder's user info. The isEnabled
static property has been removed entirely because it was incompatible with async code. The README now describes disabling vender extensions follows:
let userInfo = [VendorExtensionsConfiguration.enabledKey: false]
let encoder = JSONEncoder()
encoder.userInfo = userInfo
let decoder = JSONDecoder()
decoder.userInfo = userInfo
New Contributors
- @wwalexander made their first contribution in #390
Full Changelog: 4.0.0-beta.1...4.0.0-beta.2
Hook, Line, and Sinker
What's Changed
- surface webhook operation ids with
Document
allOperationIds
property (#393) - ditto for
allTags
andallServers
.
Full Changelog: 3.4.0...3.4.1
Change is the only constant
What's Changed
- Make Document.Info members mutable by @wwalexander in #390
New Contributors
- @wwalexander made their first contribution in #390
Full Changelog: 3.3.0...3.4.0
Everything but the guide
This marks a shift from introducing breaking changes to fixing bugs and writing a migration guide for moving from OpenAPIKit v3.x to OpenAPIKit v4.0.0. There may be more breaking changes, but my goal is to get to a stable place to release the next major version and save most improvements requiring breaking changes for the following major version.
What's Changed
Non-breaking
- Fix
URLTemplate
stack overflow (#384) - Fix typo in symbol name for server variable validations by @theoriginalbit (#385)
- Add support for new patch versions of OAS (#386)
Breaking
- New OAS versions do modify an enum so if you are switching on the value of the OpenAPI version, this is a breaking change.
- Update the default version for new documents and documents converted from OAS 3.0 to OAS 3.1. This isn't likely to cause problems, but if you don't specify the version, it will be changing in future output of this library. The newer versions are mostly clarifications of the specification, so this does not have any impact on the actual definitions OpenAPIKit produces, just the OpenAPI Specification version indicated in the output.
New Contributors
- @theoriginalbit made their first contribution in #385
Full Changelog: 4.0.0-alpha.6...4.0.0-beta.1