Releases: smithy-lang/smithy
Smithy CLI v1.68.0
1.68.0 (2026-02-25)
Features
- Added new ERROR event to EndpointTestsTraitValidator when builtin params are
inconsistent (#2955) - Update smithy-rules-engine-tests with new std lib functions and bdd-based
tests (#2945) - Add new transform compileBdd and compileBddForAws
(#2953) - Added the
@smithy.contracts#conditionstrait, available in the new
smithy-contract-traitspackage. This trait defines restrictions on shape
values using JMESPath expressions.
(#2935) - Added a tags property to eventStreamTests to allow filtering individual cases
in the same way that http protocol tests can be.
(#2973) - Added a service provider interface for
NodeValidationVisitorplugins, and
optimized to index plugins by theShapeTypethey apply to.
(#2935)
Documentation
- Tweak wording of integers with ranges message
(#2971) - Added Smithy Kotlin Quickstart and Client User Guide sections.
(#2944) - Added documentation for eventStreamTests
(#2973) - Add client guidance for context types.
(#2924) - Added client guidance documentation for endpoint resolution.
(#2941)
Other
- Removed protocol tests for skipping null values in dense collections. This
behavior can silently drop data. SDKs that cannot preserve null values should
raise an exception instead
(#2972)
Smithy CLI v1.67.0
Smithy CLI v1.66.0
1.66.0 (2026-01-13)
Features
- Added protocol test to test xml attribute members that are declared between
non-attribute members.
(#2870) - Improve BDD sifting (2x speed, more reduction)
(#2890) - Added the shared file manifest to directed codegen interfaces so that it can
be easily used by integrations.
(#2893) - Add CostOptimization for cost-based BDD sifting
(#2889) - Added a
SnippetConfigclass to codgen-core that allows sharing doc snippets
that will be consumed by smithy-docgen.
(#2894) - Remove [] from toString on some rules engine types
(#2904) - Updated smithy-docgen to consume snippet files to generate example sections.
(#2894) - Added a generic evaluator/interpreter for JMESPath expressions.
(#2878) - Made
DefaultBuilderRefpublic.
(#2894) - Implement rules engine ITE fn and S3 tree transform
(#2903)
Bug Fixes
- Change generated union variant classes to public in trait codegen
(#2887) - Fix toBuilder not supplying cloudWatchNamespace in the aws.api#service trait
(#2895)
Documentation
- Added a section to discuss recommendations for implementing Smithy clients.
Currently this section only includes information about HTTP interfaces, but it
will expand over time to cover more topics related to implementing clients.
(#2868)
Other
- Make husky only work for files under /docs
(#2916)
Smithy CLI v1.65.0
1.65.0 (2025-12-09)
Features
- Added CloudWatch Metric Namespace to AWS service trait.
(#2877) - Add a new package with tests for rule engine
(#2864) - Fix null result handling in CFG terminal nodes
(#2881) - restXml and restJson1 should support the httpChecksum trait
(#2867) - Added a
NodeValidationVisitorfeature that enforces base64 encoding of blob
values. (#2838)
Bug Fixes
- Fixes a bug in toNode generation for traits with members that have the idRef
trait applied. (#2871)
Documentation
- Update smithy-java doc to reflect the latest artifact names
(#2862) - Fixed a broken ABNF specification in rules engine docs.
(#2831)
Other
- Replace streams with loops
(#2866)
Smithy CLI v1.64.0
1.64.0 (2025-11-04)
Features
-
Updated
LoaderShapeMapto useDependencyGraphto sort shapes instead of
TopologicalShapeSort. This results in some error messages changing:- There is no longer a special message for missing transitive mixins.
- The message for genrically missing mixins is now applied by ApplyMixin,
which has a slightly different wording and which will trigger for each
mising mixin. - The error message for detected cycles will now include the entire cycle that
a shape is part of, rather than just the edges that it is directly connected
to. (#2774)
-
Added a space for plugins to write data that is intended to be consumable by
other plugins. This appears under a directory calledsharedin the the
projection's output directory.
(#2764) -
Expanded
titletrait to apply to members.
(#2791) -
Added a generic dependency graph to smithy-utils to be used for sorting
various dependent objects, such as integrations and plugins.
(#2774) -
Added support for (de)serializing byte arrays to/from base64-encoded string
nodes toNodeMapper.
(#2803) -
Added builder method support for
ServiceResolvedConditionKeysTrait.
(#2779) -
Added support for mapping the
titletrait in JSON Schema'soneOfenum
strategy. (#2791) -
Added a new
eventStreamProtocolTeststrait to enable writing shared test
suites for event streams just as has been done for standard HTTP protocol
requests and responses.
(#2803) -
Deprecated
TopologicalShapeSortin favor ofDependencyGraph.
(#2774) -
Added a builder to
Differencesin smithy-diff that allows constructing an
instance that only contains a set of hand-curated changes. This enables making
comparisons that weren't or wouldn't be auto-detected, such as comparing two
shapes of the same type to see if they are compatible with each other.
(#2796) -
Updated
TopDownIndexto allow disabling the sorting behavior, instead
returning results in the order that they are discovered.
(#2746) -
Updated
ReplaceShapesto useDependencyGraphto sort shapes.
(#2774) -
Updated
Walkerto walk relationships in their defined order, rather than the
reverse of their defined order.
(#2746) -
Loosened the
ChangedMemberTargetdiff evaluator to not reportERRORlevel
events so often. Now it will always report anERRORif the change is
expected to result in codegen type errors, but otherwise it will default to
WARNINGunless differing traits between the targets would result in a higher
severity event had those trait changes been applied to the original target.
(#2796) -
Updated
DiffEvaluatorinterface to include an optional method that
additionally accepts aClassLoader. This ensures that the loader the
evaluation is configured with can be used in any evaluators that may need it.
(#2796) -
Added protocol tests for event streaming in restJson1.
(#2803) -
Added missing suffixes to allow identification of all cases for when the
nullability of a member changedRemovedClientOptionalTraitfor when the@clientOptionaltrait is
removed.RemovedNullDefaultfor when a@default(null)is changed to a default
with non-null value.AddedNullDefaultfor when a@default(<non-null-value>)is changed to a
default with null value.
(#2805)
-
Added the ability for smithy build plugins to declare that they must be run
before or after other plugins. These dependencies are soft, so missing
dependencies will be logged and ignored.
(#2774)
Bug Fixes
- Fix message in RemovedServiceError diff event
(#2823)
Other
- Added
restJson1protocol tests forhttpQueryParamswhen no params exist.
(#2792)
Smithy CLI v1.63.0
1.63.0 (2025-10-17)
Features
- Added AWS_PARTITIONS_FILE_OVERRIDE env variable to allow easily overriding the
partitions.json file used to resolve partition metadata
(#2794) - Added a StructureOrUnion suffix to ChangedNullability.AddedRequiredTrait diff
event id when required is added to members targeting a structure or union
(#2793)
Bug Fixes
- Fixed loading jars with percent-encoded paths
(#2759) - Fixed possible NPE in TopologicalShapeSort
(#2785) - Reverted change to substring validation in rules engine from 1.62.0
(#2790) - Fixed required member validation for smoke tests when params is not provided
(#2795)
Documentation
Smithy CLI v1.62.0
1.62.0 (2025-09-24)
Features
- Allow specifying multiple files and/or directories to smithy format. Fixes
(#2757) - Added split function to rules engine.
(#2762) - Added BDD-based rules engine trait.
(#2703) - Updated builders to consistently use BuilderRef to avoid leaking mutable
values. (#2743) - Synced partitions.json to match latest SDK release.
(#2777,
#2781) - Added support for union traits and unions as parts of other trait definitions.
(#2780,
#2784)
Bug Fixes
- Updated query params output test in rest-json.
(#2739) - Fixed trait codegen for timestamp member with timestampformat trait.
(#2744) - Removed the breakingChanges member from the required trait.
(#2748) - Fixed trait codegen for list with uniqueitems trait.
(#2706) - Fixed loading smithy-ts version in docs.
(#2722) - Fixed trait codegen for class name conflicts in enum/intenum traits.
(#2755) - Fixed incorrect builder properties assignment for enum with default value.
(#2752) - Fixed a bug that prevented warning events to show up for diff CLI command.
(#2749) - Fixed trait codegen for structure's string member with
@idRef.
(#2728) - Updated shape id sequences (such as an operation's list of errors) to use
ordered sets instead of lists to avoid models failing to evaluate as equal if
the order is changed.
(#2742) - Fixed using shapes without TraitDefinition as trait.
(#2733) - Fixed trait codegen for List or Map traits with annotations or Javadocs.
(#2729) - Fixed type transposing in RPC v2 CBOR spec.
(#2727) - Added missing sourceLocation setting in fromNode() in trait codegen.
(#2730) - Reverted casting terminal endpoint builder methods as their types were being
re-written as different types.
(#2773) - Fixed an issue causing OpenAPI error examples to be missing when service-level
and operation-level errors share HTTP status codes.
(#2754)
Documentation
- Updated README.md for Trait Codegen.
(#2753) - Added README.md for trait codegen.
(#2751) - Added missing important word in
model.rst.
(#2726) - Updated smithy-java quickstart docs with correct file name.
(#2766) - Fixed an incorrect command in the server quickstart.
(#2782)
Other
Smithy CLI v1.61.0
1.61.0 (2025-07-23)
Bug Fixes
- Return the specific type of the trait for RpcV2CborTrait as other protocols traits do. (#2711)
- Relocate
com.googledependencies in the CLI to avoid classpath conflicts. (#2718)
Documentation
- Added more explicit rule on how to serialize conflicting headers. (#2692)
- Removed
setfrom trait selector in@traitdocumentation. (#2698)
Features
- Relaxed restrictions on trait-codegen to allow
smithy*, and somesmithy.*namespaces. (#2671, #2708, #2709) - Added
aws-euscto AWS rules engine partitions. (#2697) - Added MQTT topic filter parsing and conflict support. (#2690)
- Added OpenAPI configuration option to disable default deprecation description. (#2694)