Skip to content

Releases: pb33f/libopenapi

`AllOf` retains original ordering

10 Jan 22:41
Compare
Choose a tag to compare
v0.4.13

fix: remove debug logging

v0.4.10 What Changed fixes.

30 Dec 15:30
Compare
Choose a tag to compare

Various tweaks to improve some panics and failures with what changed.

v0.4.8

20 Dec 21:46
Compare
Choose a tag to compare

A bug fix for #54 and a new element in the index for object schemas with properties and add additional info to enum reference

v0.4.7

16 Dec 21:12
Compare
Choose a tag to compare

Improves index handling of servers.

v0.4.3

13 Dec 19:17
Compare
Choose a tag to compare

Fixes a memory leak when using libopenapi with large numbers of specs.

v0.4.0

09 Dec 12:07
Compare
Choose a tag to compare

v0.4.0 Updates the base.Schema for both high and low-level models to fix some inaccuracies and introduce missing properties for JSON Schema / v3.1

What was added

  • if
  • else
  • then
  • propertyNames
  • contains
  • minContains
  • maxContains
  • unevaluatedItems
  • unevaluatedProperties
  • dependentSchemas
  • patternProperties

What changed

DynamicValue was added as a container for values with differing types. This follows the same pattern established in the low level model.

Items can now be a SchemaProxy or a bool (using DynamicValue), no longer a slice.

Not is also no longer a slice.

ExclusiveMinimum and ExclusiveMaximum are now DynamicValue pointers that can be either a bool or int64

The ExclusiveMinimumBool and ExclusiveMaximumBool properties have been removed as they are now combined.

These are breaking changes, but it does set a standard for how to proceed.

v0.3.0

30 Nov 15:28
Compare
Choose a tag to compare

This release fixes a couple of missing elements:

  • The v3 high-level Document object was incorrectly implemented. The security property needed to be a slice. Breaking
  • Server was missing extensions in both high and low-level APIs.

This is a whole feature bump because of the change to the Document model. security is now a slice, not a single instance. A small breaking change, but a breaking one none-the-less.

v0.2.0 what-changed feature available

21 Nov 16:41
Compare
Choose a tag to compare

v0.2.0 Update for libopenapi

What's New?

What Changed

The what-changed feature has been added to libopenapi. It's a Swagger and OpenAPI 3+ diff engine that checks every single property of every single element in a specification.

Using the low-level model of a document, the feature runs up and down the model looking for changes between left and right versions of objects.

This required the build-out of new methods in the low-level models to support hashing and some generics getters required by the unified model.

PrefixItem support for 3.1 JSONSchema

Now available in the Schema object shared by all models.

Breaking Changes

Swagger enums breaking change

I realized that the v2 model has the same primitive/enum issues that are partly cleaned up in v3. This is a breaking change because enums are now []any and not []string, as well as primitives for bool, int, etc., are all pointers now instead of the copied values.

This will break any consumers.

Updated model builder to use lowercase checks only. breaking change

The case checking seems kinda dumb now, looking back at this code. I am not sure why I felt the need to do that. However after being aware of it for some time and not being happy with the extra cycles, it puts the code through.

This change removes ConvertCase from the utils package, as it's no longer used or needed. If it needs to come back, we can re-add the code, but deleting code always makes me happy. It also removed a dependency from the project, which reduces the footprint; great!

Refactored SecurityRequirement breaking change

The v3 model is wrong and out of sync with the spec. It's been corrected, so the v2 and v3 models for SecurityRequirement have collapsed into a base model. They are the same data structures. This has allowed me to delete the complexity of sharing two different models for the same structure by unifying the model correctly. I don't know why I decided to change the v3 model. Oh well, it's been corrected.