Skip to content

Releases: ReactiveX/RxJava

2.2.5

31 Dec 09:58
537fa26
Compare
Choose a tag to compare

Maven

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

Other changes

  • Pull 6313: Adding @NonNull annotation factory methods.
  • Pull 6335: Replace indexed loop with for-each java5 syntax.

2.2.4

23 Nov 08:25
6ae765a
Compare
Choose a tag to compare

Maven

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 on Flowable/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 to Creating-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

23 Oct 09:13
be0353c
Compare
Choose a tag to compare

Maven

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 the timeout operators.
  • Pull 6236: Adjust UndeliverableException and OnErrorNotImplementedException message to use the full inner exception.
  • Pull 6244: Add @Nullable annotations for blocking methods in Completable.

2.2.2

06 Sep 07:31
cc45975
Compare
Choose a tag to compare

Maven

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 from RxJavaPlugins in detail.
  • Pull 6180: Update Additional-Reading.md.
  • Pull 6180: Fix Flowable.reduce(BiFunction) JavaDoc; the operator does not signal NoSuchElementException.
  • 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

23 Aug 08:23
5445b4a
Compare
Choose a tag to compare

Maven

API changes

  • Pull 6143: Add concatArrayEagerDelayError operator (expose feature).

Bugfixes

  • Pull 6145: Fix boundary fusion of concatMap and publish operator.
  • Pull 6158: Make Flowable.fromCallable consistent with the other fromCallables.
  • Pull 6165: Handle undeliverable error in Completable.fromCallable via RxJavaPlugins.
  • Pull 6167: Make observeOn not let worker.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 and Single.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 to MaybeSource.
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

31 Jul 07:30
839c70f
Compare
Choose a tag to compare

Maven

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
    • PRs accepted: 268 (90.54%)
    • Community PRs: 96 (35.82% of all accepted)
  • 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. 👍

2.1.17

23 Jul 07:22
ce5ce4b
Compare
Choose a tag to compare

Maven

API changes

  • Pull 6079: Add Completable.takeUntil(Completable) operator.
  • Pull 6085: Add Completable.fromMaybe operator.

Performance improvements

  • Pull 6096: Improve Completable.delay operator internals.

Documentation changes

2.1.16

26 Jun 07:46
83f2bd7
Compare
Choose a tag to compare

Maven

This is a hotfix release for a late-identified issue with concatMapMaybe and concatMapSingle.

Bugfixes

  • Pull 6060: Fix concatMap{Single|Maybe} null emission on success-dispose race.

2.1.15

22 Jun 07:39
869c2aa
Compare
Choose a tag to compare

Maven

API changes

  • Pull 6026: Add blockingSubscribe overload with prefetch amount allowing bounded backpressure.
  • Pull 6052: Change {PublishSubject|PublishProcessor}.subscribeActual to protected. They were accidentally made public and there is no reason to call them outside of RxJava internals.

Documentation changes

  • Pull 6031: Inline CompositeDisposable JavaDoc.
  • Pull 6042: Fix MulticastProcessor JavaDoc comment.
  • Pull 6049: Make it explicit that throttleWithTimout is an alias of debounce.
  • Pull 6053: Add Maybe marble diagrams 06/21/a
  • Pull 6057: Use different wording on blockingForEach() JavaDocs.
  • Pull 6054: Expand {X}Processor JavaDocs by syncing with {X}Subject docs.

Performance enhancements

  • Pull 6021: Add full implementation for Single.flatMapPublisher so it doesn't batch requests.
  • Pull 6024: Dedicated {Single|Maybe}.flatMap{Publisher|Observable} & andThen(Observable|Publisher) implementations.
  • Pull 6028: Improve Observable.takeUntil.

Bugfixes

  • Pull 6019: Fix Single.takeUntil, Maybe.takeUntil dispose behavior.
  • Pull 5947: Fix groupBy eviction so that source is cancelled and reduce volatile reads.
  • Pull 6036: Fix disposed LambdaObserver.onError to route to global error handler.
  • Pull 6045: Fix check in BlockingSubscriber that would always be false due to wrong variable.

Other changes

  • Pull 6022: Add TCK for MulticastProcessor & {0..1}.flatMapPublisher
  • Pull 6029: Upgrade to Gradle 4.3.1, add TakeUntilPerf.
  • Pull 6033: Update & fix grammar of DESIGN.md

2.1.14

23 May 07:38
Compare
Choose a tag to compare

Maven

API changes

  • Pull 5976: Add Single.concatEager().
  • Pull 5986: Add ConnectableObservable.refCount() and ConnectableFlowable.refCount() with minimum consumer count & disconnect grace period.
  • Pull 5979: Add Observable.throttleLatest and Flowable.throttleLatest().
  • Pull 6002: Add MulticastProcessor.
  • Pull 6010: Add assertValueSetOnly and assertValueSequenceOnly to TestObserver/TestSubscriber.

Deprecations

  • Pull 5982: Deprecate getValues() in Subjects/FlowableProcessors to be removed in 3.x.

Documentation changes

  • Pull 5977: Maybe/Single JavaDocs; annotation cleanup.
  • Pull 5981: Improve JavaDocs of the subscribeActual methods.
  • Pull 5984: Add blockingSubscribe JavaDoc clarifications.
  • Pull 5987: Add marble diagrams to some Single.doOnX methods.
  • Pull 5992: Observable javadoc cleanup.

Bugfixes

  • Pull 5975: Fix refCount() connect/subscribe/cancel deadlock.
  • Pull 5978: Flowable.take to route post-cancel errors to plugin error handler.
  • Pull 5991: Fix switchMap to indicate boundary fusion.

Other changes

  • Pull 5985: Cleanup in the Scheduler class.
  • Pull 5996: Automatically publish the generated JavaDocs from CI.
  • Pull 5995: Implement toString method for some Emitters.
  • Pull 6005: JavaDocs HTML formatting and whitespace cleanup.
  • Pull 6014: Fix & prevent null checks on primitives.