Skip to content

Releases: disneystreaming/smithy4s

v0.17.13

26 Jul 19:36
39940fb
Compare
Choose a tag to compare

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

Full Changelog: v0.17.12...v0.17.13

v0.17.12

24 Jul 16:44
56f64c3
Compare
Choose a tag to compare

What's Changed

Remove a legacy mechanism of dealing with name conflicts in generated types. Fixes #1051

Adjusts the rendering of Smithy shapes from AWS specs, as it would've often been inconvenient due to the change above.

Updates a previously frozen dependency to alleviate potential security issues.

New Contributors

Full Changelog: v0.17.11...v0.7.12

v0.17.11 - AWS bugfix, client methoddeprecation, internal refactors

15 Jul 03:07
1b9f8fa
Compare
Choose a tag to compare

This is mostly a bugfix and cleanup release.

What's Changed

  • [aws] Keep casing in file credential provider by @kubukoz in #1076

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.

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

16 Jun 16:47
bf80670
Compare
Choose a tag to compare

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

Full Changelog: v0.17.9...v0.17.10

v0.17.9 - Smithy/alloy model updates

13 Jun 22:04
9818649
Compare
Choose a tag to compare

What's Changed

  • Update smithy-model to 1.31.0, alloy to 0.2.2 by @kubukoz in #1022

Full Changelog: v0.17.8...v0.17.9

v0.17.8 : add setting to serialise optional values as explicit JSON null

06 Jun 07:49
68a10cc
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.7...v0.17.8

v0.17.7 : improved error-handling in the context of smithy4s-middlewares

30 May 12:17
3816064
Compare
Choose a tag to compare

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

02 May 10:28
7a60eb7
Compare
Choose a tag to compare

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

Full Changelog: v0.17.5...v0.17.6

v0.17.5

15 Mar 21:50
374d3e5
Compare
Choose a tag to compare

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

Full Changelog: v0.17.4...v0.17.5

v0.17.4: more efficient ArraySeq json parsing

13 Feb 14:32
b694728
Compare
Choose a tag to compare

0.17.4

Improvements

More efficient Json parsing of ArraySeq

See #806

Fix parsing logic of AWS credentials file to allow for comments

See #811

Add documentation on how to point AWS clients to local environments

See #812

What's Changed

New Contributors

Full Changelog: v0.17.3...v0.17.4