Tags: banjun/grpc-swift
Tags
Update to SwiftNIO HTTP/2 1.13.0 (grpc#922) Motivation: The multiplexer from SwiftNIO HTTP/2 required that the first write on each stream matched the order in which the streams were created. Violating this led to a connection error; all in-flight and subsequent RPCs on that connection would fail. Some of our users noticed this (grpc#912). SwiftNIO HTTP/2 recently reworked the API around how streams are created: HTTP/2 stream channels are no longer created with a stream ID and now deliver the frame payload to the channel pipeline rather than the entire HTTP/2 frame. This allows for a stream ID to be assigned to a stream when it attempts to flush its first write, rather than when the stream is created. Modifications: - Increase the minimum HTTP/2 version to 1.13.0 - Move away from deprecated APIs: this required changing the inbound-in and outbound-out types for `_GRPCClientChannelHandler` as well as a few smaller changes elsewhere. Result: - RPCs can be created concurrently without fear of violating any stream ID ordering rules - Resolves grpc#912
NetworkPreference.best should be POSIX on older platforms (grpc#896) Motivation: While NetworkPreference.best was supposed to abstract away the choice of exactly which event loop would be used, on older Darwin platforms it would actually lead to runtime crashes as it would try to use an implementation it didn't have. Modifications: Have .best's .implementation fall back to POSIX on older platforms. Result: Fewer crashes on older platforms.
Fix incorrect documentation for certificate verification on the serve… …r builder (grpc#882) Motivation: The server build incorrectly claimed that without manually calling `withTLS(certificateVerification:)` that `.fullVerification` would be used. The default is actually `.none`. Modifications: Change the documented default to `.none`. Result: Documentation is no longer incorrect.
Add a script to generate a bundle of plugins for CocoaPods (grpc#872) Motivation: grpc#869 adds a plugin containing the protoc binaries for CocoaPods. It relies on having a zip of the binaries in the tagged release. Modifications: - Add a script to generate a zip of the protoc binaries. Result: We can generate a bundle of plugins which may be pulled in by a CocoaPod.
Update dependencies, rebuild .podspec files (grpc#838) Motivation: Our podspec building script relies on Package.resolved, and NIOHTTP2 shipped a podspec fix in 1.12.2; we need pull in that fix to release an update podspec. Modifications: - Update Package.resolved - Regenerate our .podspec files Result: The built podspec is has the right dependencies. Hopefully.
Remove required platforms from SPM (grpc#761) Motivation: We recently specified which platforms we supported in Package.swift based on what SwiftNIO supported. These minimum versions recently decreased making the platform requirement specification in Package.swift unnecessary. Modifications: - Remove platforms from Package.swift - Fix #file passed to function argument Result: - Dependents of gRPC Swift don't require their Package.swift to declare their supported platforms
PreviousNext