Skip to content

gRPC Swift 1.0.0-alpha.15

Pre-release
Pre-release
Compare
Choose a tag to compare
@glbrntt glbrntt released this 03 Jul 14:42
4e91a40

This release includes a number of breaking changes. The most important of which are detailed below:

  1. Timeouts. The CallOptions.timeout property has been deprecated in favour of timeLimit which allows either a timeout or a deadline to be set. The type used for timeouts has changed from GRPCTimeout to SwiftNIO's TimeAmount for better compatability with the rest of the Swift on Server ecosystem.
  2. API evolution changes. A number of public enums have been converted into public structs. At the call-site this change will not impact users. This change will break users who previously switched over these enums. Changed types include RequestIDProvider, ConnectionTarget, and Compression. In addition, the client call implementations were reworked and the BaseClientCall class was removed as a result.

This release also includes a number of changes to the generated code, including
the ability to generate test clients.

SemVer Major

  • Allow deadlines or timeouts to be set on RPCs. The timeout option on CallOptions has been replaced with timeLimit. (#842)
  • Replace a number of public enums with struct in order to make the API more evolvable in the future. This includes RequestIDProvider, ConnectionTarget, and Compression. This will only affect users who switch over these cases. (#839, #861, #867)
  • Provide an internal transport abstraction for client RPCs. The user facing impact is the removal of the BaseClientCall class. (#834)

SemVer Minor

  • Added an 'isOk' to property to GRPCStatus (#840)
  • Added a configuration option to allow the connectivity state delegate DispatchQueue to be specified (#849)
  • Added a configuration option which allows users to 'fast-fail' an RPC rather than waiting for a active connection (#860)
  • Added an option to the code generator to enable users to generate 'test clients' (#855, #864, #870, #856, #865)

SemVer Patch

  • Provide more specific errors to failed promises on calls rather than the error status (#859)
  • Fix a bug which prevented the user-agent header being overridden via user provided customMetadata (#845, patch credit to @ikait)
  • Fixed a race condition when scheduling a timeout on an RPC (#847)
  • No longer send requests in a call object initialisation (#848)
  • Remove a warning from a now-redundant try (#871)

Other Changes

  • Fix a Cocoapod version issue in one of the examples (#851, patch credit to @zhungxd)
  • Add a generation of the gRPC-Swift-Plugins.podspec (#869, patch credit to @Lutzifer)
  • Make language more inclusive (#841)
  • Various infrastructure improvements (#858, #872)