All Versions
43
Latest Version
Avg Release Cycle
42 days
Latest Release
5 days ago

Changelog History
Page 1

  • v0.28.0

    May 28, 2020
    • 💥 BREAKING: Changed a few things in the ApolloCodegen library to use object.apollo.extensionMethod syntax rather than object.apollo_extensionMethod. There's a few things that are still using apollo_ notation due to constraints around conditional conformance, but you should particularly check your swift scripts for changes around FileManager APIs. (#1183)
    • 💥 BREAKING: NormalizedCache now has a method for explicitly clearing the cache synchronously, in addition to the existing method to clear it asynchronously. If you've got a custom NormalizedCache implementation, you'll need to add an implementation for this method. (#1186)
    • 🛠 Fixed race conditions in URLSessionClient that were causing unexpected behavior. Turns out concurrency is hard! (#1227)
    • 👌 Improved handling of a dependent key update cancelling an in-flight server fetch on a watcher. (#1156)
    • ➕ Added option to Swift Codegen to pass in a prefix for custom scalars. (#1216)
    • ➕ Added ability to change a header on a websocket connection and automatically reconnect. (#1224)
  • v0.27.1

    May 04, 2020
    • 👍 Better defense against multithreading crashes in URLSessionClient. (#1184)
    • 🛠 Fix for watchOS availability for URLSessionClient. (#1175)
  • v0.27.0

    April 28, 2020
    • 💥 BREAKING: Replaced calls directly into the closure based implementation of URLSession with a delegate-based implementation called URLSessionClient.

      • This (finally) allows background session configurations to be used with ApolloClient, since background session configurations immediately error out if you try to use the closure-based URLSession API.
      • This makes a significant change to the initialization of HTTPNetworkTransport if you're using a custom URLSession: Because URLSession must have its delegate set at the point of creation, URLSessionClient is now creating the URL session. You can initialize a URLSessionClient with a URLSessionConfiguration. if before you were using:

        let session = URLSession(configuration: myCustomConfiguration)
        let url = URL(string: "http://localhost:8080/graphql")!
        let transport = HTTPNetworkTransport(url: url,
                                             session: session)
        

        You will now need to use:

        let client = URLSessionClient(sessionConfiguration: myCustomConfiguration)
        let url = URL(string: "http://localhost:8080/graphql")!
        let transport = HTTPNetworkTransport(url: url,
                                             client: client)
        
      • If you were passing in a session you'd already set yourself up to be the delegate of to handle GraphQL requests, you'll need to subclass URLSessionClient and override any delegate methods off of URLSessionDelegate, URLSessionTaskDelegate, or URLSessionDataDelegate you need to handle. Unfortunately only one class can be a delegate at a time, and that class must be declared when the session is instantiated.

        Note that if you don't need your existing delegate-based session to do any handling for things touched by Apollo, you can keep it completely separate if you'd prefer.

      • This does not change anything at the point of calls - everything is still closure-based in the end

      Please file bugs on this ASAP if you run into problems. Thank you! (#1163)

  • v0.26.0

    April 21, 2020
    • 💥 BREAKING , though in a good way: Updated the typescript CLI to 2.27.2, and updated the script to pull from a CDN (currently backed by GitHub Releases) rather than old Circle images. This should significantly increase download performance and stability. (#1166)
    • 💥 BREAKING : Updated the retry delegate to allow more fine-grained control of what error to return if an operation fails in the process of retrying. (#1128, #1167)
    • ➕ Added support to the Swift scripting package to be able to use multiple headers when downloading a schema. (#1153)
    • ➕ Added the ability to set the SSL trust validator on a websocket. (#1124)
    • 🛠 Fixed an issue deserializing custom scalars in ApolloSQLite. (#1144)
  • v0.25.1

    May 01, 2020
    • ⬆️ Repoints download link to our CDN for the CLI for people on 0.25.0 who can't upgrade to 0.26.0 or higher immediately.
  • v0.25.0

    March 31, 2020
    • 💥 BREAKING: Updated the swift-tools version to 5.2 in Package.swift. Note that if you're using swift-tools 5.2, you'll need to update the syntax of your Package.swift file and specify the name of the library manually for Apollo. (#1099, #1106)
    • POSSIBLY BREAKING: Upgraded the typescript CLI to 2.26.0. No changes were found in test frameworks, but this could theoretically break some stuff. (#1107, #1113)
    • 🆕 NEW: Added the ability to set Starscream's underlying enableSOCKSProxy to better allow debugging web sockets in tools like Charles Proxy. (#1108)
    • 🛠 Fixed several issues using paths with spaces in the Swift Codegen. (#1092, #1097).
    • ApolloCodegenLib is now properly passing the header argument last when downloading a schema. (#1096)
    • Automatic Persisted Queries now also work with mutations. (#1110)
  • v0.24.1

    May 01, 2020
    • ⬆️ Repoints download link to our CDN for the CLI for people on 0.24.0 who can't upgrade to 0.26.0 or higher immediately.
  • v0.24.0

    March 20, 2020
    • 💥 BREAKING : Updated GraphQLResponse to be generic over the response type rather than the operation type. This will allow more flexibility for generic modifications to methods that need to use GraphQLResponse. (#1061)
    • 💥 BREAKING : Updated the file URL-based initializer of GraphQL to throw with a clear error instead of failing silently. Removed the ability to pass in an input stream since that can't be recreated on a failure. Updated initializers take either raw Data or a file URL so that the input stream can be recreated on a retry. (#1086, #1089)
    • 📦 In the Swift Package Manager based codegen, made sure that the folder the CLI will be downloaded to is created if it doesn't exist. (#1069)
  • v0.23.3

    May 01, 2020
    • ⬆️ Repoints download link to our CDN for the CLI for people on 0.23.x who can't upgrade to 0.26.0 or higher immediately.
  • v0.23.2

    March 05, 2020
    • 🔄 Changed the @available flags added in 0.23.1 to #if os(macOS), since the former is runtime and the latter is compile time, to work around a bug where SwiftUI compiles the ApolloCodegenLib library even if it's not included in the target being previewed. (#1066)
    • ➕ Added support for omitDeprecatedEnumCases command line option I missed for ApolloCodegenOptions (#1053)