v0.14.0: Scala-native support, improvements across the board
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
andIndexedSeq
Scala types when using smithylist
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 thesmithy4s.schema.SchemaVisitor
construct was also changed to reduce the likelihood of a common mistake related to memoisation of union encoders .
What's Changed
- Add a first iteration containing documentation of design. by @Baccata in #257
- Remove smithy files from package by @yisraelU in #285
- Refactoring of Timestamp by @plokhotnyuk in #283
- Couple ShapeTag with Schema by @Baccata in #271
- Change the Field and Alt model to not hold schemas anymore by @Baccata in #279
- Fix path url decoding by @kubukoz in #284
- Use internal sbt dependency resolution in codegen-plugin by @schmeedy in #288
- Improve swagger docs support by @daddykotex in #287
- Update copyright notices by @daddykotex in #292
- Document library dependency feature by @Baccata in #291
- Document the design of the Service and Endpoint interfaces by @Baccata in #282
- Rework of the concept of collection in the Schema abstraction by @daddykotex in #290
- Scala native support by @Baccata in #289
- Optimize serialization for ArraySeq by @plokhotnyuk in #297
- Render Unit in unions as case objects by @Baccata in #294
- Update fs2-core to 3.2.10 by @scala-steward in #299
- Update weaver-cats, weaver-scalacheck to 0.7.13 by @scala-steward in #301
- Update sbt-scalafix to 0.10.1 by @scala-steward in #298
- Update weaver-cats, weaver-scalacheck to 0.6.13 by @scala-steward in #300
- Implement a simple SchemaDescription visitor by @daddykotex in #295
- Revises the "union" method in SchemaVisitor ... by @Baccata in #302
- Replace schematic implementation by schema visitor by @daddykotex in #296
- Add enum value names by @kubukoz in #304
- Update jsoniter-scala-core to 2.13.36 by @plokhotnyuk in #305
- Add
@vector
and@indexedSeq
by @daddykotex in #303
New Contributors
Full Changelog: v0.13.7...v0.14.0