Skip to content

Releases: ReactiveX/RxJava

2.1.5-RC2

03 Oct 09:10
Compare
Choose a tag to compare
2.1.5-RC2 Pre-release
Pre-release

This is a pre-release of 2.1.5 to make sure the new nebula-plugin-free release process works.

If the release fails at the bintray upload due to configuration mistakes, we'll adjust it an release RC3 and on. If it succeeds, that's fine as well because the final 2.1.5 will come in a couple of days.

RC1 failed due to wrong config: repo and name were not RxJava/RxJava.

2.1.5-RC1

03 Oct 08:54
Compare
Choose a tag to compare
2.1.5-RC1 Pre-release
Pre-release

This is a pre-release of 2.1.5 to make sure the new nebula-plugin-free release process works.

If the release fails at the bintray upload due to configuration mistakes, we'll adjust it an release RC2 and on. If it succeeds, that's fine as well because the final 2.1.5 will come in a couple of days.

2.1.4

22 Sep 09:01
Compare
Choose a tag to compare

Maven

API changes

  • Pull 5568: Add BaseTestConsumer.assertValuesOnly.
  • Pull 5582: Add Maybe.switchIfEmpty(Single).
  • Pull 5590: Add LambdaConsumerIntrospection for detecting the lack of onError callback in subscribe() calls.

Documentation changes

  • Pull 5578: Add NullPointerException comment to some Single operators.
  • Pull 5600: Updating JavaDoc with correct return types of Single in some Observable operators.

Bugfixes

  • Pull 5560: Fix Observable.combineLatestDelayError sync initial error not emitting.
  • Pull 5594: Fix BaseTestConsumer.assertValueSequence reversed error message.
  • Pull 5609: Fix Observable.concatMapEager queueing of source items.

Other

  • Pull 5586: fix Single.timeout unnecessary dispose calls.

1.3.2

15 Sep 07:46
Compare
Choose a tag to compare

Maven

Bugfixes

  • Pull 5602: Workaround for CHM.keySet bad type with Java 8 compiler

1.3.1

10 Sep 17:31
Compare
Choose a tag to compare

Maven

API changes

Remark: submitted & merged before the feature freeze of June 1st.

  • Pull 5332: Add the cast operator to Single.

Bugfixes

  • Pull 5430: Fix premature cleanup in AsyncOnSubscribe when the last Observable is still running.
  • Pull 5437: TestSubscriber::assertValuesAndClear should reset valueCount.
  • Pull 5470: Fix eager call to RxJavHooks.onError in SafeCompletableSuscriber.

2.1.3

15 Aug 15:50
Compare
Choose a tag to compare

Maven

Dependency updates

The Reactive-Streams dependency has been updated to version 1.0.1. This new version contains documentation changes and TCK (Test Compatibility Kit) fixes that doesn't affect RxJava's frontend. Other libraries that were using version 1.0.0 should have no issue running with 1.0.1.

JDK 9 compatibility

RxJava 2 from now on is compatible with JDK 9, verified in a separate project whenever a new (non-trivial) update of the JDK or RxJava happens.

Compatibility means the RxJava 2 source code compiles with JDK 9 (targets 6, 8 and 9) and the unit tests pass.

API changes

  • Pull 5529: Add assertValueAt(int, value) to TestObserver/TestConsumer.

Documentation changes

Bugfixes

  • Pull 5517: Add missing null check to fused Observable.fromCallable.

Other

  • Pull 5546: Upgrade Reactive-Streams dependency to 1.0.1

2.1.2

23 Jul 08:20
Compare
Choose a tag to compare

Maven

Documentation changes

  • Pull 5432: Fix/clarify the Observable class' javadoc.
  • Pull 5444: Fix wording in Async and Publish processors javadoc.
  • Pull 5413: Add empty source clauses to javadocs of combineLatest operators accepting unspecified number of sources.
  • Pull 5465: Fix wording of toList, fix a/an in subscribeOn.
  • Pull 5476: Fix Javadoc for Flowable and Observable reduce.
  • Pull 5478: Corrected return type in doc for F.reduce(seed, reducer), F.reduceWith(seedSupplier, reducer) and O.reduce(seed, reducer).
  • Pull 5486: Small note on Maybe.defaultIfEmpty regarding toSingle.

Bugfixes

  • Pull 5434: Fix time bounded ReplaySubject.getValue() inconsistency with getValues() on old items.
  • Pull 5440: concat to report isDisposed consistently with termination.
  • Pull 5441: Fix periodic scheduler purging config not honored.
  • Pull 5494: Fix FlowableWithLatestFrom not requesting more when the other hasn't emitted yet.
  • Pull 5493: Fix ReplayProcessor backpressure and NotificationLite emission bug.
  • Pull 5507: Fix GC nepotism in SpscLinkedArrayQueue.
  • Pull 5511: Remove unnecessary generic type parameter for the timed Single.delaySubscription methods.

