Skip to content

Releases: mattpolzin/OpenAPIKit

Extend and Validate (4)

06 May 19:59
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: 4.0.0-rc.2...4.0.0-rc.3

Extend and Validate

10 Apr 15:53
da7d3a5
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 3.4.2...3.5.0

The path that ends where it begins (4) (release candidate)

18 Mar 23:48
e7048da
Compare
Choose a tag to compare

What's Changed

  • Fix and test for handling of path "/" by @timbms in #403

New Contributors

Full Changelog: 4.0.0-rc.1...4.0.0-rc.2

The path that ends where it begins

18 Mar 23:44
fd27b29
Compare
Choose a tag to compare

What's Changed

  • Fix and test for handling of path "/" by @timbms in #403

New Contributors

Full Changelog: 3.4.1...3.4.2

What Versions May Come (release candidate)

17 Feb 20:57
3c34a3f
Compare
Choose a tag to compare

What's Changed

  • Add a migration guide (#396)
  • Support future OAS versions without breaking enum changes (#397)

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

16 Feb 15:39
1d1f322
Compare
Choose a tag to compare
Send Some Love Pre-release
Pre-release

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.

  1. The constructor for AnyCodable now requires knowledge at compile time that the value it is initialized with is Sendable.
  2. Array and Dictionary literal protocol conformances had to be dropped. Anywhere you were relying on implicit conversion from e.g. ["hello": 1] to an AnyCodable, wrap the literal with an explicit call to init: .init(["hello": 1]).

Hook, Line, and Sinker (4)

12 Feb 17:22
c5aa61b
Compare
Choose a tag to compare
Pre-release

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 and allServers.

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

Full Changelog: 4.0.0-beta.1...4.0.0-beta.2

Hook, Line, and Sinker

12 Feb 17:07
90c137c
Compare
Choose a tag to compare

What's Changed

  • surface webhook operation ids with Document allOperationIds property (#393)
  • ditto for allTags and allServers.

Full Changelog: 3.4.0...3.4.1

Change is the only constant

19 Jan 01:16
749ceba
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 3.3.0...3.4.0

Everything but the guide

01 Nov 19:17
bc1d339
Compare
Choose a tag to compare
Pre-release

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

Full Changelog: 4.0.0-alpha.6...4.0.0-beta.1