Skip to content

Releases: disneystreaming/smithy4s

v0.11.0: discriminated unions, shape ids accessible from schemas

14 Jan 12:01
56843ea
Compare
Choose a tag to compare
  • the SBT plugin does not automatically add a dependency to smithy4s-core anymore. This was creating problems with regards to scala-js. The dependency has to be manually added now, if you want to compile the generated code without any further integration.
  • Adds a @discriminated trait, to communicate that unions should be encoded using discriminator fields. This facilitates porting some API specs from openapi
  • ShapeIds are now rendered and made part of the Schema's hints for all shapes. This can be used for the implementation of protocols, or to communicate better errors during decoding failures.
  • Adds support for transformations in code generation. Smithy4s will load [ProjectionTransformers] from the classpath during the code generation process, and will apply all transformations, the names of which are listed in the smithy4sModelTransformers SBT setting. This can be useful to pre-process models automatically before code-generating.
  • Http-specific rendering logic has now been removed, in favour of a Schematic implementation that derives the same information from traits. This effectively makes smithy4s's rendered code 100% protocol agnostic, and opens the door for interesting features.

What's Changed

Full Changelog: v0.10.0...v0.11.0

v0.10.0 : improved UX for capability traits use-cases, addition of ShapeId

06 Jan 10:51
ac41702
Compare
Choose a tag to compare

This release marks the first 0.10.x release. It is not binary compatible with the 0.9.x release.

tl;dr

The main points of interest for this release are :

  • improved type inference on Scala 3 : #18
  • improved UX for "capability traits" flavoured usecases : #16
  • rename of the cli module. This is accompanied with new, coursier-friendly installation instructions #19
  • introduction of a ShapeId data type used as an identifier for services / operations / data models : #25
  • addition of functions to convert from js.Any to smithy4s.Document (scala-js only) : #26

What's Changed

New Contributors

Full Changelog: v0.9.1...v0.10.0

v0.9.1 - minor bugfixes, convenience for tooling developers

23 Dec 22:22
7c41458
Compare
Choose a tag to compare

What's Changed

  • Don't raise 500 when path is too short by @kubukoz in #4
  • Make generated code from empty services compile by @Baccata in #5
  • Add I/O hints to endpoint schemas by default by @kubukoz in #6

Full Changelog: v0.9.0...v0.9.1

v0.9.0 : First public release

22 Dec 14:28
88ffcd6
Compare
Choose a tag to compare

v0.9.0 Marks the first public release of the smithy4s project.

The README is a good place to start looking at what it can do and how to use it.

For those who celebrate Christmas or the New Year, I wish you all a happy holiday!