Alamofire v4.0.0 Release Notes

  • πŸš€ Released on 2016-09-11. All issues associated with this milestone can be found using this filter.

    βž• Added

    • Internal DispatchQueue extension set of convenience properties and methods.
    • RequestAdapter and RequestRetrier protocols allowing requests to be retried.
    • βœ… RequestAdapter tests on all testable SessionManager request APIs.
    • βž• Added an Adapting and Retrying Requests section to the README.
    • DataRequest, DownloadRequest, UploadRequest and StreamRequest subclasses.
    • Top-level APIs for creating StreamRequest instances.
    • Extra responseToSelector overrides for stream delegate APIs.
    • πŸ”€ A new syncResult extension to DispatchQueue to simplify thread-safe locking.
    • πŸ‘ Two serialization failure reasons to support download response serializers.
    • βœ… Download response serialization tests for all serializer types.
    • The dataFileNil and dataFileReadFailed cases to ResponseValidationFailureReason.
    • The isWildcard property to MIMEType struct for convenience.
    • Missing CustomDebugStringCovertible conformance to DownloadResponse.
    • βœ… URL variants to the FileManager extension in the test suite.
    • DownloadOptions option set to make moving files more robust.
    • βœ… Tests validating success and failure scenarios for DownloadOptions.
    • πŸ”¨ Parameter encoding failure docstrings and refactored reasons to be consistent.
    • Safeguards to url parameter encoding when extracting the url request’s url.
    • The new URLSessionTaskMetrics to all Response types.
    • The Alamofire 4.0 Migration Guide to the README.
    • HTTPHeaders typealias for top-level API convenience.
    • Complete safeguards to URLStringConvertible, URLRequestConvertible and RequestAdapter.
    • βœ… Tests around invalidURL error cases for Request creation and adaptation.

    ⚑️ Updated

    • The authorizationHeader static method over to returning optional tuple.
    • SessionManager queues to each have a unique name using a UUID suffix.
    • The progress tracking system across all Request subclasses to improve accuracy.
    • βœ… BaseTestCase to delete contents of common directories at the start of each test.
    • Response handler extensions by moving them into DataRequest and added equivalents for DownloadRequest.
    • The response serializer types to use the Protocol suffix.
    • Validation typealias to include response data in a DataRequest type.
    • Validation typealias to include temporary and destination URLs in a DownloadRequest type.
    • SessionManager APIs to all leverage TaskConvertible conformance.
    • DownloadFileDestination closures to be optional on top-level DownloadRequest APIs.
    • 0️⃣ The request and download APIs now default to .get method and upload defaults to .post.
    • The ParameterEncoding encode API to throw instead of returning tuple.
    • The TaskDelegate to only store the url session task error if error is nil.
    • ParameterEncoding enum by switching to a protocol backed by url, json and plist structs.
    • ⚑️ Updated RequestRetrier completion to be escaping.
    • βœ… Code signing to automatic with no team on framework, test and app targets.
    • README for Swift 3 and Alamofire 4 along with reorganization.
    • πŸ›  README with improved Error examples as well as typo and whitespace fixes.
    • Request task property is now optional allowing errors to propagate through.
    • The Travis-CI device list in the yaml file.
    • The top-level APIs by removing external resource parameter name.
    • 🚚 The URLStringCovertible by renaming to URLConvertible and removed protocol property.
    • The README and migration guide with the URLConvertible and top-level API changes.

    βœ‚ Removed

    • Unnecessary public ACL declarations on AFError extensions.
    • URLStringConvertible conformance on URLRequest.
    • βœ‚ Removed downloadProgress and uploadProgress Int64 variants.
    • 🌲 Duplicated change log message in the migration guide.
    • βœ… Code coverage generation by default to improve test suite stability.

    πŸ›  Fixed