Other

  • Pull 5447: Remove @NonNull annotation in Consumer method parameter.
  • Pull 5449: Remove the @NonNull annotation from Function.
  • Commit 4d8f008c: add missing 'the' to the changed sentences of Pull 5413
  • Pull 5460: Fix Javadoc mistakes and some style.
  • Pull 5466: Use a mutable field in FlowableTimeoutTimed instead of an AtomicReference.
  • Commit 5d2e8fb4: Fix Schedulers.io() javadoc {link missing the @ symbol.
  • Pull 5495: Make withLatestFrom conditional subscriber, test cold consumption.

2.1.1

21 Jun 08:03
Compare
Choose a tag to compare

Maven

Notable changes

The emitter API (such as FlowableEmitter, SingleEmitter, etc.) now features a new method, tryOnError that tries to emit the Throwable if the sequence is not cancelled/disposed. Unlike the regular onError, if the downstream is no longer willing to accept events, the method returns false and doesn't signal an UndeliverableException.

API enhancements

  • Pull 5344: Add tryOnError to create/XEmitter API.
  • Pull 5386: Add subscribeOn overload to avoid same-pool deadlock with create.

Documentation changes

  • Pull 5343: Fix Javadoc for Maybe.toSingle.
  • Pull 5347: Fix Javadoc for FunctionX
  • Pull 5351: Update some marbles of Observable
  • Commit b4aeb6e3: Replace Action1 with Consumer in docs.
  • Pull 5383: Fixed Javadoc for SingleFlatMapIterableObservable.
  • Pull 5403: Fix the copy-paste error in the Javadoc of Single.doAfterTeminate mentioning doAfterSuccess.
  • Pull 5405: DefaultObserver javadoc fix: use subscribe, remove disposable code.
  • Pull 5407: DefaultSubscriber javadoc sample fix.
  • Pull 5406: Fix javadoc for Observable.reduce() and Observable.reduceWith().
  • Pull 5409: Corrected Single.delay documentation.

Bugfixes

  • Pull 5367: Make sure interval+trampoline can be stopped.
  • Pull 5378: Make SingleMap not allow map function return null.
  • Pull 5379: Add missing null checks on values returned by user functions.
  • Pull 5415: Fix doOnNext failure not triggering doOnError when fused.
  • Pull 5419: Fix periodic scheduling with negative period causing IAE.
  • Pull 5427: Fix buffer(time, maxSize) duplicating buffers on time-size race.

Other

  • Pull 5324: Mark VolatileSizeArrayList as RandomAccess list
  • Pull 5354: Fix typo in error message in BaseTestConsumer.assertValueSequence.
  • Pull 5391: Changed minimum value of rx2.buffer-size to 1.

1.3.0

05 May 08:09
Compare
Choose a tag to compare

Maven

Summary

Version 1.3.0 is the next minor release of the 1.x series of RxJava containing many formerly experimental API components promoted to standard. Most notably the Completable base reactive type is now standard as well.

Note that the experimental rx.Observable.fromEmitter() has been removed in favor for the now also standard Observable.create(Action1<Emitter<T>> emitter, Emitter.BackpressureMode backpressure)

The planned lifecycle of the 1.x line is as follows:

Date Remark
June 1, 2017 Feature freeze, only bugfixes from this on.
September 1, 2017 Release 1.4.0 finalizing the remaining API components.
March 31, 2018 End of development.

The following components have been promoted to standard:

Classes, interfaces

  • classes: AssemblyStackTraceException, RxJavaCompletableExecutionHook, RxJavaHooks, UnicastSubject, BlockingSingle, Completable, AssertableSubscriber, AsyncCompletableSubscriber, SafeCompletableSubscriber
  • interfaces: Cancellable, Emitter, SingleEmitter, CompletableEmitter, CompletableSubscriber, BackpressureOverflow.Strategy

Operators

  • Observable: create, unsafeCreate, to, zip(Observable[], FuncN), flatMapCompletable, flatMapSingle, groupby(Func1, Func1, Func1<Action1<K>, Map<K, Object>>), onTerminateDetach, rebatchRequests, subscribeOn(Scheduler, boolean), sorted, withLatestFrom, test, toCompletable, concatDelayError, mergeDelayError, switchOnNextDelayError, using(Func0, Func1, Action1, boolean), concatMapDelayError, delaySubscription(Observable), distinctUntilChanged(Func2), concatEager, concatMapEager, onBackpressureBuffer(long, Action0, BackpressureOverflow.Strategy), switchMapDelayError, toSortedList(int), toSortedList(Func2, int)
  • Completable: fromEmitter, test
  • Single: fromEmitter, merge, mergeDelayError, cache, to, doOnEach, doOnSuccess, test, onErrorResumeNext, toCompletable, doOnError, doOnSubscribe, delay, defer, doOnUnsubscribe, doAfterTerminate, flatMapCompletable, lift, toBlocking, using, delaySubscription(Observable)
  • TestSubscriber: getCompletions, awaitValueCount, assertValuesAndClear
  • SyncOnSubscriber: createSingleState, createStateful, createStateless

Other

  • Schedulers.reset
  • CompositeException(Throwable...) constructor
  • Exceptions.throwOrReport (4 overloads)
  • BlockingObservable.subscribe (6 overloads)
  • RxJavaSchedulersHook: createComputationScheduler, createIoScheduler, createNewThreadScheduler
  • internal: AssertableSubscriberObservable, FlatMapCompletable, FlatMapSingle, SchedulerWhen, BackpressureDrainManager, BlockingUtils.
  • RxJavaPlugins: reset, getCompletableExecutionHook, registerCompletableExecutionHook
  • RxJavaErrorHandler: handleOnNextValueRendering, render

In addition, the class AsyncOnsubscribe with its 7 factory methods and Observable.create(AsyncOnSubscribe<S, T>) have been promoted to beta.

Acknowledgements

Thanks to all who contributed to the 1.x line in the past 6 months (in order they appear on the commit page):

@mtiidla, @dhendry, @mostroverkhov, @yshrsmz, @BraisGabin, @cesar1000, @Jawnnypoo, @chanx2, @abersnaze, @davidmoten, @ortex, @marwinxxii, @ekchang, @pyricau, @JakeWharton, @VictorAlbertos

2.1.0

29 Apr 07:32
Compare
Choose a tag to compare

Maven

Summary

Version 2.1.0 is the next minor release of the 2.x era and contains the standardization of many experimental API additions from the past half a year since version 2.0.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: CheckReturnValue
  • Subjects: CompletableSubject, MaybeSubject, SingleSubject
  • Enum: TestWaitStrategy

Operators

  • Flowable: doAfterNext, doFinally, sample (emitLast)
  • Observable: doAfterNext, doFinally, sample (emitLast)
  • Single: doAfterSuccess, doAfterTerminate, doFinally
  • Maybe: doAfterSuccess, doFinally, flatMapSingleElement
  • Completable: cache, doFinally, hide
  • Test{Observer, Subscriber}: assertNever, assertTimeout, assertNoTimeout, awaitCount, clearTimeout, isTimeout, withTag
  • RxJavaPlugins: createComputationScheduler, createIoScheduler, createNewThreadScheduler, createSingleScheduler, getOnBeforeBlocking, setOnBeforeBlocking, isFailOnBlockingScheduler, setFailOnBlockingScheduler.
  • Other: Scheduler.when, TestSubscriber.requestMore

(For the complete list and details on the promotions, see issue 5243.)

Release 2.1.0 is functionally identical to 2.0.9 except the removal of now unnecessary Flowable.strict() operator. To clarify, just like with previous minor version increments with RxJava, there won't be any further development or updates on the version 2.0.x (patch) level.

Beta promotions

Some of the enhancements of RxJava 2.0.x were added recently which often represent complex additions to RxJava itself (such as the whole ParallelFlowable). We are confident their functionality adds value to the library but not enough time elapsed since their introduction for the community to try it out and provide feedback on them (i.e., naming, encompassed functionality, etc.). To indicate we are willing to support them and eventually standardize them in the next minor release, the following components have been promoted to the status of Beta:

  • Classes: OnErrorNotImplementedException, ProtocolViolationException, UndeliverableException,
    ParallelFlowable
  • Interface: FlowableSubscriber
  • Methods
    • Flowable: parallel, subscribe(FlowableSubscriber)
    • RxJavaPlugins: getOnParallelAssembly, onAssembly(ParallelFlowable), setOnParallelAssembly

Non-functional changes between 2.0.9 and 2.1

  • Pull 5306: Change ObservableSource.defer to Observable.defer in Observable.scan() documentation.
  • Pull 5309: Fix Javadoc of Flowable.toObservable referring to Publisher instead of Observable.

Project statistics

  • Unique contributors: 41
  • Issues closed: 315
  • Bugs reported: 43
    • by community: 40 (93%)
  • Commits: 193
  • PRs: 225
    • PRs accepted: 198 (88%)
    • Community PRs: 76 (38.4% of all accepted)
  • Bugs fixed: 58
    • by community: 8 (13.9%)
  • Documentation enhancements: 46
    • by community: 22 (52.2%)
  • Cleanup: 40
    • by community: 22 (55%)
  • Lines
    • added: 44,931
    • removed: 7,405

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):

@vanniktech, @veyndan, @Mauin, @smartbeng, @ImangazalievM, @bloderxd, @mibac138, @ggikko, @mostroverkhov, @sadegh, @nmorioka, @SleimanJneidi, @davidmoten, @hkurokawa, @jbarr21, @alexandre-dubois, @VeskoI, @Stephan202, @PaulWoitaschek, @soulkeykim, @stevepeak, @jschneider, @JakeWharton, @tonycosentini, @hzsweers, @passsy, @sergiomarquesmoura, @ikesyo, @benjchristensen, @zsavely, @DDesideria, @gaemi, @Jawnnypoo, @artem-zinnatullin, @mkobit, @abersnaze, @tbcs, @gengjiawen, @qwert2603, @DmitriyZaitsev

(40 contributors)

The project would also thank its tireless reviewers, @JakeWharton and @vanniktech for all their efforts on verifying and providing feedback on the many PRs from the project lead himself. 👍