Skip to content

Latest commit

 

History

History
613 lines (553 loc) · 32.7 KB

CHANGELOG.md

File metadata and controls

613 lines (553 loc) · 32.7 KB

Change Log

All notable changes to this project will be documented in this file. Alamofire adheres to Semantic Versioning.


Released on 2015-08-10. All issues associated with this milestone can be found using this filter.

Fixed

  • Issue where a completed task was not released by the SessionDelegate if the task override closure was set.

Released on 2015-07-24. All issues associated with this milestone can be found using this filter.

Added

  • Test case around NSURLProtocol checking header passthrough behaviors.
  • Stream method on Request to receive data incrementally from data responses.
  • Example to the README demonstrating how to use the responseCollection serializer.
  • Link to the README to the CocoaDocs documentation for Alamofire.
  • Support for uploading MultipartFormData in-memory and streaming from disk.
  • Tests for uploading MultipartFormData with complete code coverage.
  • The iOS 8.4 simulator to the Travis CI builds by switching to the Xcode 6.4 build.
  • Tests for the custom header support with complete code coverage.
  • Section to the README about new HTTP header support in the global functions.
  • Basic auth Authorization header example to the README.
  • TLS certificate and public key pinning support through the ServerTrustPolicy.
  • Tests for TLS certificate and public key pinning with complete code coverage.
  • Security section to the README detailing various server trust policies.
  • The resumeData property to Request to expose outside data response serializer.
  • Download request sample to iOS example app.

Updated

  • The INFOPLIST_FILE Xcode project setting to be a relative path.
  • Exposed persistence parameter for basic auth credentials.
  • The Travis CI builds to run a full pod lib lint pass on the source.
  • All cases of force unwrapping with optional binding and where clause when applicable.
  • The ParameterEncoding encode return tuple to return a mutable URL request.
  • The URLRequest convenience method to return a mutable NSURLRequest.
  • The request / download / upload methods to support custom headers.
  • The global request / download / upload method external parameters convention.
  • Response serialization to use generics and a ResponseSerializer protocol.
  • Download task delegate to store resume data for a failed download if available.
  • The TaskDelegate.queue to public to allow custom request extension operations.
  • The README code samples for Advanced Response Serialization.

Removed

  • An unnecessary NSURLSessionConfiguration type declaration that can be inferred.
  • Unnecessary respondsToSelector overrides for SessionDelegate methods.
  • Unnecessary calls to self throughout source, test and example logic.

Fixed

  • Random test suite basic auth failures by clearing credentials in setUp method.
  • Error where wildcard was failing due to missing response MIME type.
  • Typo in the basic auth headers example code in the README.
  • Issue where the example app was printing elapsed time in optional form.

Upgrade Notes

There are a couple changes in the 1.3.0 release that are not fully backwards compatible and need to be called out.

  • The global request / download / upload external parameter naming conventions were not consistent nor did they match the Manager equivalents. By making them consistent across the board, this introduced the possibility that you "may" need to make slight modifications to your global function calls.

  • In order to support generic response serializers, the lowest level Request.response method had to be converted to a generic method leveraging the new ResponseSerializer protocol. This has many advantages, the most obvious being that the response convenience method now returns an NSData? optional instead of an AnyObject? optional. Nice!

    Please note that every effort is taken to maintain proper semantic versioning. In these two rare cases, it was deemed to be in the best interest of the community to slightly break semantic versioning to unify naming conventions as well as expose a much more powerful form of response serialization.

    If you have any issues, please don't hesitate to reach out through GitHub or Twitter.


Released on 2015-06-12. All issues associated with this milestone can be found using this filter.

Added

  • Tests for data task progress closure and NSProgress updates.
  • More robust tests around download and upload progress.
  • More robust redirect tests around default behavior and task override closures.
  • The "[" and "]" to the legal escape characters and added more documentation.
  • Percent escaping tests around reserved / unreserved / illegal characters.
  • Tests for various Cache-Control headers with different request cache policies.
  • Link to Carthage in the README.

