Releases: disneystreaming/smithy4s
Releases · disneystreaming/smithy4s
v0.11.0: discriminated unions, shape ids accessible from schemas
- 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
- add header validator by @lewisjkl in #29
- Update smithy-aws-traits, smithy-model, ... to 1.16.1 by @scala-steward in #32
- Update smithy-aws-traits, smithy-model, ... to 1.16.2 by @scala-steward in #37
- add discriminated union trait by @lewisjkl in #30
- remove core dependency auto-add from sbt plugin by @lewisjkl in #38
- Update sbt-scalafix to 0.9.34 by @scala-steward in #39
- add id hints onto more generated types by @lewisjkl in #36
- Update scala-library, scala-reflect to 2.13.8 by @scala-steward in #46
- add flag to CI to trigger snapshot build by @lewisjkl in #45
- add support for transforms in codegen by @lewisjkl in #44
- Derive http endpoints from hints by @Baccata in #41
Full Changelog: v0.10.0...v0.11.0
v0.10.0 : improved UX for capability traits use-cases, addition of ShapeId
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
- Update weaver-cats, weaver-scalacheck to 0.7.9 by @scala-steward in #9
- Update sbt, sbt-dependency-tree to 1.5.8 by @scala-steward in #11
- Update weaver-cats, weaver-scalacheck to 0.6.9 by @scala-steward in #8
- Update coursier to 2.0.16 by @scala-steward in #10
- Update sbt-scalafix to 0.9.33 by @scala-steward in #7
- Update fs2-core to 3.2.4 by @scala-steward in #14
- Update sbt, sbt-dependency-tree to 1.6.0 by @scala-steward in #15
- Improve type inference in Scala 3 by @Baccata in #18
- ci(Mergify): configuration update by @kubukoz in #12
- Update sbt, sbt-dependency-tree to 1.6.1 by @scala-steward in #22
- Have mergify approve PRs by @Baccata in #23
- Renamed cli module by @Baccata in #19
- Add
apply
for F[_] services by @kubukoz in #16 - Add JSON dump command by @kubukoz in #24
- Make ShapeId a datatype by @Baccata in #25
- add js.Any => Document converter by @lewisjkl in #26
- Render ShapeId for operations by @Baccata in #31
New Contributors
- @scala-steward made their first contribution in #9
- @lewisjkl made their first contribution in #26
Full Changelog: v0.9.1...v0.10.0
v0.9.1 - minor bugfixes, convenience for tooling developers
v0.9.0 : First public release
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!