You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Added the `interval` operator.
* Added CHANGELOG entry.
* Added PR number to changelog entry.
* Use a very large sequence in the test.
Co-authored-by: Anders Ha <[email protected]>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+19-18Lines changed: 19 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,12 @@
1
1
# master
2
2
*Please add new entries at the top.*
3
3
4
+
1. Added the `interval` operator (#810, kudos to @mluisbrown)
4
5
# 6.5.0
5
6
6
7
1. Add `ExpressibleByNilLiteral` constraint to `OptionalProtocol` (#805, kudos to @nkristek)
7
8
8
-
1. Fixed a `SignalProducer.lift` issue which may leak intermediate signals. (#808)
9
+
1. Fixed a `SignalProducer.lift` issue which may leak intermediate signals. (#808)
9
10
10
11
1. Add variadic sugar for boolean static methods such as `Property.any(boolProperty1, boolProperty2, boolProperty3)` (#801, kudos to @fortmarek)
11
12
@@ -103,11 +104,11 @@
103
104
104
105
# 4.0.0-rc.2
105
106
106
-
1. Support Swift 4.2 (Xcode 10) (#644, kudos to @ikesyo)
107
+
1. Support Swift 4.2 (Xcode 10) (#644, kudos to @ikesyo)
107
108
108
109
# 4.0.0-rc.1
109
110
110
-
1.`Lifetime` may now be manually ended using `Lifetime.Token.dispose()`, in addition to the existing when-token-deinitializes semantic. (#641, kudos to @andersio)
111
+
1.`Lifetime` may now be manually ended using `Lifetime.Token.dispose()`, in addition to the existing when-token-deinitializes semantic. (#641, kudos to @andersio)
111
112
1. For Swift 4.1 and above, `BindingSource` conformances are required to have `Error` parameterized as exactly `NoError`. As a result, `Signal` and `SignalProducer` are now conditionally `BindingSource`. (#590, kudos to @NachoSoto and @andersio)
112
113
1. For Swift 4.1 and above, `Signal.Event` and `ActionError` are now conditionally `Equatable`. (#590, kudos to @NachoSoto and @andersio)
113
114
1. New method `collect(every:on:skipEmpty:discardWhenCompleted:)` which delivers all values that occurred during a time interval (#619, kudos to @Qata)
@@ -159,13 +160,13 @@
159
160
1.`Signal` now uses `Lifetime` for resource management. (#404, kudos to @andersio)
160
161
161
162
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.
162
-
163
+
163
164
```swift
164
165
// New: Add `Disposable`s to the `Lifetime`.
165
166
let candies = Signal<U, E> { (observer: Signal<U, E>.Observer, lifetime: Lifetime) in
166
167
lifetime += trickOrTreat.observe(observer)
167
168
}
168
-
169
+
169
170
// Obsolete: Returning a `Disposable`.
170
171
let candies =Signal { (observer: Signal<U, E>.Observer) -> Disposable?in
171
172
return trickOrTreat.observe(observer)
@@ -226,7 +227,7 @@
226
227
1. The performance of `SignalProducer` has been improved significantly. (#140, kudos to @andersio)
227
228
228
229
All lifted `SignalProducer` operators no longer yield an extra `Signal`. As a result, the calling overhead of event delivery is generally reduced proportionally to the level of chaining of lifted operators.
229
-
230
+
230
231
1.`interrupted` now respects `observe(on:)`. (#140)
231
232
232
233
When a produced `Signal` is interrupted, if `observe(on:)` is the last applied operator, `interrupted` would now be delivered on the `Scheduler` passed to `observe(on:)` just like other events.
@@ -266,12 +267,12 @@ let producer = SignalProducer<Int, NoError> { observer, lifetime in
266
267
267
268
Two `Disposable`-accepting methods `Lifetime.Type.+=` and `Lifetime.add` are provided to aid migration, and are subject to removal in a future release.
268
269
269
-
### Signal and SignalProducer
270
+
### Signal and SignalProducer
270
271
1. All `Signal` and `SignalProducer` operators now belongs to the respective concrete types. (#304)
271
272
272
273
Custom operators should extend the concrete types directly. `SignalProtocol` and `SignalProducerProtocol` should be used only for constraining associated types.
273
274
274
-
1.`combineLatest` and `zip` are optimised to have a constant overhead regardless of arity, mitigating the possibility of stack overflow. (#345)
275
+
1.`combineLatest` and `zip` are optimised to have a constant overhead regardless of arity, mitigating the possibility of stack overflow. (#345)
275
276
276
277
1.`flatMap(_:transform:)` is renamed to `flatMap(_:_:)`. (#339)
277
278
@@ -328,7 +329,7 @@ Two `Disposable`-accepting methods `Lifetime.Type.+=` and `Lifetime.add` are pro
328
329
`concurrent` starts and flattens inner signals according to the specified concurrency limit. If an inner signal is received after the limit is reached, it would be queued and drained later as the in-flight inner signals terminate.
329
330
330
331
1. New operators: `reduce(into:)` and `scan(into:)`. (#365, kudos to @ikesyo)
331
-
332
+
332
333
These variants pass to the closure an `inout` reference to the accumulator, which helps the performance when a large value type is used, e.g. collection.
333
334
334
335
1.`Property(initial:then:)` gains overloads that accept a producer or signal of the wrapped value type when the value type is an `Optional`. (#396)
@@ -348,7 +349,7 @@ Thank you to all of @ReactiveCocoa/reactiveswift and all our contributors, but e
348
349
## Deprecation
349
350
1.`observe(_:during:)` is now deprecated. It would be removed in ReactiveSwift 2.0.
350
351
Use `take(during:)` and the relevant observation API of `Signal`, `SignalProducer` and `Property` instead. (#374)
351
-
352
+
352
353
# 1.1.2
353
354
## Changes
354
355
1. Fixed a rare occurrence of `interrupted` events being emitted by a `Property`. (#362)
@@ -402,27 +403,27 @@ This is the first major release of ReactiveSwift, a multi-platform, pure-Swift f
402
403
403
404
Major changes since ReactiveCocoa 4 include:
404
405
-**Updated for Swift 3**
405
-
406
+
406
407
APIs have been updated and renamed to adhere to the Swift 3 [API Design Guidelines](https://swift.org/documentation/api-design-guidelines/).
407
408
-**Signal Lifetime Semantics**
408
-
409
+
409
410
`Signal`s now live and continue to emit events only while either (a) they have observers or (b) they are retained. This clears up a number of unexpected cases and makes Signals much less dangerous.
410
411
-**Reactive Proxies**
411
-
412
+
412
413
Types can now declare conformance to `ReactiveExtensionsProvider` to expose a `reactive` property that’s generic over `self`. This property hosts reactive extensions to the type, such as the ones provided on `NotificationCenter` and `URLSession`.
413
414
-**Property Composition**
414
-
415
+
415
416
`Property`s can now be composed. They expose many of the familiar operators from `Signal` and `SignalProducer`, including `map`, `flatMap`, `combineLatest`, etc.
416
417
-**Binding Primitives**
417
-
418
+
418
419
`BindingTargetProtocol` and `BindingSourceProtocol` have been introduced to allow binding of observable instances to targets. `BindingTarget` is a new concrete type that can be used to wrap a settable but non-observable property.
419
420
-**Lifetime**
420
-
421
+
421
422
`Lifetime` is introduced to represent the lifetime of any arbitrary reference type. This can be used with the new `take(during:)` operator, but also forms part of the new binding APIs.
422
423
-**Race-free Action**
423
-
424
+
424
425
A new `Action` initializer `Action(state:enabledIf:_:)` has been introduced. It allows the latest value of any arbitrary property to be supplied to the execution closure in addition to the input from `apply(_:)`, while having the availability being derived from the property.
425
-
426
+
426
427
This eliminates a data race in ReactiveCocoa 4.x, when both the `enabledIf` predicate and the execution closure depend on an overlapping set of properties.
427
428
428
429
Extensive use of Swift’s `@available` declaration has been used to ease migration from ReactiveCocoa 4. Xcode should have fix-its for almost all changes from older APIs.
0 commit comments