11 KiB
0.14.0 (23 Apr 2023)
This release is compatible with Xcode 14.2 and Swift 5.7
Additions
- Primary associated type support for
Publisher,Subscriber,ConnectablePublisher,SubjectandSchedulerprotocols (#239)
Bugfixes
- Fixed nullifying the reference to parent in
Future's conduit (#239)
0.13.0 (1 Feb 2022)
This release is compatible with Xcode 13.2.
Additions
- Windows support (thank you @MaxDesiatov!)
Publishers.Throttle(#195, thank you @stuaustin)Publishers.PrefixUntilOutput(#206)Publishers.Zip(#222, thank you @MaxDesiatov and @ArthurChi)async/awaitextensions:Future.valueandPublisher.values(#219)
Bugfixes
- Fixed reentrancy bugs in
Subscribers.SinkandSubscribers.Assign(#210) - Fixed lifecycle bugs in
Publishers.Concatenate(#210)
0.12.0 (29 Jan 2021)
This release adds a new OpenCombineShim product that will conditionally re-export either
Combine on Apple platforms, or OpenCombine on other platforms. Additionally, ObservableObject
protocol is now available and working on all platforms.
A bug with Timer(timeInterval:repeats:block:) firing immediately not accounting for the passed
timeInterval is fixed.
Merged pull requests:
- Fix
Timer(timeInterval:repeats:block:)not accountingtimeInterval(#196) via @grigorye - Add
OpenCombineShimproduct for easier importing (#197) via @MaxDesiatov - Implementation for
ObservableObjectwithMirror(#201) via @kateinoigakukun
0.11.0 (29 Oct 2020)
This release is compatible with Xcode 12.1.
Additions
Publisher.assigned(to:)method that accepts aPublished.Publisher.- New
Publisher.switchToLatest()overloads. - New
Publisher.flatMap(maxPublishers:_:)overloads. Optional.publisherproperty.- New
_Introspectionprotocol that allows to track and explore the subscription graph and data flow.
Bugfixes
- The project should now compile without warnings.
- The following entities have been updated to match the behavior of the newest Combine version:
Subscribers.AssignPublishers.BreakpointPublishers.BufferCombineIdentifierPublishers.CompactMapPublishers.ConcatenatePublishers.DebouncePublishers.DelayDispatchQueue.SchedulerTimeType.StridePublishers.DropPublishers.EncodePublishers.DecodePublishers.FilterPublishers.HandleEventsPublishers.IgnoreOutputPublishers.MeasureIntervalOperationQueueschedulerPublishedPublishers.ReceiveOnPublishers.ReplaceErrorRunLoop schedulerPublishers.SequenceSubscribers.SinkPublishers.SubscribeOnPublishers.TimeoutTimerpublisher
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1 and later.
0.10.2 (23 Oct 2020)
Bugfixes
- Fixed a crash caused by recursive acquisition of a non-recursive lock in SubbjectSubscriber (#186, thanks @stuaustin for the bug report)
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1 and later.
0.10.1 (4 Oct 2020)
Bugfixes
- Fixed build errors on Linux with Swift 5.0 and Swift 5.3 toolchains (thanks, @adamleonard and @devmaximilian)
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1 and later.
0.10.0 (28 Jun 2020)
This release is compatible with Xcode 11.5.
Additions
Timer.publish(every:tolerance:on:in:options:)(#156, thank you @MaxDesiatov)OperationQueuescheduler (#165)Publishers.Timeout(#164)Publishers.Debounce(#133)
Bugfixes
PassthroughSubject,CurrentValueSubjectandFuturehave been rewritten from scratch. They are now faster, more correct and no longer leak subscriptions (#170).
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1 and later.
0.9.0 (12 Jun 2020)
This release is compatible with Xcode 11.5.
Additions
- The
Subscribers.Demandstruct can be nicely formatted in LLDB (#146, thank you @mayoff). Publishers.SwitchToLatest(#142).- The
RunLoopscheduler inOpenCombineFoundation(#131). Publishers.CatchandPublishers.TryCatch(#140).
Bugfixes
- Worked around a bug in the Swift compiler when building the
COpenCombineHelperstarget (#145, thank you @mayoff). - Improved documentation.
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1 and later.
0.8.0 (17 Jan 2020)
This release is compatible with Xcode 11.3.1.
Additions
Publishers.ReplaceEmpty(#122, thank you @spadafiva)NotificationCenter.Publisher(#84)URLSession.DataTaskPublisher(#127)Publishers.DropUntilOutput(#136)Publishers.CollectByCount(#137)Publishers.AssertNoFailure(#138)Publishers.Buffer(#143)
Bugfixes
- Fixed integer overflows in
DispatchQueue.SchedulerTimeType.Stride(#126, #130) - Fixed the 'default will never be executed' warning on non-Darwin platforms (like Linux) (#129)
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1.
0.7.0 (10 Dec 2019)
This release is compatible with Xcode 11.2.1.
Additions
Publishers.Delay(#114)Publishers.ReceiveOn(#115)Publishers.SubscribeOn(#116)Publishers.MeasureInterval(#117)Publishers.Breakpoint(#118)Publishers.HandleEvents(#118)Publishers.Concatenate(#90)
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1.
0.6.0 (26 Nov 2019)
This release is compatible with Xcode 11.2.1.
Thread safety
Publishers.IgnoreOutputhas been audited for thread safety (#88)Publishers.DropWhileandPublishers.TryDropWhilehave been audited for thread safety (#87)
Additions
Publishers.Output(#91)Record(#100)Publishers.RemoveDuplicates,Publishers.TryRemoveDuplicates(#89)Publishers.PrefixWhile,Publishers.TryPrefixWhile(#89)Future(#107, thanks @MaxDesiatov!)
Bugfixes
- The behavior of the
Publishers.EncodeandPublishers.Decodesubscriptions is fixed (#112) - The behavior of the
Publishers.IgnoreOutputsubscription is fixed (#88) - The behavior of the
Publishers.Printsubscription is fixed (#92) - The behavior of the
Publishers.ReplaceErrorsubscription is fixed (#89) - The behavior of the
Publishers.FilterandPublishers.TryFiltersubscriptions is fixed (#89) - The behavior of the
Publishers.CompactMapandPublishers.TryCompactMapsubscriptions is fixed (#89) - The behavior of the
Publishers.Multicastsubscription is fixed (#110) Publishers.FlatMapis reimplemented from scratch. Its behavior is fixed in many ways, it now fully matches that of Combine (#89)@Publishedproperty wrapper is fixed! (#112)- The behavior of
DispatchQueue.SchedulerTimeTypeis fixed to match that of the latest SDKs (#96) - OpenCombine is now usable on 32 bit platforms. Why? Because we can.
Known issues
- The default implementation of the
objectWillChangerequirement of theObservableObjectprotocol is not available in Swift 5.1.
0.5.0 (17 Oct 2019)
This release is compatible with Xcode 11.1.
Additions
Publishers.MapKeyPath(#71)Publishers.Reduce(#76)Publishers.TryReduce(#76)Publishers.Last(#76)Publishers.LastWhere(#76)Publishers.TryLastWhere(#76)Publishers.AllSatisfy(#76)Publishers.TryAllSatisfy(#76)Publishers.Contains(#76)Publishers.ContainsWhere(#76)Publishers.TryContainsWhere(#76)Publishers.Collect(#76)Publishers.Comparison(#76)Publishers.Drop(#70, thank you @5sw!)Publishers.Scan(#83, thank you @epatey!)Publishers.TryScan(#83, thank you @epatey!)
Bugfixes
Publishers.Printdoesn't print a redundant whitespace anymore.
Known issues
@Publishedproperty wrapper doesn't work yet
0.4.0 (8 Oct 2019)
This release is compatible with Xcode 11.1.
Thread safety
SubjectSubscriber(which is used when you subscribe a subject to a publisher) has been audited for thread-safetyPublishers.Multicasthas been audited for thread safety (#63)Publishers.TryMaphas been audited for thread safetyJusthas been audited for thread safetyOptional.Publisherhas been audited for thread safetyPublishers.Sequencehas been audited for thread safetyPublishers.ReplaceErrorhas been audited for thread safetySubscribers.Assignhas been audited for thread safetySubscribers.Sinkhas been audited for thread safety
Bugfixes
- The semantics of
Publishers.Print,Publishers.TryMaphave been fixed - Fix
iterator.next()being called twice inPublishers.Sequence(#62) - The default initializer of
CombineIdentifier(the one that takes no arguments) is now much faster (#66, #69) - When
Publishers.Sequencesubscription is cancelled while it emits values, the cancellation is respected (#73, thanks @5sw!)
Additions
DispatchQueueScheduler(#46)Equatableconformances forFirst,ReplaceError- Added
eraseToAnyPublisher()method (#59, thanks @evyasafhouzz for reporting!) Publishers.MakeConnectable(#61)Publishers.Autoconnect(#60)Publishers.Share(#60)
Known issues
@Publishedproperty wrapper doesn't work yet
0.3.0 (13 Sep 2019)
Among other things this release is compatible with Xcode 11.0 GM seed.
Bugfixes
- Store newly send value in internal variable inside CurrentValueObject (#39, thanks @FranzBusch!)
Additions
Filter/TryFilter(#22, thanks @spadafiva!)First/FirstWhere/TryFirstWhere(#22, thanks again @spadafiva!)CompactMap/TryCompacrMap(#32)IgnoreOutput(#44, thanks @epatey!)ReplaceError(#50, thanks @vladiulianbogdan!)FlatMap(#45, thanks again @epatey!)
Known issues
@Publishedproperty wrapper doesn't work yet
0.2.0 (31 Jul 2019)
Updated for the newest Xcode 11.0 beta 5
0.1.0 (4 Jul 2019)
The first pre-pre-pre-alpha release is here!
Lots of stuff still unimplemented.
For now we have:
JustPublishers.DecodePublishers.DropWhilePublishers.EmptyPublishers.EncodePublishers.FailPublishers.MapPublishers.MulticastPublishers.OncePublishers.OptionalPublishers.PrintPublishers.SequenceSubscribers.AssignSubscribers.CompletionSubscribers.DemandSubscribers.SinkAnyCancellableAnyPublisherAnySubjectAnySubscriberCancellableCombineIdentifierConnectablePublisherCurrentValueSubjectCustomCombineIdentifierConvertibleImmediateSchedulerPassthroughSubjectPublisherResultSchedulerSubjectSubscriberSubscription