Updated

  • iOS 7 instructions to cover multiple Swift files in the README.
  • All tests to follow the Given / When / Then structure.
  • All tests to be crash safe.
  • The OS X tests so that they are all passing again.
  • Re-enabled Travis-CI tests for both iOS and Mac OS X.
  • Travis-CI test suite to run all tests in both debug and release.
  • Travis-CI test suite to run all tests on iOS 8.1, 8.2 and 8.3 as well as Mac OS X 10.10.
  • Travis-CI test suite to run pod lib lint against the latest version of CocoaPods.

Fixed

  • Random deinitialization test failure by handling task state race condition.
  • Typo in the API Parameter Abstraction in the README.
  • Cookies are now only applied in the DebugPrintable API when appropriate.

Released on 2015-05-13. All issues associated with this milestone can be found using this filter.

Added

  • Contributing Guidelines document to the project.
  • Documentation to the URLStringConvertible protocol around RFC specs.
  • The Carthage/Build ignore flag to the .gitignore file.
  • The .DS_Store ignore flag to the .gitignore file.
  • Response status code asserts for redirect tests.
  • A CHANGELOG to the project documenting each official release.

Updated

  • SessionDelegate override closure properties to match the method signatures.
  • Documentation for the Printable protocol on Request to reference output stream rather than the specific OutputStreamType.
  • Deployment targets to iOS 8.0 and OS X 10.9 for the respective frameworks.
  • SessionDelegate willPerformHTTPRedirection method to accept optional return type from override closure.
  • Embedded Framework and Source File documentation in the README.
  • Alamofire source to be split into multiple core files and feature files.
  • TaskDelegate override closure signatures and delegate method implementations.

Removed

  • Travis-CI build status from the README until Xcode 6.3 is supported.
  • Unnecessary parentheses from closure parameters and typealiases.

Fixed

  • SessionDelegate override closure documentation.
  • Some inaccurate documentation on several of the public SessionDelegate closures.
  • A deinit race condition where the task delegate queue could fail to dispatch_release.
  • TaskDelegate to only set qualityOfService for NSOperationQueue on iOS 8+.
  • Expectation order issue in the redirect tests.
  • DataTaskDelegate behavior ensuring NSProgress values and progress override closures are always updated and executed.

Released on 2015-04-21.

Added

  • Redirect tests for the SessionDelegate.
  • TLS evaluation test case.
  • Additional guards to ensure unique task identifiers for upload and download tasks.

Updated

  • Required Xcode version to Xcode to 6.3 in the README.
  • SSL validation to use default system validation by default.

Released on 2015-04-09.

Added

  • New testURLParameterEncodeStringWithSlashKeyStringWithQuestionMarkValueParameter test.
  • New backgroundCompletionHandler property to the Manager called when the session background tasks finish.

Updated

  • Request computed property progress to no longer be an optional type.
  • All logic to Swift 1.2.
  • The responseString serializer to respect server provided character encoding with overrideable configuration, default string response serialization to ISO-8859-1, as per the HTTP/1.1 specification.
  • SessionDelegate methods to first call the override closures if set.
  • SessionDelegate and all override closures to a public ACL allowing for customization.
  • SessionDelegate class to final.
  • SessionDelegate header documentation for method override properties.
  • Xcode project to set APPLICATION_EXTENSION_API_ONLY to YES for OS X target.

Removed

  • Ambiguous response serializer methods that collided with default parameters.
  • SessionDelegate initializer and replaced with default property value.

Fixed

  • Async tests where asserts were potentially not being run by by moving expectation.fullfill() to end of closures.
  • Small grammatical error in the ParameterEncoding section of the README.
  • Typo in a download test comment.
  • Signature mismatch in the dataTaskDidBecomeDownloadTask override closure.
  • Issue in the SessionDelegate where the DataTaskDelegate was not being called.

Released on 2015-03-26.

Added

  • Convenience upload functions to the Manager.
  • Info to the README about Swift 1.2 support.

