diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e61a506d..ddd43bc4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,22 @@ All notable changes to this project will be documented in this file. --- ## Master -## [4.X.X](https://github.com/ReactiveX/RxSwift/releases/tag/4.X.X) +## [4.4.0](https://github.com/ReactiveX/RxSwift/releases/tag/4.4.0) +**This relase introduces new framework `RxAtomic` that enables using C11 atomic primities in RxSwift as a replacement for deprecated `OSAtomic*` functions.** +**Carthage users will probably need to include this framework manually.** + +* Updates deprecated `OSAtomic*` primitives to use C11 atomic primitives. * Adds `Event`, `SingleEvent`, `MaybeEvent` and `Recorded` conditional conformance to `Equatable` where their `Element` is equatable on `RXTest` for clients that are using Swift >= 4.1. -* Replaces `*.count > 0` with `!*.isEmpty`. in `AsyncLock, ObserveOn, Zip+Collection, Zip+arity`. * Adds `string` to `NSTextView`. +* Consolidates per platform frameworks to multi-platform frameworks. +* Xcode 10.1 compatible. + +#### Anomalies + +* Fixes problem with canceling events scheduled on serial scheduler through `observeOn` operator. #1778 +* Fixes problem with `UISearchBar.text` property not triggering update when cancel button is tapped. #1714 +* Updates watchos minimum target to 3.0. #1752 ## [4.3.1](https://github.com/ReactiveX/RxSwift/releases/tag/4.3.1) diff --git a/Rx.xcworkspace/contents.xcworkspacedata b/Rx.xcworkspace/contents.xcworkspacedata index 53309511d..e44d60851 100644 --- a/Rx.xcworkspace/contents.xcworkspacedata +++ b/Rx.xcworkspace/contents.xcworkspacedata @@ -16,6 +16,9 @@ + + diff --git a/RxAtomic.podspec b/RxAtomic.podspec index 3734db0f0..27bba10e4 100644 --- a/RxAtomic.podspec +++ b/RxAtomic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxAtomic" - s.version = "0.1" + s.version = "4.4.0" s.summary = "Atomic primitives for RxSwift" s.description = <<-DESC Atomic primitives for RxSwift. @@ -8,13 +8,13 @@ Atomic primitives for RxSwift. s.homepage = "https://github.com/ReactiveX/RxSwift" s.license = 'MIT' s.author = { "Krunoslav Zaher" => "krunoslav.zaher@gmail.com" } - s.source = { :git => "https://github.com/ReactiveX/RxSwift.git", :tag => 'atomic' } + s.source = { :git => "https://github.com/ReactiveX/RxSwift.git", :tag => s.version.to_s } s.requires_arc = true s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' - s.watchos.deployment_target = '2.0' + s.watchos.deployment_target = '3.0' s.tvos.deployment_target = '9.0' s.source_files = 'RxAtomic/**/*.{c,h}' diff --git a/RxAtomic/Info.plist b/RxAtomic/Info.plist index e1fe4cfb7..d0f877e3f 100644 --- a/RxAtomic/Info.plist +++ b/RxAtomic/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0 + 4.4.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/RxBlocking.podspec b/RxBlocking.podspec index 95a46809d..d8ad10855 100644 --- a/RxBlocking.podspec +++ b/RxBlocking.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxBlocking" - s.version = "4.3.1" + s.version = "4.4.0" s.summary = "RxSwift Blocking operatos" s.description = <<-DESC Set of blocking operators for RxSwift. These operators are mostly intended for unit/integration tests @@ -19,12 +19,12 @@ Waiting for observable sequence to complete before exiting command line applicat s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' - s.watchos.deployment_target = '2.0' + s.watchos.deployment_target = '3.0' s.tvos.deployment_target = '9.0' s.source_files = 'RxBlocking/**/*.swift', 'Platform/**/*.swift' s.exclude_files = 'RxBlocking/Platform/**/*.swift' - s.dependency 'RxAtomic', '~> 0.1' + s.dependency 'RxAtomic', '~> 4.4' s.dependency 'RxSwift', '~> 4.0' end diff --git a/RxBlocking/Info.plist b/RxBlocking/Info.plist index 80a5ba58d..45e086cd9 100644 --- a/RxBlocking/Info.plist +++ b/RxBlocking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.1 + 4.4.0 CFBundleSignature ???? CFBundleVersion diff --git a/RxCocoa.podspec b/RxCocoa.podspec index 15ba37c56..1133fcee6 100644 --- a/RxCocoa.podspec +++ b/RxCocoa.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxCocoa" - s.version = "4.3.1" + s.version = "4.4.0" s.summary = "RxSwift Cocoa extensions" s.description = <<-DESC * UI extensions @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' - s.watchos.deployment_target = '2.0' + s.watchos.deployment_target = '3.0' s.tvos.deployment_target = '9.0' s.source_files = 'RxCocoa/**/*.{swift,h,m}', 'Platform/**/*.swift' diff --git a/RxCocoa/Info.plist b/RxCocoa/Info.plist index 80a5ba58d..45e086cd9 100644 --- a/RxCocoa/Info.plist +++ b/RxCocoa/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.1 + 4.4.0 CFBundleSignature ???? CFBundleVersion diff --git a/RxSwift.podspec b/RxSwift.podspec index 6d3afcf01..d1d0fcce8 100644 --- a/RxSwift.podspec +++ b/RxSwift.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxSwift" - s.version = "4.3.1" + s.version = "4.4.0" 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) @@ -29,11 +29,11 @@ gitDiff().grep("bug").less // sequences of swift objects s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' - s.watchos.deployment_target = '2.0' + s.watchos.deployment_target = '3.0' s.tvos.deployment_target = '9.0' s.source_files = 'RxSwift/**/*.swift', 'Platform/**/*.swift' s.exclude_files = 'RxSwift/Platform/**/*.swift' - s.dependency 'RxAtomic', '~> 0.0' + s.dependency 'RxAtomic', '~> 4.4' end diff --git a/RxSwift/Info.plist b/RxSwift/Info.plist index 80a5ba58d..45e086cd9 100644 --- a/RxSwift/Info.plist +++ b/RxSwift/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.1 + 4.4.0 CFBundleSignature ???? CFBundleVersion diff --git a/RxTest.podspec b/RxTest.podspec index d9dfa2f1f..00cd996fc 100644 --- a/RxTest.podspec +++ b/RxTest.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxTest" - s.version = "4.3.1" + s.version = "4.4.0" s.summary = "RxSwift Testing extensions" s.description = <<-DESC Unit testing extensions for RxSwift. This library contains mock schedulers, observables, and observers @@ -56,7 +56,7 @@ func testMap() { s.framework = 'XCTest' - s.dependency 'RxAtomic', '~> 0.0' + s.dependency 'RxAtomic', '~> 4.4' s.dependency 'RxSwift', '~> 4.0' s.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'NO' } diff --git a/RxTest/Info.plist b/RxTest/Info.plist index 80a5ba58d..45e086cd9 100644 --- a/RxTest/Info.plist +++ b/RxTest/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.3.1 + 4.4.0 CFBundleSignature ???? CFBundleVersion diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index 537381ff1..d801aed3b 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -72,19 +72,12 @@ fi if [ "${RELEASE_TEST}" -eq 1 ]; then VALIDATE_PODS=${VALIDATE_PODS:-1} - RUN_AUTOMATION_TESTS=${RUN_AUTOMATION_TESTS:-1} else VALIDATE_PODS=${VALIDATE_PODS:-0} - RUN_AUTOMATION_TESTS=${RUN_AUTOMATION_TESTS:-0} fi RUN_DEVICE_TESTS=${RUN_DEVICE_TESTS:-1} -if [ "$2" == "s" ]; then - printf "${RED}Skipping automation tests ...${RESET}\n" - RUN_AUTOMATION_TESTS=0 -fi - function ensureVersionEqual() { if [[ "$1" != "$2" ]]; then echo "Version $1 and $2 are not equal ($3)" @@ -146,32 +139,13 @@ fi if [ "${VALIDATE_IOS_EXAMPLE}" -eq 1 ]; then if [[ "${UNIX_NAME}" == "${DARWIN}" ]]; then - if [[ "${RUN_AUTOMATION_TESTS}" -eq 1 ]]; then - if [[ "${RUN_DEVICE_TESTS}" -eq 1 ]]; then - for configuration in ${CONFIGURATIONS[@]} - do - rx "RxExample-iOSUITests" ${configuration} "Krunoslav Zaher’s iPhone" test - done - fi - - for configuration in ${CONFIGURATIONS[@]} - do - rx "RxExample-iOSUITests" ${configuration} "${DEFAULT_IOS_SIMULATOR}" test - done - - for configuration in ${CONFIGURATIONS[@]} - do - rx "RxExample-iOSTests" ${configuration} "${DEFAULT_IOS_SIMULATOR}" test - done - else - for scheme in "RxExample-iOS" + for scheme in "RxExample-iOS" + do + for configuration in "Debug" do - for configuration in "Debug" - do - rx ${scheme} ${configuration} "${DEFAULT_IOS_SIMULATOR}" build - done + rx ${scheme} ${configuration} "${DEFAULT_IOS_SIMULATOR}" build done - fi + done elif [[ "${UNIX_NAME}" == "${LINUX}" ]]; then unsupported_target else diff --git a/scripts/validate-podspec.sh b/scripts/validate-podspec.sh index bf322745d..58e3ad989 100755 --- a/scripts/validate-podspec.sh +++ b/scripts/validate-podspec.sh @@ -16,8 +16,8 @@ function cleanup { trap cleanup EXIT VERSION=`cat RxSwift.podspec | grep -E "s.version\s+=" | cut -d '"' -f 2` -TARGETS=(RxTest RxCocoa RxBlocking RxSwift) -ROOTS=(2/e/c 3/c/1 8/5/5 a/b/1) +TARGETS=(RxTest RxCocoa RxBlocking RxAtomic RxSwift) +ROOTS=(2/e/c 3/c/1 8/5/5 f/7/9 a/b/1) pushd ~/.cocoapods/repos/master/Specs for TARGET in ${TARGETS[@]} @@ -34,7 +34,7 @@ do mkdir -p ~/.cocoapods/repos/master/Specs/${ROOT}/${TARGET}/${VERSION} rm ~/.cocoapods/repos/master/Specs/${ROOT}/${TARGET}/${VERSION}/* || echo cat $TARGET.podspec | - sed -E "s/s.source[^\}]+\}/s.source = { :git => '${ESCAPED_SOURCE}', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/${ROOT}/${TARGET}/${VERSION}/${TARGET}.podspec + sed -E "s/s.source [^\}]+\}/s.source = { :git => '${ESCAPED_SOURCE}', :branch => \'${BRANCH}\' }/" > ~/.cocoapods/repos/master/Specs/${ROOT}/${TARGET}/${VERSION}/${TARGET}.podspec done done