Releases: ReactiveCocoa/ReactiveSwift
7.2.0
- Change
QueueScheduler
to use unspecified QoS when QoS parameter is defaulted (#880, kudos to @jamieQ) - Add support for visionOS (#875, kudos to @NachoSoto)
- Fix CI release git tag push trigger (#869, kudos to @p4checo)
- Find and remove items from Bag using a binary search to improve performance when the collection gets large (#878, kudos to @nickoto)
- Add extension to
ScopedDisposable
for innerSerialDisposable
(#873, kudos to @sirnacnud) - Updated project settings for Xcode 16, bumped min deployment targets to iOS 12, macOS 10.13, tvOS 12, watchOS 4, visionOS 1.0 (#883, kudos to @mluisbrown)
7.1.1
This the second minor release of ReactiveSwift 7.
The minimum deployment targets for Apple OSes have been increased to iOS 11, macOS 10.13, tvOS 11 and watchOS 4. If you need to support older OS versions, please continue to use 7.0.0 or 7.1.0.
7.1.0
This the first minor release of ReactiveSwift 7.
The minimum deployment targets for Apple OSes have been increased to iOS 10, macOS 10.12, tvOS 10 and watchOS 3. If you need to support older OS versions, please continue to use 7.0.0.
Changes
- Add CI Release jobs on tag push (#862, kudos to @p4checo)
- Fix some issues related to locking, bumped min OS versions to iOS 10, macOS 10.12, tvOS 10, watchOS 3 (#859, kudos to @mluisbrown)
- Add
async
helpers to Schedulers (#857, kudos to @p4checo) - Add primary associated types to SignalProducerConvertible & SignalProducerProtocol (#855, kudos to @braker1nine)
- Refactor Github Actions to cover more swift versions (#858, kudos to @braker1nine)
- Use
OSAllocatedUnfairLock
instead ofos_unfair_lock
on supported Apple platforms (#856, kudos to @mluisbrown)
7.0
This is the first release of ReactiveSwift 7.0. It has a couple of minor breaking changes in both ABI and source over ReactiveSwift 6.0.
Changes
-
The UnidirectionalBinding operator
<~
returns non optional values. (#834, kudos to @NicholasTD07) -
Fixed issue where
SingalProducer.try(upTo:interval:count:)
shares state between invocation ofstart
on the same producer. (#829, kudos to @sebastiangrail) -
Signal.Event
is now marked as frozen enum. (#841, kudos to @NachoSoto)
6.7.0
This is the seventh minor release of ReactiveSwift 6.
Additions
-
Signal
offers two special variants for advanced users: unserialized and reentrant-unserialized. (#797)The input observer of these variants assume that mutual exclusion has been enforced by its callers.
You can create these variants through four
Signal
static methods:unserialized(_:)
,unserializedPipe(_:)
,reentrantUnserialized(_:)
andreentrantUnserializedPipe(_:)
. These would be adopted by ReactiveCocoa UIKit bindings to improve interoperability with Loop, to tackle some legitimate recursive delivery scenarios (e.g. around first responder management), and also to reduce fine-grained locking in ReactiveCocoa.Note that the default behavior of
Signal
has not been changed — event serialization remains the default behavior. -
SignalProducer
offers an unserialized variant viaSignalProducer.unserialized(_:)
. (#797) -
TestScheduler
can now advanced its clock byTimeInterval
. (#828, kudos to @carsten-wenderdel)
Changes
-
Signal
and Properties now use fewer locks, which should translate into minor performance improvements. (#797) -
Fixed spelling error in
Lifetime.Token
class documentation. (#835, kudos to @ansonj) -
As a continued refactoring effort since ReactiveSwift 6.6.0, all unary
Signal
andSignalProducer
operators have been migrated to a new internal representation.When debugging your application, the call stacks involving ReactiveSwift may now look cleaner, without the clutter of compiler-generated reabstraction thunks. See #799 for an example.
6.7.0 Release Candidate 1
Release Candidate 1 of ReactiveSwift 6.7.0 has been promoted to be the stable release.
Check the 6.7.0 release note for more details.
6.6.1
6.6.0
This is the sixth minor release of ReactiveSwift 6.0.
Addition
- Added the
SignalProducer.Type.interval()
operator for emitting values on a regular schedule. (#810, kudos to @mluisbrown)
Changes
-
When debugging your application, the call stacks involving ReactiveSwift may start to look cleaner and less cryptic. This is an on-going refactoring effort to improve the developer experience. See #799 for an example.
-
Bumped deployment target to iOS 9.0, per Xcode 12 warnings. (#818, kudos to @harleyjcooper)
-
Fixed a few deprecation warning when the project is being built. (#819, kudos to @apps4everyone)
6.5.0
This is the fifth minor release of ReactiveSwift 6.0.
Signal
operators to work with SignalProducer
.
Changes
-
Fixed a
SignalProducer.lift
issue which may leak intermediate signals. (#808) -
Add ExpressibleByNilLiteral constraint to OptionalProtocol (#805, kudos to @nkristek)
-
Add variadic sugar for boolean static methods such as
Property.any(boolProperty1, boolProperty2, boolProperty3)
(#801, kudos to @fortmarek)
6.4.0
This is the forth minor release of ReactiveSwift 6.
Changes
-
Minimum deployment target is now iOS 9.0+ when using Swift Package Manager, so as to silence Xcode 12 warnings. (#802)
-
Fix a debug assertion in
Lock.try()
that could be raised in earlier OS versions (< iOS 10.0, < macOS 10.12). (#747, #788)Specifically, ReactiveSwift now recognizes
EDEADLK
as expected error code frompthread_mutex_trylock
alongside0
,EBUSY
andEAGAIN
.