diff --git a/CHANGELOG.md b/CHANGELOG.md index 048c96cbf..e5e311da3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,21 @@ All notable changes to this project will be documented in this file. --- ## Master +## [4.4.1](https://github.com/ReactiveX/RxSwift/releases/tag/4.4.1) + * Adds `takeUntil(_ behavior:predicate:)`. +#### Anomalies + +* Fixes problems with RxAtomic and TSan. #1853 +* Fixes problem with passing 0 count to `Observable.range`. #1870 +* Fixes Swift 5.0 warnings. #1859 +* Fixes problem with RxCocoa and `DISABLE_SWIZZLING` flag. #1805 +* Internal cleanups: + * Unused code deletions. + * Adds SwiftLint. + * Removes legacy Swift 3.0 conditional compilation flags. + ## [4.4.0](https://github.com/ReactiveX/RxSwift/releases/tag/4.4.0) **This release introduces a new framework `RxAtomic` that enables using C11 atomic primitives in RxSwift as a replacement for deprecated `OSAtomic*` functions.** diff --git a/Package.swift b/Package.swift index 962b4a414..4ab73e2ec 100644 --- a/Package.swift +++ b/Package.swift @@ -4,63 +4,65 @@ import PackageDescription let buildTests = true -func filterNil(_ array: [T?]) -> [T] { - return array.flatMap { $0 } -} - extension Product { - static func allTests() -> Product? { + static func allTests() -> [Product] { if buildTests { - return .executable(name: "AllTestz", targets: ["AllTestz"]) + return [.executable(name: "AllTestz", targets: ["AllTestz"])] } else { - return nil + return [] } } } extension Target { - static func rxCocoa() -> Target? { + static func rxCocoa() -> [Target] { #if os(Linux) - return .target(name: "RxCocoa", dependencies: ["RxSwift"]) + return [.target(name: "RxCocoa", dependencies: ["RxSwift"])] #else - return .target(name: "RxCocoa", dependencies: ["RxSwift", "RxCocoaRuntime"]) + return [.target(name: "RxCocoa", dependencies: ["RxSwift", "RxCocoaRuntime"])] #endif } - static func rxCocoaRuntime() -> Target? { + static func rxCocoaRuntime() -> [Target] { #if os(Linux) - return nil + return [] #else - return .target(name: "RxCocoaRuntime", dependencies: ["RxSwift"]) + return [.target(name: "RxCocoaRuntime", dependencies: ["RxSwift"])] #endif } - static func allTests() -> Target? { + static func allTests() -> [Target] { if buildTests { - return .target(name: "AllTestz", dependencies: ["RxSwift", "RxCocoa", "RxBlocking", "RxTest"]) + return [.target(name: "AllTestz", dependencies: ["RxSwift", "RxCocoa", "RxBlocking", "RxTest"])] } else { - return nil + return [] } } } let package = Package( name: "RxSwift", - products: filterNil([ - .library(name: "RxAtomic", targets: ["RxAtomic"]), - .library(name: "RxSwift", targets: ["RxSwift"]), - .library(name: "RxCocoa", targets: ["RxCocoa"]), - .library(name: "RxBlocking", targets: ["RxBlocking"]), - .library(name: "RxTest", targets: ["RxTest"]), - .allTests(), - ]), - targets: filterNil([ - .target(name: "RxAtomic", dependencies: []), - .target(name: "RxSwift", dependencies: ["RxAtomic"]), - .rxCocoa(), - .rxCocoaRuntime(), - .target(name: "RxBlocking", dependencies: ["RxSwift", "RxAtomic"]), - .target(name: "RxTest", dependencies: ["RxSwift"]), - .allTests(), - ]) + products: ([ + [ + .library(name: "RxAtomic", targets: ["RxAtomic"]), + .library(name: "RxSwift", targets: ["RxSwift"]), + .library(name: "RxCocoa", targets: ["RxCocoa"]), + .library(name: "RxBlocking", targets: ["RxBlocking"]), + .library(name: "RxTest", targets: ["RxTest"]), + ], + Product.allTests() + ] as [[Product]]).flatMap { $0 }, + targets: ([ + [ + .target(name: "RxAtomic", dependencies: []), + .target(name: "RxSwift", dependencies: ["RxAtomic"]), + ], + Target.rxCocoa(), + Target.rxCocoaRuntime(), + [ + .target(name: "RxBlocking", dependencies: ["RxSwift", "RxAtomic"]), + .target(name: "RxTest", dependencies: ["RxSwift"]), + ], + Target.allTests() + ] as [[Target]]).flatMap { $0 } ) diff --git a/RxAtomic.podspec b/RxAtomic.podspec index 31fc0c1fd..253c1e210 100644 --- a/RxAtomic.podspec +++ b/RxAtomic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxAtomic" - s.version = "4.4.0" + s.version = "4.4.1" s.summary = "Atomic primitives for RxSwift" s.description = <<-DESC Atomic primitives for RxSwift. diff --git a/RxAtomic/Info.plist b/RxAtomic/Info.plist index d0f877e3f..ba9fdc672 100644 --- a/RxAtomic/Info.plist +++ b/RxAtomic/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.4.0 + 4.4.1 CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/RxBlocking.podspec b/RxBlocking.podspec index d8ad10855..ac4221cac 100644 --- a/RxBlocking.podspec +++ b/RxBlocking.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxBlocking" - s.version = "4.4.0" + s.version = "4.4.1" s.summary = "RxSwift Blocking operatos" s.description = <<-DESC Set of blocking operators for RxSwift. These operators are mostly intended for unit/integration tests diff --git a/RxBlocking/Info.plist b/RxBlocking/Info.plist index 45e086cd9..098bfd229 100644 --- a/RxBlocking/Info.plist +++ b/RxBlocking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.4.0 + 4.4.1 CFBundleSignature ???? CFBundleVersion diff --git a/RxCocoa.podspec b/RxCocoa.podspec index 1133fcee6..240645b7a 100644 --- a/RxCocoa.podspec +++ b/RxCocoa.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxCocoa" - s.version = "4.4.0" + s.version = "4.4.1" s.summary = "RxSwift Cocoa extensions" s.description = <<-DESC * UI extensions diff --git a/RxCocoa/Info.plist b/RxCocoa/Info.plist index 45e086cd9..098bfd229 100644 --- a/RxCocoa/Info.plist +++ b/RxCocoa/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.4.0 + 4.4.1 CFBundleSignature ???? CFBundleVersion diff --git a/RxSwift.podspec b/RxSwift.podspec index d1d0fcce8..262287182 100644 --- a/RxSwift.podspec +++ b/RxSwift.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxSwift" - s.version = "4.4.0" + s.version = "4.4.1" s.summary = "RxSwift is a Swift implementation of Reactive Extensions" s.description = <<-DESC This is a Swift port of [ReactiveX.io](https://github.com/ReactiveX) diff --git a/RxSwift/Info.plist b/RxSwift/Info.plist index 45e086cd9..098bfd229 100644 --- a/RxSwift/Info.plist +++ b/RxSwift/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.4.0 + 4.4.1 CFBundleSignature ???? CFBundleVersion diff --git a/RxTest.podspec b/RxTest.podspec index 00cd996fc..0e26121dc 100644 --- a/RxTest.podspec +++ b/RxTest.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxTest" - s.version = "4.4.0" + s.version = "4.4.1" s.summary = "RxSwift Testing extensions" s.description = <<-DESC Unit testing extensions for RxSwift. This library contains mock schedulers, observables, and observers diff --git a/RxTest/Info.plist b/RxTest/Info.plist index 45e086cd9..098bfd229 100644 --- a/RxTest/Info.plist +++ b/RxTest/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.4.0 + 4.4.1 CFBundleSignature ???? CFBundleVersion