Skip to content

Releases: CenterEdge/Yardarm

0.6.0-beta0001

13 Oct 16:41
a000c31
Compare
Choose a tag to compare
0.6.0-beta0001 Pre-release
Pre-release

Major New Features

  • A focus on improved compilation performance
    • Improved parallelization on multi-core machines
    • Uses ReadyToRun for less JIT impact (Docker and SDK variants)
  • When using Microsoft.Extensions.Http and AddAllApis() or AddAllOtherApis() there won't be name collisions with other Yardarm SDKs. There are also more overloads for manual registration that accept a name parameter.
  • Consumers can more easily register a custom JSON serializer configuration using TypeSerializerRegistry.CreateBasicRegistry to build a registry with basic serializers in place
  • When using --nupkg the new option --embed-symbols will embed the symbols in the primary nupkg file. This is useful when uploading to registries that don't support snupkg files, such as GitHub Packages.
  • Docker image now includes an arm64 image

Breaking Changes

  • Any SDK consumer that relies on AddAllApis() or AddAllOtherApis() registering the HTTP client with a specific name will no longer discover the HTTP client. The name used for registration has changed from the basic type name to the full type name, including namespace. For example, httpClientFactory.CreateClient("ITranscations") must become httpClientFractory.CreateClient("MySdk.Api.ITransactions").

What's Changed

Full Changelog: release/0.5.1...release/0.6.0-beta0001

0.5.2

11 Oct 18:34
48fd3de
Compare
Choose a tag to compare

What's Changed

Full Changelog: release/0.5.1...release/0.5.2

0.5.1

19 Sep 13:25
2a21d89
Compare
Choose a tag to compare

What's Changed

  • Register JsonNode on JsonSerializerContext, not JsonObject by @brantburnett in #249

Full Changelog: release/0.5.0...release/0.5.1

0.5.0

10 Sep 21:07
4f58807
Compare
Choose a tag to compare

Major New Features

  • When using Yardarm.SystemTextJson serialization and deserialization now uses a JsonSerializerContext by default for faster startup and serialization
  • When using compatible extensions, including Yardarm.SystemTextJson and Yardarm.MicrosoftExtensionsHttp, the generated SDK is trimming and NativeAOT compatible. This should greatly improve compatibility with Blazor WebAssembly.
  • Binary content types on responses are now exposed as a Stream from GetBodyAsync for easy reading without drilling into Message.Content.
  • Large response bodies, such as binary Stream responses, may now be streamed by setting EnableResponseStreaming to true on the request. Note: Be sure to dispose of the response after reading the stream.
  • Simple object schemas that only have additionalProperties now generate as Dictionary<string, T> models rather than a complex object with an AdditionalProperties property.
  • Support for shared parameters defined on the path rather than the operation
  • Route parameters not explicitly defined in the parameters collection have string properties generated automatically
  • Operations without operationId defined are now skipped by default rather than causing an error
  • Extensions may apply a custom IOperationNameProvider to provide custom naming rules for operations
  • Support for API key authentication on query strings
  • Support for components/requestBodies shared request body definitions

Breaking changes since 0.4

  • The LiteralSerializer, which is used for text/plain content, path parameters, query string parameters, and header parameters no longer uses TypeDescriptor.GetConverter. This allows compatibility with trimming and NativeAOT, but at the expense of compatibility with any type. It now explicitly handles DateTime, DateTimeOffset, TimeSpan, Guid, Uri, String, all common numeric types, and enumerations for deserialization. For serialization, it will also handle any type that implements IFormattable. Other types will now fail.
  • Schemas are no longer generated using the dynamic keyword, all such cases now use object.
  • ITypeSerializer now supports a CancellationToken during deserialization. This may cause extensions to fail if they create custom ITypeSerializer implementations for legacy runtimes that don't support DIMs. A DIM is used to increase compatibility on .NET 6 and later.
  • The generated GetBodyAsync method on operation responses now accepts an optional CancellationToken parameter. This is a binary-level, though not source-level, breaking change in the generated SDKs when upgrading from 0.4 to 0.5.
  • Consumers of generated SDKs may experience a source and binary breaking change upon upgrade if there are any schemas with only additionalProperties that are now represented as plain dictionaries.

