Releases: ReactiveX/RxJava
2.2.9
2.2.8
Bugfixes
- Pull 6442: Add missing undeliverable error handling logic for
Completable.fromRunnable
&fromAction
operators.
Documentation changes
- Pull 6432: Improve the docs of
CompositeDisposable
. - Pull 6434: Improve subjects and processors package doc.
- Pull 6436: Improve
Creating-Observables
wiki doc.
Other
- Pull 6433: Make error messages of parameter checks consistent.
2.2.7
2.2.6
API enhancements
- Pull 6370: Add interruptible mode via the new
Schedulers.from(Executor, boolean)
overload.
Bugfixes
- Pull 6359: Fix the error/race in
Observable.repeatWhen
due to flooding repeat signal. - Pull 6362 : Fix
Completable.andThen(Completable)
not running onobserveOn
'sScheduler
. - Pull 6364: Fix
Flowable.publish
not requesting upon client change. - Pull 6371: Fix bounded
replay()
memory leak due to bad node retention. - Pull 6375: Don't dispose the winner of
{Single|Maybe|Completable}.amb()
. - Pull 6380: Fix
CompositeException.getRootCause()
detecting loops in the cause graph.
Documentation changes
- Pull 6365: Indicate source disposal in
timeout(fallback)
.
Other changes
- Pull 6353: Use
ignoreElement
to convertSingle
toCompletable
in theREADME.md
.
2.2.5
Documentation changes
- Pull 6344: Use correct return type in JavaDocs documentation in
elementAtOrDefault
. - Pull 6346: Fix JavaDoc examples using markdown instead of
@code
.
Wiki changes
- Pull 6324: Java 8 version for Problem-Solving-Examples-in-RxJava.
- Pull 6343: Update Filtering Observables docs.
- Pull 6351: Updated java example in How-To-Use-RxJava.md file with java 8 version.
Other changes
2.2.4
API changes
- Pull 6278: Add
Maybe
/Single
/Completable
materialize
operator, - Pull 6278: Add
Single.dematerialize(selector)
operator. - Pull 6281: Add
Flowable
/Observable
dematerialize(selector)
operator.
Bugfixes
- Pull 6258: Fix cancel/dispose upon upstream switch for some operators.
- Pull 6269: Call the
doOn{Dispose|Cancel}
handler at most once. - Pull 6283: Fix
Observable.flatMap
to sustain concurrency level. - Pull 6297: Fix refCount eager disconnect not resetting the connection.
Documentation changes
- Pull 6280: Improve the package docs of
io.reactivex.schedulers
. - Pull 6301: Add missing
onSubscribe
null-checks to NPE docs onFlowable
/Observable
subscribe
. - Pull 6303: Fix incorrect image placement in
Flowable.zip
docs. - Pull 6305: Explain the non-concurrency requirement of the
Emitter
interface methods. - Pull 6308: Explain the need to consume both the group sequence and each group specifically with
Flowable.groupBy
. - Pull 6311: Explain that
distinctUntilChanged
requires non-mutating data to work as expected.
Wiki changes
- Pull 6260: Add
generate
examples toCreating-Observables.md
. - Pull 6267: Fix
Creating-Observables.md
docs stlye mistake. - Pull 6273: Fix broken markdown of
How-to-Contribute.md
. - Pull 6266: Update Error Handling Operators docs.
- Pull 6291: Update Transforming Observables docs.
Other changes
- Pull 6262: Use JUnit's assert format for assert messages for better IDE interoperation.
- Pull 6263: Inline
SubscriptionHelper.isCancelled()
. - Pull 6275: Improve the
Observable
/Flowable
cache()
operators. - Pull 6287: Expose the Keep-Alive value of the IO
Scheduler
as System property. - Pull 6321: Fix
Flowable.toObservable
backpressure annotation.
2.2.3
API changes
- Pull 6242: Add timed
Completable.delaySubscription()
operator.
Documentation changes
- Pull 6220: Remove unnecessary 's' from
ConnectableObservable
. - Pull 6241: Remove mention of
io.reactivex.functions.Functions
nonexistent utility class.
Other changes
- Pull 6232: Cleanup
Observable.flatMap
drain logic. - Pull 6234: Add timeout and unit to
TimeoutException
message in thetimeout
operators. - Pull 6236: Adjust
UndeliverableException
andOnErrorNotImplementedException
message to use the full inner exception. - Pull 6244: Add
@Nullable
annotations for blocking methods inCompletable
.
2.2.2
Bugfixes
- Pull 6187: Fix
refCount
termination-reconnect race.
Documentation changes
- Pull 6171: Add explanation text to
Undeliverable
&OnErrorNotImplemented
exceptions. - Pull 6174: Auto-clean up RxJavaPlugins JavaDocs HTML.
- Pull 6175: Explain
null
observer/subscriber return errors fromRxJavaPlugins
in detail. - Pull 6180: Update
Additional-Reading.md
. - Pull 6180: Fix
Flowable.reduce(BiFunction)
JavaDoc; the operator does not signalNoSuchElementException
. - Pull 6193: Add "error handling" java docs section to
fromCallable
& co. - Pull 6199: Fix terminology of cancel/dispose in the JavaDocs.
- Pull 6200: Fix
toFuture
marbles and descriptions.
2.2.1
API changes
- Pull 6143: Add
concatArrayEagerDelayError
operator (expose feature).
Bugfixes
- Pull 6145: Fix boundary fusion of
concatMap
andpublish
operator. - Pull 6158: Make
Flowable.fromCallable
consistent with the otherfromCallable
s. - Pull 6165: Handle undeliverable error in
Completable.fromCallable
viaRxJavaPlugins
. - Pull 6167: Make
observeOn
not letworker.dispose()
get called prematurely.
Performance improvements
- Pull 6123: Improve
Completable.onErrorResumeNext
internals. - Pull 6121:
Flowable.onErrorResumeNext
improvements.
Documentation changes
JavaDocs
- Pull 6095: Add marbles for
Single.timer
,Single.defer
andSingle.toXXX
operators. - Pull 6137: Add marbles for
Single.concat
operator. - Pull 6141: Add marble diagrams for various
Single
operators. - Pull 6152: Clarify
TestObserver.assertValueSet
in docs and via tests. - Pull 6155: Fix marble of
Maybe.flatMap
events toMaybeSource
.
Wiki changes
- Pull 6128: Remove
fromEmitter()
in wiki. - Pull 6133: Update
_Sidebar.md
with new order of topics. - Pull 6135: Initial clean up for Combining Observables docs.
- Pull 6131: Expand
Creating-Observables.md
wiki. - Pull 6134: Update RxJava Android Module documentation.
- Pull 6140: Update Mathematical and Aggregate Operators docs.
2.2.0
Summary
Version 2.2.0 is the next minor release of the 2.x era and contains the standardization of many experimental API additions from the past year since version 2.1.0. Therefore, the following components are now considered stable and will be supported throughout the rest of the life of RxJava 2.x.
Classes, Enums, Annotations
- Annotation: N/A
- Subject:
MulticastProcessor
- Classes:
ParallelFlowable
,UndeliverableException
,OnErrorNotImplementedException
- Enum:
ParallelFailureHandling
- Interfaces:
{Completable|Single|Maybe|Observable|Flowable|Parallel}Emitter
,{Completable|Single|Maybe|Observable|Flowable|Parallel}Converter
,LambdaConsumerIntrospection
,ScheduledRunnableIntrospection
Operators
Flowable
:as
,concatMap{Single|Maybe|Completable}
,limit
,parallel
,switchMap{Single|Maybe|Completable}
,throttleLatest
Observable
:as
,concatMap{Single|Maybe|Completable}
,switchMap{Single|Maybe|Completable}
,throttleLatest
Single
:as
,mergeDelayError
,onTerminateDetach
,unsubscribeOn
Maybe
:as
,mergeDelayError
,switchIfEmpty
Completable
:as
,fromMaybe
,onTerminateDetach
,takeUntil
ParallelFlowable
:as
,map|filter|doOnNext(errorHandling)
˙,sequentialDelayError
Connectable{Flowable, Observable}
:refCount(count + timeout)
Subject
/FlowableProcessor
:offer
,cleanupBuffer
,create(..., delayError)
Test{Observer, Subscriber}
:assertValueAt
,assertValuesOnly
,assertValueSetOnly
(For the complete list and details on the promotions, see PR 6105.)
Release 2.2.0 is functionally identical to 2.1.17. Also to clarify, just like with previous minor version increments with RxJava, there won't be any further development or updates on the version 2.1.x (patch) level.
Other promotions
All Experimental/Beta APIs introduced up to version 2.1.17 are now standard with 2.2.
Project statistics
- Unique contributors: 75
- Issues closed: 283
- Bugs reported: 20
- by community: 19 (95%)
- Commits: 320
- PRs: 296
- Bugs fixed: 39
- by community: 8 (20.51%)
- Documentation enhancements: 117
- by community: 40 (34.19%)
- Cleanup: 50
- by community: 21 (42%)
- Performance enhancements: 12
- by community: 1 (8.33%)
- Lines
- added: 70,465
- removed: 12,373
Acknowledgements
The project would like to thank the following contributors for their work on various code and documentation improvements (in the order they appear on the commit page):
@lcybo, @jnlopar, @UMFsimke, @apodkutin, @sircelsius,
@romanzes, @Kiskae, @RomanWuattier, @satoshun, @hans123456,
@fjoshuajr, @davidmoten, @vanniktech, @antego, @strekha,
@artfullyContrived, @VeskoI, @Desislav-Petrov, @Apsaliya, @sidjain270592,
@Milack27, @mekarthedev, @kjkrum, @zhyuri, @artem-zinnatullin,
@vpriscan, @aaronhe42, @adamsp, @bangarharshit, @zhukic,
@afeozzz, @btilbrook-nextfaze, @eventualbuddha, @shaishavgandhi05, @lukaszguz,
@runningcode, @kimkevin, @JakeWharton, @hzsweers, @ggikko,
@philleonard, @sadegh, @dsrees, @benwicks, @dweebo,
@dimsuz, @levaja, @takuaraki, @PhilGlass, @bmaslakov,
@tylerbwong, @AllanWang, @NickFirmani, @plackemacher, @matgabriel,
@jemaystermind, @ansman, @ganapathi004, @leonardortlima, @pwittchen,
@youngam, @Sroka, @serj-lotutovici, @nathankooij, @mithunsasidharan,
@devisnik, @mg6maciej, @rémon S, @hvesalai, @kojilin,
@ragunathjawahar, @BruceZZ, @paulblessing, @cypressf, @langara
(75 contributors)
The project would also thank its tireless reviewer @vanniktech for all his efforts on verifying and providing feedback on the many PRs from the project lead himself. 👍