All Versions
Latest Version
Avg Release Cycle
10 days
Latest Release

Changelog History
Page 4

  • v0.46.0 Changes

  • v0.45.0 Changes

    • ๐Ÿ’ฅ Breaking - Downgraded from Starscream v4 to v3! After upgrading to Starscream 4.0, a lot of our users started to experience crashes while using web sockets. We've decided to revert to the more stable Starscream version 3. In order to fix a few known bugs in Starscream 3, we have made a fork of Starscream that Apollo will depend on going forward. In preparation for moving to Apple WebSockets in the future, we have also fully inverted the dependency on Starscream. Between these two changes, a lot of breaking changes to our Web Socket API have been made:
      • The ApolloWebSocketClient protocol was removed and replaced with WebSocketClient.
      • WebSocketClient does not rely directly on Starscream anymore and has been streamlined for easier conformance.
      • ApolloWebSocket, the default implementation of the WebSocketClient has been replaced with DefaultWebSocket. This implementation uses Starscream, but implementations using other websocket libraries can now be created and used with no need for Starscream.
      • WebSocketClientDelegate replaces direct dependency on Starscream.WebSocketDelegate for delegates.
    • ๐Ÿ’ฅ Breaking: Renamed some of the request chain interceptors object:
      • LegacyInterceptorProvider -> DefaultInterceptorProvider
      • LegacyCacheReadInterceptor -> CacheReadInterceptor
      • LegacyCacheWriteInterceptor -> CacheWriteInterceptor
      • LegacyParsingInterceptor -> JSONResponseParsingInterceptor
    • ๐Ÿ’ฅ Breaking: WebSocketTransport is now initialized with an ApolloWebSocket (or other object conforming to the ApolloWebSocketClient protocol.) Previously, the initializer took in the necessary parameters to create the web socket internally. This provides better dependency injection capabilities and makes testing easier.
    • โœ‚ Removed class constraint on ApolloInterceptor and converted to structs for all interceptors that could be structs instead of classes.
    • โž• Added removeRecords(matching pattern: CacheKey) function to the normalized cache.
  • v0.44.0 Changes

    • ๐Ÿ’ฅ BREAKING: Split ApolloCore into two more granular libraries, ApolloAPI (which will contain the parts necessary to compile generated code) and ApolloUtils (which will contain code shared between Apollo and ApolloCodegenLib). If you were previously importing ApolloCore, in most places you will need to import ApolloUtils. If you're using Carthage, you will need to remove the old ApolloCore xcframework and replace it with the two ApolloAPI and ApolloUtils frameworks. (#1817)
    • ๐Ÿ›  Fixed a stray CocoaPods warning. (#1769)
    • โšก๏ธ Updated the Typescript CLI to version 2.32.13. (#1773)
    • โž• Added the ability to specify a cachePolicy when calling refresh on a GraphQLWatcher. (#1802)
  • v0.43.0 Changes

    • ๐Ÿ’ฅ BREAKING (or hopefully, fixing): We removed our test libraries from our Package.swift file since we're not using it to run tests directly at this time. This prevents SPM from trying to resolve test dependencies that are not actually used in the library, which should reduce any version conflicts. However, if you were using any of our test libs in an unsupported fashion, these will no longer be directly available. (#1745)
    • ๐Ÿ›  Fixed an issue where when Starscream returned multiple errors in close succession, an exponential number of web socket reconnections could be created. (#1762)
    • โšก๏ธ Updated class constraints to AnyObject constraints, which should silence a few warnings in 12.5 and be more forward compatible. (#1733)
    • โž• Added the ability to specify a callback queue for the result handler of GraphQLWatcher. (#1723)
    • ๐Ÿ›  Fixed a crash when closing a web socket connection and re-opening it immediately. (#1740)
    • โšก๏ธ You can now skip auto-reconnection for updating the header values and connecting payload in ApolloWebSocket. (#1759)
    • Now avoids the ? when generating a GET URL if queryItems is empty. (#1729)
    • โšก๏ธ Updated use of the default fetch policy to include fetch and watch. Note that under the hood, this does not change what fetch policy was pointed to at this time, it just centralizes the logic. (#1737)
  • v0.42.0 Changes

    • ๐Ÿ’ฅ BREAKING: Finally updates our Starscream dependency to 4.0.x. Note that due to SOCKS proxy support being removed from Starscream, we've correspondeingly removed such support.(#1659)
    • ๐Ÿ’ฅ BREAKING, but only to Swift Scripting: Updated ApolloSchemaOptions to more clearly handle introspection (ie, from a URL) vs registry (ie, from Apollo Studio) requests by using an enum. If you were passing in an endpointURL previously, you need to use the .introspection enum value going forward. Also changed the name of the field to match the new type. (#1691)
    • ๐Ÿ’ฅ BREAKING: Removed CoadableParsingInterceptor and related code designed for new codegen (which is still in progress) since we were wildly over-optimistic on how quickly we'd be using it. (#1670)
    • ๐Ÿ›  Fixed an issue where tasks that were in the canceling state could trigger a No data found for task assertion failure. (#1677)
    • ๐Ÿ›  Fixed an issue with encoding + in GET requests. (#1653)
    • ๐Ÿ›  Fixed an issue where creating GET requests removed existing query params from the URL. (#1687)
    • ๐ŸŒ Prevented a retain cycle during web socket reconnection. (#1674)
    • โž• Added better handling for calling cancel on a RequestChain which has already been cancelled. (#1679)
  • v0.41.0 Changes

    • ๐Ÿ’ฅ BREAKING: Fixed an issue in which UploadRequests were not getting headers added via the RequestChainNetworkTransport's additionalHeaders. Please note that if you've subclassed the RCNT, you'll need to update your overrides since we had to add a parameter. (#1644)
    • ๐Ÿ”ง Stopped GET requests from sending a Content-Type header, which could cause servers not configured to ignore that header when the body is empty to freak out. (#1649)
  • v0.40.0 Changes

    • ๐Ÿ’ฅ BREAKING: Dropped support for iOS/tvOS < 12, watchOS < 5, and macOS < 10.14. This also involved removing a couple of public functions that were workarounds for support for lower versions. (#1605)
    • โšก๏ธ Updated the typescript CLI to version 2.32.1. There may be some structural changes to generated code but it should not actually break anything. Please file bugs immediately if it does. (#1618)
  • v0.39.0 Changes

    • POSSIBLY BREAKING: Updated swift-tools version to 5.3, and added a fallback version of Package.swift for 5.2. (#1584)
    • ๐Ÿ’ฅ BREAKING, technically: Switched cachePolicy to a var on HTTPRequest. This makes it possible for retries to use a different cache policy, such as when an error has occurred at the network level and you want to fall back to showing what's in the cache without retrying the network call. (#1569)
    • โž• Added validation in Swift Codegen wrapper that a URL passed in for singleFile code generation is a .swift file and a URL passed in for multipleFiles code generation is a folder. (#1580)
  • v0.38.3 Changes

    December 08, 2020
    • ๐Ÿ›  Fixes an issue that could cause callbacks to fail if a retry was performed in an additionalErrorInterceptor. (#1563)
  • v0.38.2 Changes

    December 04, 2020
    • โšก๏ธ Updates a dependency used for Experimental Swift Codegen to use a version to fix an issue with resolution failures