Releases: grpc/grpc-swift
gRPC Swift 1.0.0-alpha.12
SemVer Minor
- Add a retry limit to ConnectionBackoff (#784)
SemVer Patch
- Fix pushing CocoaPods. (#790)
- Suppress #file/#filePath warnings on recent compilers (#782)
- Discard excess read bytes in LengthPrefixedMessageReader. (#781)
- Provide Pod Specific Descriptions and Script Cleanup (#775, patch credit to @Jake-Prickett)
- Bump version to 1.0.0-alpha.11 (#774, patch credit to @nathanhleung)
- Add Cocoapod Support for SwiftGRPC (#764, patch credit to @Jake-Prickett)
- Point build badge to master branch (#769)
- Change Swift 5.2 development to release for CI (#765)
gRPC Swift 1.0.0-alpha.11
SemVer Patch
- Remove required platforms from SPM (#761)
- Added .git ending for
swift-log(#760, patch credit to @fabianfett)
gRPC Swift 1.0.0-alpha.10
⚠️ This release contains a number of API breaking changes. ⚠️
In order to support payloads other than Protocol Buffers, for example Flatbuffers, it was necessary for much of the surface API to be generic over a new protocol, GRPCPayload instead of Message. This therefore requires that services are regenerated.
We also took this opportunity to address the interface between the generated code and runtime library: clients previously relied on ClientConnection for transport, they now rely on an something conforming to GRPClient; such as ClientConnection.
Generated clients have also had "Service" removed from their name. For example, the client for the Bar service in the Foo package would previously have been generated as Foo_BarServiceClient and will now be generated as Foo_BarClient. If you have multiple references to generated clients in your code which need updating it is possible to create a deprecated type alias such that Xcode will provide fixits:
@available(*, deprecated, renamed: "Foo_BarClient")
typealias Foo_BarServiceClient = Foo_BarClientThe list of supported platforms has now been added to Package.swift; dependents using Swift Package Manager must now also declare their supported platforms.
SemVer Major:
- Adds the ability to use different payloads (#710, patch credit to @mustiikhalil)
- Rename generated clients from FooServiceClient to FooClient (#736)
- Put the client connection behind a protocol (#727)
- Add supported platforms to Package.swift (#696)
- Add support for compression (#714, #707, #729)
SemVer Minor:
- Add a builder to make configuring a server easier (#752)
- Add a builder to make configuring a client connection easier (#733)
SemVer Patch:
- Fix bug with BoringSSLError.invalidSNIName exception (#702, patch credit to @esen)
- Use metadata in log messages (#720, patch credit to @mariosangiorgio)
- Fixed basic tutorial typo (#724, patch credit to @JanC)
- Generate documentation from proto comments (#743)
- Normalize user-provider headers (#730)
- Fixed a bug where in some cases conformace to GRPCProtobufPayload could be generated multiple times (#740)
- Add tests for custom payloads (#719)
- Reorder some of the server logic. (#717)
- Document how to create certificates/private keys from a string (#699)
- Various infrastructure and documentation improvements (#695, #698, #701, #704, #713, #718, #728, #731, #734)
gRPC Swift 1.0.0-alpha.9
Many of the types which should be implementation details are now either internal or private. Similarly, a number of components have been refactored to be extensible in a way which doesn't break the API in the future.
In addition to the API changes:
- Avoid protocol check after TLS handshake (#685, credit to @WilliamIzzo83)
- log channel readiness and eventloop for debugging (#676, credit to @weissi)
- Fix typo in the "grpc-exp" ALPN name (#681)
- Miscelanoues CI and infrastructure improvements (#670, #691, #686, #677)
API Changes:
- Make GRPCTimeout extensible and add documentation. (#689)
- Make gRPC error types extensible (#669)
- Rename asGRPCStatus() to makeGRPCStatus(), add documentation. (#690)
- Remove outdated examples/documentation (#692)
- Simplify compression representation. (#688)
- Make LengthPrefixedMessageWriter internal (#673)
- Make server request/response parts internal (#672)
- Make LengthPrefixedMessageReader internal (#674)
- Make GRPCClientUserEvent internal (#675)
- Make client request/response parts internal (#671)
- Make server CallHandlers more internal (#657) [email protected]
- Make WebCORSHandler internal (#664)
- Make GRPCClientChannelHandler underscore internal (#662)
- Make HTTPProtocolSwitcher internal (#661)
- Make GRPCServerCodec internal (#660)
- Make TLSVerificationHandler internal (#659)
- Make DelegatingErrorHandler underscored-internal (#658)
- Make GRPCApplicationProtocolIdentifier internal (#665)
- Make header names internal (#666)
gRPC Swift 1.0.0-alpha.8
- Correctly set the authority to the host rather than scheme (#637, patch credit to @adolfo)
- Allow client error delegate to have a logger injected (#654)
⚠️ This is a breaking change. Implementations ofClientErrorDelegatemust now accept an additional argumentloggerindidCatchError.
- Fix compile issues in Google/NaturalLanguage (#643)
- Don't log at info level (#651)
- Ignore SSL unclean shutdown errors (#650)
- Update dependencies (#649)
- Update minimum required version of SwiftNIO SSL (#640)
- Build protoc plugins in release mode (#647)
- A number of performance improvements (#653, #645, #644, #641)
gRPC Swift 1.0.0-alpha.7
Important: this change contains breaking changes to the generated client code.
- License header checking script (#587)
- Run CI on Swift 5.1 and Swift 5.0 (#588)
- Add missing environment variable for interop tests (#589)
- RPC state machine for client (#580)
- Add/update GOVERNANCE.md, CODE-OF-CONDUCT.md and CONTRIBUTING.md (#595)
- Add HelloWorld example (#590)
- Add a RouteGuide example and tutorial (#598)
- Fix up markdown (#600)
- Reduce logging in the message reader (#602)
- Workaround for SR-11564 (#608)
- Provide a channel handler using the client state machine (#601)
- Use string comparison instead of regex in the HTTPProtocolSwitcher (#618)
- Update the client to use the new state machine backed channel handler (#625)
- Update CI to use more recent Swift versions (#629)
- Reduce logging verbosity (#632)
- Inline service name into the generated path (#633)
- Require a lock to access the connectivity state delegate (#634)
- import FoundationNetworking if possible (#586)
- Remove unexported executables from products (#592)
- Fix interoperability tests. (#596)
Release 0.10.0
gRPC Swift 1.0.0-alpha.6
gRPC Swift 1.0.0-alpha.5
- Always use the same event loop for a client connection (#562)
- Allow timeouts to be rounded so they may comply with the spec (#569)
- Separate trailers from GRPCStatus (#572)
- Replace Commander usage with our own CLI parsing (#570)
- Split the Echo example into model, implementation and runtime (#567)
- CI and version updates (#561, #571, #568, #573)
gRPC Swift 1.0.0-alpha.4
- Increase the minimum required version of NIOSSL (#559)
- Increase the minimum required version of NIOHTTP/2 (#548)
- Implement the connection backoff interoperability test (#557)
- Default to using backoff for making connections (#554)
- Make the connection backoff iterator continually produce backoff (#554)
- Fix a rare thread safety issue in tests (#551)
- Add server logging (#547)
- Use protoToModuleMappings in input/output names (#555)
- Package structure updates, typo fixes, dead code removal (#558, #556, #549, #546, #544)