Skip to content

Latest commit

 

History

History
467 lines (319 loc) · 19.9 KB

CHANGELOG.md

File metadata and controls

467 lines (319 loc) · 19.9 KB

Main

Enhancements

  • None
Bug Fixes
  • None

5.1.0 (2023-12-06)

Enhancements

  • Add a PreparationStrategy property to BackendService to allow for just-in-time modifications to outgoing Requests. Will McGinty #171
Bug Fixes
  • None

5.0.0 (2022-03-15)

Enhancements

  • Remove SSL pinning machinery Will McGinty #164

  • Add ability to print formatted JSON from `HTTP.Response'. Will McGinty #167

  • Deprecate URLQueryParameterEncoder Will McGinty #160

  • Convert Transporting, BackendServicing and related subsystems to utilize structured concurrency. Will McGinty #160

  • Remove migration typeliases for all the types that were deprecated in 4.0, including RequestRecoveryStrategy, NetworkServiceFailureInitializable, and NetworkService*. Will McGinty #158

Bug Fixes
  • None

4.1.0 (2022-04-19)

Enhancements

  • Deprecate TrustConfiguration, TrustValidator, CertificateHasher, AuthenticationChallenge and TrustValidatingTransportService for iOS 14+ and macOS 11+ in favor of NSPinnedDomains Info.plist key Will McGinty #154
Bug Fixes
  • Fix an issue with FormURLEncoder not properly encoding ampersands Andrew Winn #155

4.0.0 (2022-01-14)

Enhancements

  • Add support for Mac Catalyst Andrew Winn #152

  • Add example for macOS (AppKit and Catalyst) Andrew Winn #152

  • Make TransportService thread-safe Daniel Larsen #145

  • Added async / await functions for executing requests Daniel Larsen #142

  • Migrate to use .xcframework's when resolving depencies using Carthage Will McGinty #139

  • Add acceptedRange to HTTP.Status subtypes and allow for individual subtypes to be detected. Will McGinty #139

  • Strongly type HTTP.Request.headers and HTTP.Response.headers as [HTTP.HeaderKey: HTTP.HeaderValue]. Will McGinty #139

  • Add functionality to consider an arbitrary TransportFailure a success, using Request.recoveryTransformer. Will McGinty #139

  • Add an overload to map which passes along the TransportSuccess as well as the original Response. Will McGinty #139

  • Migrate the request recovery strategy to the BackendServiceProtocol definition. Will McGinty #110

  • Added method parameter to HTTP.Request. Alex Reyes #138

  • Changed underlying error in AnyError's NetworkServiceFailureInitializable implementation from NetworkServiceError to NetworkServiceFailure so it can return its failure response rather than nil. Richard Burgess #95

  • Finished migrating all targets to Swift 5. Tyler Milner #100

  • Added Carthage support. Ryan Gant #101

  • Added Swift Package Manager support. Ryan Gant #102

  • Migrate the request recovery strategy to the BackendServiceProtocol definition. Will McGinty #110

  • Rename RequestRecoveryStrategy to RecoveryStrategy and allow multiple to be attached to a single BackendService. They are executed in the order they are initialized. Will McGinty #117

  • Rename DecodingFailureInitializable to DecodingFailureRepresentable and make the failing HTTP.Response available during initialization. Will McGinty #117

  • Create an HTTP.Body type to abstract the Data of a URLRequest. Will McGinty #117

  • Several changes to simplify and refine DecodableContainer, as well as introduce EncodableContainer and CodableContainer. Will McGinty #117

  • Convert Request protocol into a struct and eliminate the AnyRequest type. A URLRequestCreationStrategy has been created to allow for differences in URLRequest generation. Will McGinty #117

  • Rename Network* to Transport* to provide a clearer distinction between the role of the BackendService and TransportService. Will McGinty #117

  • Utilize URLError as part of the Transporting protocol to allow for more granularity and detail in error reporting. Will McGinty #117

  • Make TransportError inits public. Earl Gaspard #121

  • Create a form URL encoded HTTP.Body convenience Will McGinty #125

  • Add deprecated typealias to ease migration to 4.0 Will McGinty #124

  • Create EmptyDecodingStrategy to add flexibility to decoding EmptyResponse Will McGinty #130

  • Add defaultDecoder to RequestDefaults and use when initializing a Request. Earl Gaspard #131

  • Make transportService public in BackendService. Earl Gaspard #134

  • Make DecodingFailure.Context properties public. Earl Gaspard #135

  • Add defaultMaxRecoveryAttempts to RequestDefaults and use for maxRecoveryAttempts in Request. This changes the default retries from unlimited to 1. Earl Gaspard #137

Bug Fixes
  • Add an assertion to BackendService if a GET HTTP request with body data is detected. Will McGinty #106

3.2.1 (2019-07-19)

Enhancements

  • None
Bug Fixes

3.2.0 (2019-07-11)

Enhancements

Bug Fixes
  • None

3.1.0 (2019-05-07)

Enhancements

Bug Fixes
  • None.

3.0.0 (2019-01-03)

Enhancements
  • Fixed CHANGELOG for version 2.0.0/2.1.0. Tyler Milner #73

  • Remove the type definitions deprecated in 2.0.0 Will McGinty #72

  • [BREAKING] Added failing type information to DecodingFailureInitializable allowing the API to make decisions based off of the type that failed to decode and deprecate dynamically keyed decoding. Will McGinty #71

  • [BREAKING] Renamed Request protocol's transformData(_:serviceSuccess:) method to transformSuccess(_:). The redundant data parameter was removed since the NetworkServiceSuccess makes it available as a property. Also simplified method signatures by introducing RequestTransformBlock typealias. Tyler Milner #69 #70

  • Fixed minor typo in CHANGELOG where the PR URL text didn't match the underlying PR number. Tyler Milner #68

Bug Fixes
  • None.

2.1.0 (2018-09-20)

Enhancements
  • Mark Request.queryParameters as deprecated in v2. Daniel Larsen #59 #61

  • Added notes about headers property changes to migration guide. Tyler Milner #60 #62

  • Updated Travis-CI to Xcode 9.4. Tyler Milner #63

  • Add headers property to HTTP.Response. The method signature of Request’s transformData(_:) method has changed. If you implement a custom transformData(_:) method, you will need to replace it with transformData(_:serviceSuccess:). Earl Gaspard #64

  • Updated Result dependency to version 4.0, updated Travis-CI to Xcode 10, and updated Swift version from Swift 4.1 to Swift 4.2 (for both library and sample app). Tyler Milner #67

Bug Fixes
  • None.

2.0.0 (2018-08-03)

Enhancements
  • Two new error-facing protocols were added. NetworkServiceFailureInitializable represents a Swift.Error that can be initialized from a NetworkServiceFailure object. DecodingFailureInitializable represents a Swift.Error that can be initialized from a DecodingError as a result of decoding Data. These conformances have been added as extensions to AnyError (meaning AnyRequest usage is unaffected). As a result of these new protocols, the BackendServiceError type has been removed. Types conforming to Request now have an associated ErrorType which must conform to NetworkServiceFailureInitializable. If a request generates any sort of failure response, the custom error type will be initialized from it instead of returning a generic BackendServiceError. In addition, if Request.ErrorType conforms to DecodingFailureInitializable, the custom error type will be instantiated and returned. Will McGinty #38

  • Added a new initalizer to AnyRequest which accepts a String value designating the key of JSON at which to begin decoding. Will McGinty #41

  • Separated the generation/encoding of the URL query from the Request object into an extension URL. Will McGinty #40

  • Add functionality to NetworkReqest to allow for replacing and adding to the HTTP headers. Will McGinty #43

  • Simplify usage of DecodableContainer types with JSONDecoder Will McGinty #44

  • Add a subsystem which can perform transparent error handling using RequestRecoveryStrategy. Will McGinty #45

  • Simplify usage of dataTransfomer extensions with custom error types Will McGinty #47

  • Add HTTP.HeaderValue for JSON API specification. Earl Gaspard #46

  • Converted HTTP.Statusnested types (HTTP.Status.Success, HTTP.Status.ClientError, etc.) from enums to RawRepresentable structs. This keeps the library more open for extension by allowing clients to more easily specify and use custom HTTP status codes. Tyler Milner #49 #50

  • Implemented synthesized Equatable and Hashable conformance that was introduced in Swift 4.1. Tyler Milner #51

  • Renamed NetworkRequest and AnyNetworkRequest to Request and AnyRequest. Will McGinty #52

Bug Fixes
  • None.

1.1.1 (2018-05-10)

Enhancements
Bug Fixes
  • None.

1.1.0 (2018-02-08)

Enhancements
  • Adjusted project structure to better support Travis-CI. CI is fully up-and-running on all 3 currently supported platforms. Carthage is now required to work on the library and run the example projects (Cocoapods is no longer used). Clone the repo, run carthage update, and then open Hyperspace.xcworkspace to get started. Tyler Milner #3

  • Can now cancelAllTasks() on BackendServiceProtocol. Will McGinty #4

  • NetworkService logic extracted into NetworkServiceHelper to better support future framework compatibility with URLSessionDelegate implementations. Will McGinty #5

  • NetworkService can now represent loading via the global network activity indicator shown in the device's status bar. Just initialize your NetworkService with a NetworkActivityIndicatable (ex: NetworkService(networkActivityIndicatable: UIApplication.shared)). Will McGinty #2

  • Improved code coverage > 90%. Adamcbrz #1 #10

  • Re-enabled SwiftLint. Will McGinty #9 #11

  • Added code coverage badge. Amanda Chappell #7 #12

Bug Fixes
  • None.

1.0.0 (2017-12-18)

Initial Release

This is our initial release of Hyperspace. Enjoy!