ReactiveSwift v3.0.0 Release Notes

Release Date: 2017-11-17 // over 6 years ago
  • ๐Ÿš€ This is the first release of ReactiveSwift 3.0. It supports Swift 3.2 and Swift 4.0, and requires either Xcode 9 or the Swift 4.0 OSS compiler toolchain.

    ๐Ÿ’ฅ Breaking Change

    ๐Ÿšฆ Signal now uses Lifetime for resource management. (#404, kudos to @andersio)

    ๐Ÿšฆ The Signal initialzer now accepts a generator closure that is passed with the input Observer and the Lifetime as its arguments. The original variant accepting a single-argument generator closure is now obselete. This is a source breaking change.

    // New: Add `Disposable`s to the `Lifetime`.let candies = Signal\<U, E\> { (observer: Signal\<U, E\>.Observer, lifetime: Lifetime) in lifetime += trickOrTreat.observe(observer) }// Obsolete: Returning a `Disposable`.let candies = Signal { (observer: Signal\<U, E\>.Observer) -\> Disposable? inreturn trickOrTreat.observe(observer) }
    

    ๐Ÿšš Unavailable symbols in ReactiveSwift 2.x have been removed. (#551, kudos to @ikesyo)

    ๐Ÿ›  Bugfix

    ๐Ÿ— Workaround an unexpected EGAGIN error being returned by pthread in 32-bit ARM debug builds. (#508)

    ๐Ÿ›  Fixed a potential integer overflow regarding the leeway computation in SignalProducer.timer. (#506, kudos to @soxjke)

    ๐Ÿ”„ Changes

    ReactiveSwift has been migrated to Swift 4.0. (#422, kudos to @andersio)

    ๐Ÿšฆ SignalProducer.startWithSignal now returns the value of the setup closure. (#533, kudos to @Burgestrand)

    ๐Ÿ‘€ Disabled code coverage data to allow app submissions with Xcode 9.0 (see Carthage/Carthage#2056, kudos to @NachoSoto)

    ๐Ÿ”จ The SignalProducer internals have undergone a significant refactoring, which bootstraps the effort to reduce the overhead of constant producers and producer compositions. (#487, kudos to @andersio)

    ๐Ÿ—„ Deprecation

    ๐Ÿšฆ 1. Signal.Observer.action has been deprecated. Use Signal.Observer.send instead. (#515)