Authored by Bogdan Poplauschi

Updated the CHANGELOG so it's easier when 4.0 is actually released

  1 +## [4.0.0 - In progress](https://github.com/rs/SDWebImage/tree/4.x)
  2 +
  3 +#### Infrastructure:
  4 +
  5 +- support for **watchOS** and **OS X** platforms #1595
  6 +- the `SDWebImage xcodeproj` contains the following targets:
  7 + - `SDWebImage iOS static` (iOS static lib)
  8 + - `SDWebImage watchOS static` (watchOS static lib)
  9 + - `SDWebImage OSX` (OSX dynamic framework)
  10 + - `SDWebImage iOS` (iOS dynamic framework)
  11 + - `SDWebImage tvOS` (tvOS dynamic framework)
  12 + - `SDWebImage watchOS` (watchOS dynamic framework)
  13 + - the `SDWebImage Demo xcodeproj` contains the following targets:
  14 + - `SDWebImage OSX Demo`
  15 + - `SDWebImage iOS Demo`
  16 + - `SDWebImage TV Demo`
  17 + - `SDWebImage Watch Demo`
  18 +- bumped `libwep` version to `0.5.0`
  19 +
  20 +#### Backwards incompatible changes
  21 +
  22 +- removed all deprecated methods (that we carried around for backwards compatibility in previous versions) #774
  23 +- Renamed `SDWebImageManager` `downloadImageWithURL:options:progress:completed:` to `loadImageWithURL:options:progress:completed:` as it makes more sense, since we check the cache first and download only if needed a32a177
  24 +- Deleted targets: `SDWebImage+MKAnnotation`, `SDWebImage+WebP`, `SDWebImageFramework`:
  25 + - `SDWebImage `target that build as a static library (all subspecs included) -> `libSDWebImage.a`
  26 + - `SDWebImageiOS` and `SDWebImagetvOS` targets that build as dynamic frameworks
  27 +- Renamed the dynamic frameworks targets from `WebImage` to `SDWebImage`. Renamed the `WebImage.h` to `SDWebImage.h` to match the framework naming
  28 +- Renamed the schemes for consistency. Updated the Tests Podfile + project.
  29 +- For #883 Fix multiple requests for same image and then canceling one, several breaking changes were needed:
  30 + - `SDWebImageDownloader` method `- downloadImageWithURL:options:progress:completed:` now returns a `SDWebImageDownloadToken *` instead of `id <SDWebImageOperation>` (give the ability to cancel downloads using the returned token)
  31 + - `SDWebImageDownloaderOperation` initializer `- initWithRequest:options:progress:completed:cancelled` split into `- initWithRequest:options` and `addHandlersForProgress:completed:`. Note: there is no more cancel block
  32 +- Modern Objective-C syntax done in 64382b9 includes:
  33 + - initializers now return `instancetype` instead of `id`
  34 + - explicit designated initializers (i.e. for `SDImageCache`)
  35 +- For #1575 GIF support using FLAnimatedImage, several changes were needed:
  36 + - replaced type `SDWebImageQueryCompletedBlock` with `SDCacheQueryCompletedBlock` and added an `NSData *` param
  37 + - because of the change above, the `done` param of `SDImageCache` `queryDiskCacheForKey:done:` is now a `SDCacheQueryCompletedBlock` and those blocks must now include an `NSData *` param
  38 + - replaced type `SDWebImageCompletionWithFinishedBlock` with `SDInternalCompletionBlock` and added an `NSData *` param
  39 + - because of the change above, the `completed` param of `SDWebImageManager` `loadImageWithURL:options:progress:completed:` is now `SDInternalCompletionBlock` and those blocks must now include an `NSData *` param
  40 + - for consistency with the previous change, also renamed `SDWebImageCompletionBlock` to `SDExternalCompletionBlock`
  41 + - `UIImage` will no longer respond to `sd_animatedGIFNamed:` or `sd_animatedImageByScalingAndCroppingToSize:`
  42 +- Xcode 7 Objective-C updates (Lightweight Generics and Nullability) #1581
  43 + - breaks compatibility at least for Swift users of the framework
  44 +- **watchOS** and **OS X** support #1595 required
  45 + - renamed `SDWebImage` iOS static lib target to `SDWebImage iOS static` for clarity
  46 +
  47 +#### Features:
  48 +
  49 +- Switched our GIF support to a better implementation: [FLAnimatedImage by Flipboard](https://github.com/Flipboard/FLAnimatedImage) #1575
  50 + - requires iOS 8+ (it's the only way due to FLAnimatedImage requirements)
  51 + - the implementation relies on a `WebCache` category on top of `FLAnimatedImageView`
  52 + - details in the [README](README.md#animated-images-gif-support)
  53 +- Converted any remaining code to Modern Objective-C syntax - 64382b9
  54 +- Xcode 7 Objective-C updates (Lightweight Generics and Nullability) #1581
  55 +- via #1595 Clarified and simplified the usage of `TARGET_OS_*` macros. Added `SD_MAC`, `SD_UIKIT`, `SD_IOS`, `SD_TV`, `SD_WATCH`. The biggest issue here was `TARGET_OS_MAC` was 1 for all platforms and we couldn't rely on it.
  56 +- Replaces #1398 Allow to customise cache and image downloader instances used with `SDWebImageManager` - added a new initializer (`initWithCache:downloader:`) 9112170
  57 +
  58 +#### Fixes:
  59 +
  60 +- Fix multiple requests for same image and then canceling one #883 + 8a78586
  61 +- Fixed #1444 and the master build thanks to [@kenmaz](https://github.com/kenmaz/SDWebImage/commit/5034c334be50765dfe4e97c48bcb74ef64175188)
  62 +
  63 +
1 ## [3.8.1 Patch release for 3.8.0 on Jun 7th, 2016](https://github.com/rs/SDWebImage/releases/tag/3.8.1) 64 ## [3.8.1 Patch release for 3.8.0 on Jun 7th, 2016](https://github.com/rs/SDWebImage/releases/tag/3.8.1)
2 65
3 #### Fixes: 66 #### Fixes: