The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## What's Changed
* Simplified internal logging methods by @jakehawken in https://github.com/jakehawken/Propagate/pull/6
* Added `flatMapError(_:)` by @jakehawken in https://github.com/jakehawken/Propagate/pull/7
**Full Changelog**: https://github.com/jakehawken/Propagate/compare/v1.4.0...v1.5.0
## What's Changed
* Minor format/consistency updates to logging. by @jakehawken in https://github.com/jakehawken/Propagate/pull/5
**Full Changelog**: https://github.com/jakehawken/Propagate/compare/v1.3.1...v1.4.0
## What's Changed
* Updated how Propagate log messages are displayed. by @jakehawken in https://github.com/jakehawken/Propagate/pull/4
**Full Changelog**: https://github.com/jakehawken/Propagate/compare/v1.3.0...v1.3.1
## What's Changed
* Updated logging to include external hook for extended logging functionality. by @jakehawken in https://github.com/jakehawken/Propagate/pull/3
**Full Changelog**: https://github.com/jakehawken/Propagate/compare/v1.2.5...v1.3.0
## What's Changed
* Fix for bug where onSuccess does not always respect the specified queue. by @jakehawken in https://github.com/jakehawken/Propagate/pull/2
**Full Changelog**: https://github.com/jakehawken/Propagate/compare/v1.2.4...v1.2.5
## What's Changed
* Immediate execution bug fix. by @jakehawken in https://github.com/jakehawken/Propagate/pull/1
**Full Changelog**: https://github.com/jakehawken/Propagate/compare/v1.2.3...v1.2.4
I believe the issues around `Future.merge(_:)` have been fixed as I realized that the root cause was that the callbacks all executed on the same thread as the resolution of the promise, resulting in a deadlock. This release also reverts the broken state of the previous release.
Another attempt at resolving threading issues regarding the completion of futures, by way of using `async` instead of `sync` on the internal queue of a Future.
(Hopefully) fixed some threading issues related to merging Futures.
### Additions:
- DEBUGGING! Users can now add the `.debug(logLevel:_:)` method during development to more easily debug issues with Publishers and Subscribers. Both arguments have default values, so if you just want to drink from the firehose of logs, you can simply call `.debug()`.
- Added combine methods for up to 6 separate items on Future and Subscriber, and added instance method versions for all 6.
- Added ability for UpdateOnlySubscriber and ValueOnlySubscriber to be inflated back to regular Subscribers
- Added combine methods to ValueOnlySubscriber.
- Added a `distinctValues()` method for ValueOnlySubscribers where `T` is Equatable.
- Added `splitErrorMap()` method to Future.
- Added `splitMapValues(_:)` and `splitMapErrors(_:)` methods to Subscriber to match the methods on Future.
- Added self reference to `valueOnly()` method to allow for easier chaining of operators without having to retain a reference to the intervening Subscriber.
### Changes:
- Updated the subscription methods on UpdateOnlySubscriber and ValueOnlySubscriber to return `self` for easier chaining.
- Updated combine methods on Subscriber to retain a reference to the source subscribers.
- Updated ValueOnlySubscriber to call `cancel()` on deinit.
- Updated name of `mapState` to `mapStates` on Subscriber to be more semantically accurate.
- Updated `subscribe(onQueue:performing:)` to call a given callback immediately with `.cancelled` if the subscriber has been cancelled.
- Updated Subscriber to immediately trigger it's own `.cancelled` event on `cancel()`.
- Updated `executeCallbacks(forState:)` to no-op if `isCancelled` is true.
- Updated `subscribe(onQueue:performing:)` to exit early and not save the callback if `isCancelled` is true.
### Fixes:
- Fixed bug on UpdateOnlySubscriber and ValueOnlySubscriber so that all of their subscription methods return `@discardableResult` self.