v0.16.1: Sharing specs, Mill support & more
NOTE: Use 0.16.1 not 0.16.0, the latter is a botched release that only contains a subset of the changes.
This release is huge! Thanks to all the contributors.
The 0.16.1 release breaks both source and binary compatibility.
At a high level, here are the changes you can look forward to in the release:
Support for the @httpResponseCode trait - #377
You can mark a member of your output
structure with @httpResponseCode
and expect smithy to use that value when rendering a http response, on the server, or to fill that value from the response status code, on the client.
Support for sharing specifications across modules (sbt or mill) (similar to how you depend on another module Scala code in sbt
with the dependsOn
setting) - #432
Multiple people came naturally to this kind of project setup where you have multiple module and you may want to have common code and specification live a given module that your other modules depends on. With this release, it's totally doable. See this page for more information
Mill support - #450
Now your mill modules can also use Smithy4s code generation. See this page for more information.
Decline integration is effect-agnostic - #429
Previous version use CommandIOApp
which requires cats.effect
. 0.16.1
version will allow you to use the effect system of your choice.
Builder pattern to create your clients - #447
New API looks like:
SimpleRestJsonBuilder(HelloWorldService)
.client(client)
.uri(Uri.unsafeFromString("http://localhost:9000"))
.resource
More details below.
What's Changed
- Change mima target (0.16) by @daddykotex in #417
- httpResponseCode handling (server side) by @daddykotex in #377
- Update jsoniter-scala-core to 2.17.2 by @scala-steward in #445
- support root imports in refinements by @lewisjkl in #442
- Use a document relative url for specs by @daddykotex in #444
- Fix collision by @yisraelU in #451
- Update flake.lock by @kubukoz in #454
- 0.16.0 merge by @daddykotex in #460
Full Changelog: v0.15.3...v0.16.1