What's Changed

Full Changelog: release/0.5.0-beta0002...release/0.5.0

release/0.5.0-beta0003

05 Aug 12:11
4f58807
Compare
Choose a tag to compare
Pre-release

Notable changes since 0.5.0-beta0001

  • Support for shared parameters defined on the path rather than the operation
  • Route parameters not explicitly defined in the parameters collection have string properties generated automatically
  • Operations without operationId defined are now skipped by default rather than causing an error
  • Extensions may apply a custom IOperationNameProvider to provide custom naming rules for operations
  • Support for API key authentication on query strings
  • Support for components/requestBodies shared request body definitions

What's Changed

Full Changelog: release/0.5.0-beta0002...release/0.5.0-beta0003

release/0.5.0-beta0002

28 May 20:17
4748c7b
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: release/0.5.0-beta0001...release/0.5.0-beta0002

release/0.5.0-beta0001

28 May 14:57
51b0fba
Compare
Choose a tag to compare
Pre-release

Major New Features

  • When using Yardarm.SystemTextJson serialization and deserialization now uses a JsonSerializerContext by default for faster startup and serialization
  • When using compatible extensions, including Yardarm.SystemTextJson and Yardarm.MicrosoftExtensionsHttp, the generated SDK is trimming and NativeAOT compatible. This should greatly improve compatibility with Blazor WebAssembly.
  • Binary content types on responses are now exposed as a Stream from GetBodyAsync for easy reading without drilling into Message.Content.
  • Large response bodies, such as binary Stream responses, may now be streamed by setting EnableResponseStreaming to true on the request. Note: Be sure to dispose of the response after reading the stream.
  • Simple object schemas that only have additionalProperties now generate as Dictionary<string, T> models rather than a complex object with an AdditionalProperties property.

Breaking changes since 0.4

  • The LiteralSerializer, which is used for text/plain content, path parameters, query string parameters, and header parameters no longer uses TypeDescriptor.GetConverter. This allows compatibility with trimming and NativeAOT, but at the expense of compatibility with any type. It now explicitly handles DateTime, DateTimeOffset, TimeSpan, Guid, Uri, String, all common numeric types, and enumerations for deserialization. For serialization, it will also handle any type that implements IFormattable. Other types will now fail.
  • Schemas are no longer generated using the dynamic keyword, all such cases now use object.
  • ITypeSerializer now supports a CancellationToken during deserialization. This may cause extensions to fail if they create custom ITypeSerializer implementations for legacy runtimes that don't support DIMs. A DIM is used to increase compatibility on .NET 6 and later.
  • The generated GetBodyAsync method on operation responses now accepts an optional CancellationToken parameter. This is a binary-level, though not source-level, breaking change in the generated SDKs when upgrading from 0.4 to 0.5.
  • Consumers of generated SDKs may experience a source and binary breaking change upon upgrade if there are any schemas with only additionalProperties that are now represented as plain dictionaries.

What's Changed

Full Changelog: release/0.4.1...release/0.5.0-beta0001

release/0.4.1

21 Nov 16:52
3ba6c4b
Compare
Choose a tag to compare

What's Changed

  • Avoid NRT warnings if consumer upgrades to Microsoft.Extensions.Http 7.x by @brantburnett in #230

Full Changelog: release/0.4.0...release/0.4.1

release/0.3.8

21 Nov 16:44
d744f6f
Compare
Choose a tag to compare

What's Changed

  • Avoid NRT warnings if consumer upgrades to Microsoft.Extensions.Http 7.x by @brantburnett in #229

Full Changelog: release/0.3.7...release/0.3.8

release/0.4.0

29 Aug 16:59
ec9e75b
Compare
Choose a tag to compare

What's Changed

Full Changelog: release/0.3.7...release/0.4.0