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[@]}