|
1 | 1 | Change Log |
2 | 2 | ========== |
3 | 3 |
|
| 4 | +## 4.0 (WIP) |
| 5 | + |
| 6 | +**Note:** This is a new major version, bringing incompatible changes, most of them due to Swift 3 support. |
| 7 | + |
| 8 | +**Warning:** This version requires Swift 3; it will not compile with Swift 2.x. |
| 9 | + |
| 10 | +Add support for **Swift 3**: |
| 11 | + |
| 12 | +- Adapt to the new Foundation API |
| 13 | +- Follow the [Swift API Design Guidelines](https://swift.org/documentation/api-design-guidelines): |
| 14 | + - Argument labels: |
| 15 | + - Omit the first argument when the function name contains a complement (e.g. `addObject`) or when the purpose is obvious (`search`: with a query) |
| 16 | + - Label the first argument when the purpose is not obvious and not contained in the method name (e.g. `batch(operations:)`) |
| 17 | + - Label all completion handlers explicitly. This is the convention adopted by the system's libraries (e.g. `URLSession.dataTask(with:completionHandler:)`. Since the completion handler is likely to be a closure, the block can be moved out of the call site anyway, so the label is only required when passing a function/block reference. |
| 18 | + - Method names: |
| 19 | + - `browse` is now overloaded: `browse(query:)` and `browse(from:)`. |
| 20 | + - Rename enum members to lower camel case |
| 21 | +- Better Objective-C mappings |
| 22 | + - Adjust method names when necessary for a better fit with this language |
| 23 | + - Objective-C specific types are no longer visible in Swift (well, technically, they still are, but you have to look harder...) |
| 24 | + - No underscore-suffixed properties any longer |
| 25 | +- Use `Error` instead of `NSError` in completion handlers |
| 26 | + - Use dedicated error types |
| 27 | +- Use `@discardableResult` for methods returning `Operation` |
| 28 | +- Notifications are typed `Notification.Name` |
| 29 | +- Prevent subclassing by *not* adopting the `open` access modifier |
| 30 | + |
| 31 | +Other breaking changes: |
| 32 | + |
| 33 | +- (Swift only) Better typing of complex properties through enums |
| 34 | +- Rename `Index.indexName` to `Index.name`. |
| 35 | +- Refactor index search cache handling into two properties to enable/disable (`searchCacheEnabled`) it and set the expiration delay (`searchCacheExpiringTimeInterval`), and one method to clear it (`clearSearchCache()`) |
| 36 | +- Rename "slaves" to "replicas" |
| 37 | + |
| 38 | +Other improvements: |
| 39 | + |
| 40 | +- Improve cancellation of `Index.waitTask()` |
| 41 | +- Add tests for Objective-C bridging (online flavor only) |
| 42 | +- Make timeouts configurable |
| 43 | + |
| 44 | + |
4 | 45 | ## 3.7 (2016-09-07) |
5 | 46 |
|
6 | 47 | - (#118) Add support for **watchOS** |
|
0 commit comments