Skip to content

Releases: disneystreaming/smithy4s

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

Improved Smithy model loading

26 Apr 14:27
6b336e8
Compare
Choose a tag to compare

This PR includes an important fix with regards to how Smithy4s used to load the Smithy model during codegen. Instead of relying on classpath scanning functionality. We provide our dependencies directly, via the same mechanism that you can provide your dependencies. In turn, our dependencies are resolved at runtime, with coursier.

We introduced this change because of problems occurring when dependencies found on the build classpath (your build tool dependencies) included Smithy definitions.

What's Changed

Full Changelog: v0.12.15...v0.12.16

v0.12.15: hotfix rendering of imports

22 Apr 09:36
7ee2cbe
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.12.14...v0.12.15

v0.12.14 : improve rendered import statements when packedInputs are applied

21 Apr 13:19
bbd8857
Compare
Choose a tag to compare

Fixes an issue that leads to too many import statements being rendered when the smithy4s.meta#packedInputs trait is applied
on services or operations.

What's Changed

Full Changelog: v0.12.13...v0.12.14

v0.12.13 : untagged unions

15 Apr 09:49
ee1a8e2
Compare
Choose a tag to compare

Highlights

  • untagged unions are now supported in the simpleRestJson protocol, via the smithy4s.api#untagged shape. This encoding for unions should be discouraged, as it implies an attempt to decode
  • fixes a bug where hints applied to union members would not be taken into consideration
  • avoids serialising an empty object for requests that are not supposed to have body components

What's Changed

Full Changelog: v0.12.12...v0.12.13

v0.12.12

14 Apr 17:37
e5390ed
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.12.11...v0.12.12

v0.12.11: BigInt Rendering Fix

11 Apr 15:08
e0eb22b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.12.10...v0.12.11

v0.12.10: Tests module update

06 Apr 22:11
2ba3ff2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.12.9...v0.12.10

v0.12.9: aws-related fixes

05 Apr 19:10
aa89ed0
Compare
Choose a tag to compare
  • Fixes a rendering issue related to streamed operations
  • Fixes a rendering collision problem that may occur with the timestamp type
  • Fixes content type not being set correctly when performing calls to aws

What's Changed

New Contributors

Full Changelog: v0.12.8...v0.12.9