Releases: disneystreaming/smithy4s
v0.17.14
v0.17.13
What's Changed
Backport service interpreter by @miguel-vila in #1118
Adds useful utilities for working with service interpreters, which should make it much easier to create interpreters that work efficiently.
Fix rendering of deprecated annotation in mixins by @ghostbuster91 in #1123
Resolves a bug that would previously result in codegen producing code that fails to parse and compile.
Internal changes
New Contributors
- @ghostbuster91 made their first contribution in #1123
Full Changelog: v0.17.12...v0.17.13
v0.17.12
What's Changed
Remove a legacy mechanism of dealing with name conflicts in generated types. Fixes #1051
- Flatten AWS newtypes by @denisrosca in #1110
Adjusts the rendering of Smithy shapes from AWS specs, as it would've often been inconvenient due to the change above.
- Bump webjar dependency to 0.47 by @daddykotex in #1100
Updates a previously frozen dependency to alleviate potential security issues.
New Contributors
- @denisrosca made their first contribution in #1110
Full Changelog: v0.17.11...v0.7.12
v0.17.11 - AWS bugfix, client methoddeprecation, internal refactors
This is mostly a bugfix and cleanup release.
What's Changed
Resolves a case-sensitivity issue in the file-based AWS credentials provider.
Deprecates a method - the migration path would be just to move to another one with the same shape.
- Error transformations as middleware by @msosnicki in #1084
Changes the error transformation logic in the http4s servers so that it's implemented using the (public) per-endpoint middleware construct.
Full Changelog: v0.17.10...v0.17.11
v0.17.10 - bugfix release
What's changed
- Revert original behavior where middleware get all errors by @daddykotex in #1034
This change adds a fix for an accidental behavior change around error handling/capture in middlewares.
Other changes
- Adding a comment in flatMapErrors by @msosnicki in #1030
Full Changelog: v0.17.9...v0.17.10
v0.17.9 - Smithy/alloy model updates
What's Changed
Full Changelog: v0.17.8...v0.17.9
v0.17.8 : add setting to serialise optional values as explicit JSON null
What's Changed
- backport of [improve: fallback unspecified members of deprecated trait to N/A] by @daddykotex in #989
- Dynamic module guide by @kubukoz in #960
- Explicit null for series/0.17 by @lewisjkl in #995
Full Changelog: v0.17.7...v0.17.8
v0.17.7 : improved error-handling in the context of smithy4s-middlewares
Make sure error handling logic in routing is applied before and after middleware application
What's Changed
- Add my course link to learning resources by @kubukoz in #965
- [Http4s:middleware] pre and post error handling by @yisraelU in #877
Full Changelog: v0.17.6...v0.17.7
v0.17.6 : bug fixes and minor maintainer-facing improvements
This release is backward binary-compatible with the previous releases from the 0.17.x lineage.
Bug fixes
- Fixes a bug related to swagger-ui redirects that would occur with empty paths.
- Fixes a bug related to the undocumented "dynamic" module not respecting the order of fields specified in smithy models
What's Changed
- [Docs] Fix double colon in Mill dependency on AWS specs by @kubukoz in #864
- Update nscplugin, sbt-scala-native, ... to 0.4.11 by @scala-steward in #866
- Update jsoniter-scala-core to 2.21.4 by @scala-steward in #868
- Update mill-main, mill-main-api, ... to 0.10.12 by @scala-steward in #870
- Update weaver-cats, weaver-scalacheck to 0.8.2 by @scala-steward in #872
- Update nscplugin, sbt-scala-native, ... to 0.4.12 by @scala-steward in #874
- revamp docs home page by @lewisjkl in #871
- Update sbt-mima-plugin to 1.1.2 by @scala-steward in #879
- Update swagger-ui-dist to 4.18.2 by @scala-steward in #882
- Update alloy-core, alloy-openapi to 0.1.16 by @scala-steward in #886
- Update smithy-build, smithy-model to 1.29.0 by @scala-steward in #887
- Add compileCodecK by @kubukoz in #891
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.1 by @scala-steward in #893
- Add
Dispatcher.fromUnion
by @kubukoz in #897 - Using an empty path broke the index redirect by @daddykotex in #898
- Update weaver-cats, weaver-scalacheck to 0.8.3 by @scala-steward in #900
- Update alloy-core, alloy-openapi to 0.1.17 by @scala-steward in #901
- Update coursier to 2.1.1 by @scala-steward in #902
- Update smithy-build, smithy-model to 1.30.0 by @scala-steward in #903
- DynamicSchemaIndex improvements by @Baccata in #904
- Update cats-effect to 3.4.9 by @scala-steward in #905
- Fix test name by @daddykotex in #906
- Update jsoniter-scala-core to 2.22.2 by @scala-steward in #892
- Update coursier to 2.1.2 by @scala-steward in #910
- Update alloy-core, alloy-openapi to 0.1.18 by @scala-steward in #909
- Fix description of date formats by @kubukoz in #896
- Document
@httpResponseCode
as supported by @kubukoz in #917 - Add Field#contramap by @kubukoz in #923
- Add "learning resources" page by @kubukoz in #933
Full Changelog: v0.17.5...v0.17.6
v0.17.5
This release is backward binary-compatible with the previous releases from the 0.17.x lineage.
However, the generated code produced by this version is not entirely source-compatible with the previous version.
More info below.
Possible breaking changes
This version introduces changes in how the code is rendered that may result in some breakage in userland. We've
carefully architected the changes to reduce the likelihood of breakage happening.
A number of constructs are now rendered not in the companion object of the generated service, but rather in the companion
object of the reified operation type. These constructs include the error types that get generated by operations.
This change has been performed in order to eliminate the risk of collision between the generated types and some type
members present in the smithy4s.Service
interface. This collision, when it happened, was making the code impossible to
compile.
In order to reduce breakage around the error types (which are likely to be used in userland), we have decided to generate
aliases at the location where they used to live. The generated code should not break source compatibility in the large
majority of usage of Smithy4s.
A small minority of users may have to change how they access the generated constructs they may have depended on. This is unlikely,
as the constructs in question are used internally by interpreters via interfaces that haven't changed, and they are not constructs
that are advertised in our documentation. We only expect some possible breakage in advanced usage performed by a handful of
people.
See:
Behavioural changes
Adjust encoding/decoding HTTP query parameters
Changed the handling of the httpQueryParams
(plural) trait so that possible httpQuery
-annotated fields do not take priority
over it during decoding. This means that httpQueryParams
receive the whole set of query parameters, which may induce duplication
with the value contained by overlapping httpQuery
-annotated fields.
On the encoding side, the behaviour is that httpQuery
fields have priority over httpQueryParams
fields.
This is a more faithful implementation of the spec.
See #827
Improvements
Validate model for codegen after transformations
Adds logic to validate the model after pre-processing model transformations (before the code-generation)
See #821
Support time zones in DATE_TIME
parsing
AWS has changed the Smithy specification of the DATE_TIME
timestamp format to precise that numeric offsets should be handled.
This is now the case.
See #844
Dynamic: Add metadata
method
The currently undocumented dynamic
module has received an improvement allowing to access the metadata
of the loaded models via its platform-agnostic interface.
See #823
Bug fixes
Http4s client body
Empty bodies are now correctly using the built-in withEmptyBody
of Http4s, which correctly removes
the Content-Type
header from the request upon usage. This solves issues when Smithy4s is being called
(or calling) strict clients/servers that check this type of thing.
See #826
Handle NaN and Infinity in AWS JSON codecs
The AWS Json protocols specify that NaN
, Infinity
and -Infinity
are valid values for Double
and Float
types.
This is now handled.
See #822
Better handling of special characters when loading Smithy models from dependencies
A bug was preventing dependencies that would have special characters in their absolute paths to be loaded successfully.
This is now fixed.
See #850
Http4s client: Support Byte
parameters in paths
Byte
fields are now correctly supported when used by an httpLabel
member.
See #819
Library updates
- Update alloy-core, alloy-openapi to 0.1.13 by @scala-steward in #828
- Update alloy-core, alloy-openapi to 0.1.14 by @scala-steward in #843
- Update cats-effect to 3.4.7 by @scala-steward in #817
- Update cats-effect to 3.4.8 by @scala-steward in #830
- Update circe-generic, circe-parser to 0.14.5 by @scala-steward in #849
- Update coursier to 2.1.0-RC6 by @scala-steward in #816
- Update coursier to 2.1.0 by @scala-steward in #860
- Update jsoniter-scala-core to 2.21.2 by @scala-steward in #833
- Update jsoniter-scala-core to 2.21.3 by @scala-steward in #855
- Update sbt-sonatype to 3.9.18 by @scala-steward in #857
- Update smithy-build, smithy-model to 1.28.0 by @scala-steward in #835
- Update smithy-build, smithy-model to 1.28.1 by @scala-steward in #858
- Update swagger-ui-dist to 4.16.1 by @scala-steward in #834
- Update swagger-ui-dist to 4.17.0 by @scala-steward in #845
- Update swagger-ui-dist to 4.17.1 by @scala-steward in #852
- Update swagger-ui-dist to 4.18.1 by @scala-steward in #856
- Bump @docusaurus/core from 2.3.0 to 2.3.1 in /modules/website by @dependabot in #838
- Bump @docusaurus/preset-classic from 2.3.0 to 2.3.1 in /modules/website by @dependabot in #840
Full Changelog: v0.17.4...v0.17.5