-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Description
I want everyone to know where we're heading and what's left before we hit 1.0.
From the beginning we have allowed ourselves to do breaking changes on each 0.x release as we were aware that the design was not finished when we started this project. We are getting close to being done. Our goal is to release 1.0 in the coming months after stabilizing the API so that it can be relied upon without breaking every couple months.
Project Structure
When we hit 1.0 we intend on splitting out the language adaptors into their own top-level projects such as RxScala, RxClojure, RxGroovy, RxKotlin, RxJRuby etc.
This will allow each project to iterate as needed at their own pace, especially since some will need to continue iterating while the RxJava core stabilizes. For example, if RxScala needs breaking changes it can bump it's major version while RxJava does not. This is particularly important to RxScala for handling changes such as Scala 2.10 -> 2.11 -> 2.12 etc.
Major contrib modules will also be moved out, such as RxAndroid which also needs its own life-cycle.
Outstanding Work
The major items of work to be finished before 1.0 are:
Backpressure: Backpressure #1000[Completed]Serialization Behavior: Serialization Behavior #998[Completed in newmergeimplementation]Scheduler API: Proposed Scheduler Interface Change for 0.18 (yes, again) #997CompletedRemove all deprecated methods/classes[Completed] #1053 #1621Finish migrating all operators to using[Completed]liftand chaining theSubscriptionviaSubscriber(current priority)
The primary goal is to nail down the public API. New functionality can come in 1.1, 1.2, etc. The secondary goal is for all operators to work as advertised (regarding unsubscribe, back pressure and non-blocking). There will always be bugs, that's why 1.x.y will still be active after release, but the desire is to not need to ship 2.x soon after 1.x as this is a low level library that once entrenched becomes hard to migrate (we create significant pain at Netflix on each 0.x release).
Going Forward
Please comment if you feel there are other critical things to achieve before 1.0. The fastest way to getting us to 1.0 is helping us achieve the work stated above.