Releases: disneystreaming/smithy4s
v0.18.25 : lenient numeric decoding and timestamps truncating
Highlights
- Adds a option to relax the JSON decoders when encountering numerics represented by JSON strings instead of JSON numbers : #1606
- Adds methods on
smithy4s.Timestamp
to truncate precision to milliseconds or seconds (smithy4s.Timestamp
capturing nanosecond-level precision by default) : #1607
Misc fixes
- Generate
transform
as a final def for cats-tagless friendliness by @kubukoz in #1588 - Don't render parens for case objects in union member nodes by @kubukoz in #1600
- Include field modifiers in collision avoidance by @kubukoz in #1593
- Bump docusaurus-lunr-search from 3.4.0 to 3.5.0 in /modules/website by @dependabot in #1604
- Closes #1539 kebab caseificiation by @dwalend in #1603
- Fix refined newtypes by @kubukoz in #1595
- Avoid collisions in typed node namespaces, add missing uppercase in alt nodes by @kubukoz in #1602
- Introduce the Scala version into the codegen cache namespace by @bpholt in #1590
New Contributors
Full Changelog: v0.18.24...v0.18.25
v0.18.24 : support for `alloy#jsonUnknown`
New features
- Adds support for
alloy#jsonUnknown
, allowing to capture unknown JSON fields during deserialisation. See documentation here. See here and here - Generated throwables are unconditionally enriched with a
getMessage
method mirroring the traditionaltoString
implementation of case classes. See here
Other
- Update 15-validated-newtypes.md by @kubukoz in #1563
- fix: Add missing nano part when encoding timestamp to document by @ghostbuster91 in #1576
Full Changelog: v0.18.23...v0.18.24
v0.18.23
What's Changed
- Support default values for httpPayload by @ghostbuster91 in #1511
Adds support for the @default
trait in HTTP bodies.
- Validated newtypes by @denisrosca in #1454
Adds opt-in support for validations of newtypes, see documentation.
Internal changes
- Use protoc from nix when available by @ghostbuster91 in #1558
Full Changelog: v0.18.22...v0.18.23
v0.18.22
What's Changed
- Timestamp defaults by @msosnicki in #1557
- Log the args diff when re-running the smithy4s codegen by @majk-p in #1559
Full Changelog: v0.18.21...v0.18.22
v0.18.21 : second-less date-time timestamps, `@scalaImports`
Changes
- Support parsing timestamps without seconds by @dhpiggott in #1553
- Adds a trait to force scala imports in generated code by @lenguyenthanh in #1550
Other changes
- Update sbt-bloop to 1.5.18 by @scala-steward in #1540
- Update sbt-scalafix to 0.12.1 by @scala-steward in #1541
- Update jsoniter-scala-macros to 2.28.5 by @scala-steward in #1543
- Update smithytranslate-proto to 0.5.3 by @scala-steward in #1542
- Update protobuf-java, protobuf-java-util to 3.24.4 by @scala-steward in #1546
- Update sbt-protoc to 1.0.7 by @scala-steward in #1548
- Allow customize sbt opts by @lenguyenthanh in #1551
- Add backticks on AWS page by @kubukoz in #1556
- Implement
scalaImports
trait by @lenguyenthanh in #1550 - Update os-lib to 0.10.1 by @scala-steward in #1547
- Bump clsx from 2.0.0 to 2.1.1 in /modules/website by @dependabot in #1554
- Bump docusaurus-lunr-search from 3.3.2 to 3.4.0 in /modules/website by @dependabot in #1555
Full Changelog: v0.18.20...v0.18.21
v0.18.20 : blob equality
This release changes the semantics of smithy4s.Blob
's equals
method to avoid taking the underlying data structure into consideration. In other words, Blobs are now equal if the bytes they hold are the same.
What's Changed
- Change Blob equals semantics + fix tests by @msosnicki in #1526
- Change the smithy4sOutputDir SBT setting default value by @Baccata in #1534
Full Changelog: v0.18.19...v0.18.20
v0.18.19 - binary-breaking changes in core
0.18.19 - ⚠️ binary-breaking changes in core
core
module. This is indirectly caused by an upstream change in smithy-lang/smithy.
In the vast majority of applications using Smithy4s, it will not cause runtime issues. However, in the unlikely event that you have custom interpreters that query the .breakingChanges
field of a Trait
hint, or have that field populated by a non-stdlib trait/hint, you'll have to ensure that all the libraries pulled by your application are compiled against smithy4s 0.18.19 or above.
In sbt, you can check what versions of smithy4s are used by your dependencies using the whatDependsOn
task.
We apologize for the inconvenience.
Changes
smithy4sUpdateLSPConfig
: Replaceimports
withsources
to be more in line with idiomatic smithy-build config in #1518 (see #1459)- Update smithy: 1.45.0 to 1.49.0 (binary breaking) in #1485
- Rendered type aliases are now sorted alphabetically in #1523
- Add handlers construct to facilitate the decoupling of operation implementations in #1522
- Improve cache in code generation (sbt) by @majk-p in #1499
- Sort generated type aliases during rendering by @Baccata in #1523
Other changes
- Add a small note in refinement docs for scala 3 users by @lenguyenthanh in #1524
- Update webjars-locator to 0.52 by @scala-steward in #1450
- Bump docusaurus-lunr-search from 3.2.0 to 3.3.2 in /modules/website by @dependabot in #1385
- Bump peaceiris/actions-gh-pages from 3 to 4 by @dependabot in #1507
- Organize imports 0.6.0 by @Baccata in #1528
- Make examples in design section compile by @lenguyenthanh in #1531
New Contributors
Full Changelog: v0.18.18...v0.18.19
v0.18.18 - validator flakiness fix
What's Changed
- Fix shape equality in ADT validator by @kubukoz in #1514
- Fix duplicated words by @lenguyenthanh in #1515
Full Changelog: v0.18.17...v0.18.18
v0.18.17
What's Changed
- Constraints applied to list or map members are now correctly rendered in the generated code (#1498) by @miguel-vila
- Fixes an issue with duplicated entries in generated smithy-build.json file (#1491) by @daddykotex
- Add support for passing custom OpenAPI config via a
smithy-build.json
file by @astridej - Fix a bug when using
adt
with mixins, see #1457 / #1510 by @daddykotex
Additional changes
- Update 01-serialisation.md by @kubukoz in #1493
- Fix a broken link to Weaver test example by @meldmy in #1509
New Contributors
Full Changelog: v0.18.16...v0.18.17
v0.18.16
What's changed
- Adds a
smithy4s-protobuf
module, containing derivation logic for protobuf codecs. See #1455 and documentation - Fixes bug leading to refined case-class fields being rendered with default values of the wrong type: #1487
- Add support for converting smithy4s services and schemas to smithy models (see documentation) in #1470
- Add
smithy4s.meta#only
annotation allowing to filter operations in services, intended to reduce the amount of code generated from AWS specs. See documentation (by @keynmol) - Speed up Dynamic module loading in #1458 by @ghostbuster91
Other changes
- Update sbt-bloop to 1.5.16 by @scala-steward in #1460
- Update fs2-core, fs2-io to 3.10.2 by @scala-steward in #1461
- Update alloy-core, alloy-openapi, ... to 0.3.5 by @scala-steward in #1462
- Update sbt-buildinfo to 0.12.0 by @scala-steward in #1463
- Update alloy-core, alloy-openapi, ... to 0.3.6 by @scala-steward in #1475
- Update sbt-bloop to 1.5.17 by @scala-steward in #1474
- Fix typo assocaited => associated by @lenguyenthanh in #1473
- Switch out uPickle for Circe in codegen by @astridej in #1486
New Contributors
- @lenguyenthanh made their first contribution in #1473
Full Changelog: v0.18.15...v0.18.16