diff --git a/CHANGELOG.md b/CHANGELOG.md index 33a054d79..804669544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file. ## Master +## [3.0.0](https://github.com/ReactiveX/RxSwift/releases/tag/3.0.0) (Xcode 8 / Swift 3.0 compatible) + +* Prefixes boolean properties with `is` and makes `String?` properties consistent. + * `rx.hidden` -> `rx.isHidden` + * `rx.enabled` -> `rx.isEnabled` + ... + also ... + * since `rx.text` has now type `String?` to be consistent with UIKit, in case `String` is needed + there is `rx.text.orEmpty` that has `String` type. +* Renames `title(controlState:)` on `UIButton` to `title(for:)`. +* All data structures are now internal (`Bag`, `Queue`, `PriorityQueue` ...) +* Improves performance of `Bag`. +* Polishes RxCocoa `URLSession` extensions + * `JSON` -> `json` + * return type is `Any` instead of `AnyObject` + * replaces response tuple parameters, now it's `(HTTPResponse, Data)` + * removes name hiding for `request` parameter +* Migrates `Driver` and `NSNotification` tests to `Linux`. +* Removes RxTest from OSX + SPM integration until usable XCTest support on OSX. +* Renames `ObserverType.map` to `OberverType.mapObserver` because of possible ambigutites with subjects. +* Improves dispatch queue detection logic and replaces concept of threads in favor of dispatch queues (solves a lot + of problems on Linux environment). +* Replaces `SectionedViewDataSourceType.model(_:)` with `SectionedViewDataSourceType.model(at:)` +* Renames `OSX` to `macOS` across the project. + +#### Anomalies + +* Fixes wrong casing in `#import "include/_RXObjCRuntime.h"` (was creating issues for people with + case sensitive file system). #949 +* Fixes issues with locking strategy for subjects. #936 +* Fixes code example in comments of RxTableViewExtensions that didn't compile. #947 +* Adds `.swift-version` to help package managers to detect Swift 3 version. + ## [3.0.0-rc.1](https://github.com/ReactiveX/RxSwift/releases/tag/3.0.0-beta.1) (Xcode 8 / Swift 3.0 compatible) * Renames `RxTests` library to `RxTest` because of problems with Swift Package Manager. diff --git a/README.md b/README.md index d5f8fd626..b050e4714 100644 --- a/README.md +++ b/README.md @@ -124,48 +124,38 @@ Open Rx.xcworkspace, choose `RxExample` and hit run. This method will build ever ### [CocoaPods](https://guides.cocoapods.org/using/using-cocoapods.html) +**Tested with `pod --version`: `1.1.1`** + ``` # Podfile use_frameworks! target 'YOUR_TARGET_NAME' do - pod 'RxSwift', '3.0.0-rc.1' - pod 'RxCocoa', '3.0.0-rc.1' + pod 'RxSwift', '~> 3.0' + pod 'RxCocoa', '~> 3.0' end # RxTests and RxBlocking make the most sense in the context of unit/integration tests target 'YOUR_TESTING_TARGET' do - pod 'RxBlocking', '3.0.0-rc.1' - pod 'RxTest', '3.0.0-rc.1' + pod 'RxBlocking', '~> 3.0' + pod 'RxTest', '~> 3.0' end ``` Replace `YOUR_TARGET_NAME` and then, in the `Podfile` directory, type: -**:warning: If you want to use CocoaPods with Xcode 8.0 and Swift 3.0, you might need to add the following -lines to your podfile: :warning:** - -``` -post_install do |installer| - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['SWIFT_VERSION'] = '3.0' - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.10' - end - end -end -``` - ``` $ pod install ``` ### [Carthage](https://github.com/Carthage/Carthage) +**Tested with `carthage version`: `0.18.1`** + Add this to `Cartfile` ``` -github "ReactiveX/RxSwift" "3.0.0-rc.1" +github "ReactiveX/RxSwift" ~> 3.0 ``` ``` @@ -174,6 +164,8 @@ $ carthage update ### [Swift Package Manager](https://github.com/apple/swift-package-manager) +**Tested with `swift build --version`: `3.0.0 (swiftpm-19)`** + Create a `Package.swift` file. ``` @@ -183,7 +175,7 @@ let package = Package( name: "RxTestProject", targets: [], dependencies: [ - .Package(url: "https://github.com/ReactiveX/RxSwift.git", Version(3, 0, 0, prereleaseIdentifiers: ["rc"])) + .Package(url: "https://github.com/ReactiveX/RxSwift.git", majorVersion: 3) ] ) ``` diff --git a/RxBlocking.podspec b/RxBlocking.podspec index f01aa64a2..82c97b5ce 100644 --- a/RxBlocking.podspec +++ b/RxBlocking.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxBlocking" - s.version = "3.0.0-rc.1" + s.version = "3.0.0" s.summary = "RxSwift Blocking operatos" s.description = <<-DESC Set of blocking operators for RxSwift. These operators are mostly intended for unit/integration tests @@ -25,5 +25,5 @@ Waiting for observable sequence to complete before exiting command line applicat s.source_files = 'RxBlocking/**/*.swift', 'Platform/**/*.swift' s.exclude_files = 'RxBlocking/Platform/**/*.swift' - s.dependency 'RxSwift', '~> 3.0.0-rc.1' + s.dependency 'RxSwift', '~> 3.0' end diff --git a/RxBlocking/Info.plist b/RxBlocking/Info.plist index eb5d02b76..e0f4bf770 100644 --- a/RxBlocking/Info.plist +++ b/RxBlocking/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.0-rc.1 + 3.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/RxCocoa.podspec b/RxCocoa.podspec index 744ea042c..8c5fcfb21 100644 --- a/RxCocoa.podspec +++ b/RxCocoa.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxCocoa" - s.version = "3.0.0-rc.1" + s.version = "3.0.0" s.summary = "RxSwift Cocoa extensions" s.description = <<-DESC * UI extensions @@ -27,5 +27,5 @@ Pod::Spec.new do |s| s.watchos.source_files = 'RxCocoa/iOS/**/*.swift' s.tvos.source_files = 'RxCocoa/iOS/**/*.swift' - s.dependency 'RxSwift', '~> 3.0.0-rc.1' + s.dependency 'RxSwift', '~> 3.0' end diff --git a/RxCocoa/Info.plist b/RxCocoa/Info.plist index eb5d02b76..e0f4bf770 100644 --- a/RxCocoa/Info.plist +++ b/RxCocoa/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.0-rc.1 + 3.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/RxSwift.podspec b/RxSwift.podspec index bab8d04d3..97523eec3 100644 --- a/RxSwift.podspec +++ b/RxSwift.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxSwift" - s.version = "3.0.0-rc.1" + s.version = "3.0.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) diff --git a/RxSwift/Info.plist b/RxSwift/Info.plist index eb5d02b76..e0f4bf770 100644 --- a/RxSwift/Info.plist +++ b/RxSwift/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.0-rc.1 + 3.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/RxTest.podspec b/RxTest.podspec index 799f1ea88..795ef129d 100644 --- a/RxTest.podspec +++ b/RxTest.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RxTest" - s.version = "3.0.0-rc.1" + s.version = "3.0.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 'RxSwift', '~> 3.0.0-rc.1' + s.dependency 'RxSwift', '~> 3.0' s.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'NO' } end diff --git a/RxTest/Info.plist b/RxTest/Info.plist index eb5d02b76..e0f4bf770 100644 --- a/RxTest/Info.plist +++ b/RxTest/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.0-rc.1 + 3.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/scripts/validate-podspec.sh b/scripts/validate-podspec.sh index 234ed0599..dd5f1850a 100755 --- a/scripts/validate-podspec.sh +++ b/scripts/validate-podspec.sh @@ -38,9 +38,7 @@ done function validate() { local PODSPEC=$1 - # custom cocoapods installation is because of CocoaPods incompatiblity with Swift 3 - cd ~/.cocoapods/repos/master/; ~/Projects/CocoaPods/bin/pod lib lint ~/Projects/RxSwift/${PODSPEC} --no-clean --allow-warnings # temporary allow warning because of deprecated API in rc - #pod lib lint $PODSPEC --verbose --no-clean --allow-warnings # temporary allow warning because of deprecated API in rc + pod lib lint $PODSPEC --verbose --no-clean } for TARGET in ${TARGETS[@]}