Skip to content

Releases: disneystreaming/smithy4s

v0.14.1: bug fix (swagger-ui)

13 Jul 10:29
ca86b08
Compare
Choose a tag to compare

Fixes a bug that would lead callers to get 404'd on the default swagger-ui path.

What's Changed

Full Changelog: v0.14.0...v0.14.1

v0.14.0: Scala-native support, improvements across the board

12 Jul 12:55
081bc16
Compare
Choose a tag to compare

The 0.14.0 release breaks binary compatibility, as well as source compatibility (in a few places) with the previous versions.

It does however achieves a number of significant improvements across the boards, in terms of user experience, performance and maintainability.

Special thanks to @plokhotnyuk, @schmeedy, @yisraelU, @daddykotex

Highlights

  • The core/json/dynamic modules are now published for scala-native (scala 3 only for the time being)
  • The http4s-swagger-ui module has received an overhaul, in order to avoid relying on a javascript function that presented a security issue, but also to allow for users to easily serve several specifications at the same time.
  • Having union members target the Unit shape now leads to the corresponding type be rendered as a case object in Scala.
  • A mechanism was added for users to be able to opt-in Vector and IndexedSeq Scala types when using smithy list shape.
  • The Timestamp construct was overhauled to unify its modelling across the different platforms, and received a massive performance improvement for parsing/serialising.
  • Modified the SBT plugin to have SBT pre-fetch the artifacts before calling the Smithy4s code-generation, making it more respectful to other settings (such as repository credentials)
  • The smithy4s.schema.Schema construct was reworked to unify the collections under a common abstraction, and the smithy4s.schema.SchemaVisitor construct was also changed to reduce the likelihood of a common mistake related to memoisation of union encoders .

What's Changed

New Contributors

Full Changelog: v0.13.7...v0.14.0

v0.13.7 : fix unused import

27 Jun 10:11
29d1f89
Compare
Choose a tag to compare

Highlights :

  • Fix an issue that would lead to unused imports being rendered when the input of an operation has a collection member from another namespace.
  • Fix a potential resource leak in the EC2/ECS AWS credentials provider

What's Changed

Full Changelog: v0.13.6...v0.13.7

v0.13.6

16 Jun 13:40
951d1cc
Compare
Choose a tag to compare

Even though this is a patch release, its packed with goodies. Thanks to @plokhotnyuk, we've got a lot of performance improvements for our json module. There are a few bug fixes on top of that.

What's Changed

Full Changelog: v0.13.5...v0.13.6

v0.13.5 - fixing a dynamic schema regression, padding base64 strings

02 Jun 16:21
0917b12
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.13.4...v0.13.5

v0.13.4: more performance improvements, better recursion handling

01 Jun 16:13
18e6b36
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.13.3...v0.13.4

v0.13.3: more efficient serialization of documents with ASCII key

31 May 07:57
c97e94a
Compare
Choose a tag to compare

What's Changed

  • More efficient serialization of documents with ASCII keys by @plokhotnyuk in #237

Full Changelog: v0.13.2...v0.13.3

v0.13.2: improve performance of document encoder

29 May 08:18
b92821b
Compare
Choose a tag to compare

Highlights :

  • Fixes a bug that would lead document encoders to be partially recompiled on each serialisation, decreasing performance
  • Correctly translate @untaggedUnion annotated shapes to openapi

What's Changed

New Contributors

Full Changelog: v0.13.1...v0.13.2

v0.13.1: Fix issue with sbt plugin cache key

19 May 21:20
87d952e
Compare
Choose a tag to compare

tl;dr

There was an issue with v0.13.0 when builds using the sbt plugin had no colocated smithy files, but were pulling remote jars as dependencies. This release contains a fix for this.

What's Changed

Full Changelog: v0.13.0...v0.13.1

v0.13.0 : Schema overhaul

19 May 13:55
b25026c
Compare
Choose a tag to compare

This release is the first one of the 0.13.x series. It is (very) binary incompatible with the 0.12.x series.

Highlights

core abstractions

The central point of this release is the complete overhaul of the Schema construct, to be a mere GADT, accompanied by a SchemaVisitor construct which is intended to eventually replace Schematic, as the SchemaVisitor gives the implementor control over the recursive call, and therefore allows to potentially delegate to other visitors, which should allow to clean up a number of weird things in this codebase and downstream ones. See #140.

The schema semantics have also changed to allow for capturing surjections, which are somewhat similar to bijections but can fail. These could be used in the future to capture type-refinements.

code-generation

This release also adds a smithy4s.meta#adtMember trait, as a way to allow for reducing the amount of nesting involved when unions have structure members. This is an opt-in, and enforces that the target structures cannot be used anywhere else, as doing so would result in the duplication of case classes in the companion objects of several ADTs, which would break least surprise but also maybe some caching by shapeId logic that could arise in the future. Kudos to @lewisjkl.

The rendering logic was also made more maintainable thanks to a bespoke string interpolator that helps drastically reduce the amount of dance steps needed to gather the imports that should be added at the top of a file. Kudos to @yisraelU for that.

Additionally, the code generator task in the SBT plugin was made more precise and should require calls to clean less often.

What's Changed

New Contributors

Full Changelog: v0.12.16...v0.13.0