Updated

  • All request / upload / download methods on Manager to match the top-level functions.
  • The testDownloadRequest to no longer remove the downloaded file.
  • Ono XML response serializer example in the README.
  • Travis-CI settings to only build the master branch.
  • Code signing identities for the frameworks and targets to better support Carthage.
  • iOS deployment target to iOS 8.0 for iOS target and tests.
  • Legal characters to be escaped according to RFC 3986 Section 3.4.

Fixed

  • Travis-CI scheme issue, added podspec linting and added ENV variables.
  • Code sample in the README in the Manual Parameter Encoding section.

Released on 2015-01-30.

Added

  • Podspec argument requires_arc to the podspec file.
  • Support for Travis-CI for automated testing purposes.

Updated

  • Installation instructions in the README to include CocoaPods, Carthage and Embedded Frameworks.
  • Travis-CI to use Xcode 6.1.1.
  • The download method on Manager to use Request.DownloadFileDestination typealias.
  • RequestTests to no longer delete all cookies in default session configuration.
  • Travis-CI yaml file to only build the active architecture.
  • Deployment targets to iOS 7.0 and Mac OS X 10.9.

Removed

  • The tearDown method in the AlamofireDownloadResponseTestCase.

Fixed

  • Small formatting issue in the CocoaPods Podfile example in the README.
  • Several issues with the iOS and OSX targets in the Xcode project.
  • The testDownloadRequest in DownloadTests by adding .json file extension.
  • The AlamofireRequestDebugDescriptionTestCase on OSX.
  • Spec validation error with CocoaPods 0.36.0.beta-1 by disabling -b flags in cURL debug on OSX.
  • Travis-CI build issue by adding suppport for an iOS Example scheme.

Released on 2015-01-09.

Added

Updated

  • Upload and Download progress state to be updated before calling progress closure.

Fixed

  • Some casting code logic in the Generic Response Object Serialization example in the README.
  • Indentation formatting of the responseString parameter documentation.

Released on 2014-12-21.

Added

Updated

  • The response object example to use a failable initializer in the README.
  • Router example in the README by removing extraneous force unwrap.
  • Xcode project APPLICATION_EXTENSION_API_ONLY flag to YES.
  • Default HTTP header creation by moving it into a public class method.

Fixed

  • Upload stream method to set HTTPBodyStream for streamed request.
  • ParameterEncoding to compose percent-encoded query strings from percent-encoded components.
  • Serialization handling of NSData with 0 bytes.
  • Issue where suggestedDownloadDestination parameters were being ignored.
  • Crash caused by Manager deinitialization and added documentation.

Released on 2014-11-20.

Updated

  • Dispatch-based synchronized access to subdelegates.
  • iOS 7 instructions in the README.
  • CRUD example in the README to work on Xcode 6.1.
  • The cURL example annotation in the README to pick up bash syntax highlighting.

Fixed

  • Out-of-memory exception by replacing stringByAddingPercentEncodingWithAllowedCharacters with CFURLCreateStringByAddingPercentEscapes.
  • Several issues in the README examples where an NSURL initializer needs to be unwrapped.
  • Possible exception when force unwrapping optional header properties.
  • Optional cookie entry in cURL output.
  • Optional textLabel property on cells in the example app.

Released on 2014-10-20.

Updated


Released on 2014-10-20.

Added

  • Tests for upload and download with progress.
  • Test for question marks in url encoded query.
  • The NSURLSessionConfiguration headers to cURL representation.
  • Parameter encoding tests for key/value pairs containing spaces.
  • Percent character encoding for the + character.
  • Escaping for quotes to support JSON in cURL commands.
  • The request method to the Manager bringing it more inline with the top-level methods.
    • Added by Brian Smith.

Fixed

  • Parameter encoding of ampersands and escaping of characters.
  • Parameter encoding of HTTPBody from occurring twice.
    • Fixed by Yuri in Pull Request #153.
  • Extraneous dispatch to background by using weak reference for delegate in response.
  • Response handler threading issue by adding a subdelegateQueue to the SessionDelegate.
  • Challenge issue where basic auth credentials were not being unwrapped.

Released on 2014-09-25.

Added