question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

3.0.0-RC2 release preparations

See original GitHub issue

Version 3.0.0-RC2 - August 20, 2019 (Maven)

Javadocs

This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.

Please check out the wiki page What’s different in 3.0 from time to time for the details and migration guide.

Major change

After considering several factors, the components of RxJava 3 have been moved to a new base package to avoid class file conflicts due to having v2 and v3 in the same project. The new base package is io.reactivex.rxjava3 and the base types will live in io.reactivex.rxjava3.core:

Name v2 v3
Base package io.reactivex io.reactivex.rxjava3
Flowable io.reactivex.Flowable io.reactivex.rxjava3.core.Flowable
PublishSubject io.reactivex.subjects.PublishSubject io.reactivex.rxjava3.subjects.PublishSubject
ConnectableObservable io.reactivex.observables.ConnectableObservable io.reactivex.rxjava3.observables.ConnectableObservable
Function io.reactivex.functions.Function io.reactivex.rxjava3.functions.Function
etc.

Flowables of the two versions can talk to each other without bridges because both implement the Reactive Streams’ interfaces such as Publisher:

io.reactivex.Flowable.range(1, 10)
    .flatMap(v -> io.reactivex.rxjava3.core.Flowable.just(v * 10))
    .subscribeWith(new io.reactivex.rxjava3.subscribers.TestSubscriber<>())
    .assertResult(10, 20, 30, 40, 50, 60, 70, 80, 90, 100);

The other reactive types do not share such base interfaces (they have their own respective copies) and will require bridges, likely provided via 3rd party libraries as with v1->v2 or v1->v3 bridges.

Dependency changes

  • Upgrade to Reactive Streams 1.0.3-RC1 (#6621)

API changes

  • Widen throws on the XOnSubscribe interfaces (#6579)

Behavior changes

  • Constrain upstream requests of elementAt and first operators (#6620)

Bugfixes

  • Fix switchMaps inconsistency swallowing errors when cancelled (#6572)
  • Fix ObservableBlockingSubscribe compares TERMINATED with wrong object (#6577)
  • Fix truncation bugs in replay() and ReplaySubject/Processor (#6582)
  • Fix mergeWith not cancelling the other source if the main errors (#6598)
  • Fix refCount not resetting when termination triggers cross-cancel (#6609)
  • Fix many operators swallowing undeliverable exceptions (#6612)
  • Fix switchMap incorrect sync-fusion & error management (#6616)

Documentation enhancements

No changes in this release.

Other

  • Create a base test class and have all unit tests extend it (#6589, #6594, #6595, #6600, #6604, #6607)
  • Refactor to io.reactivex.rxjava3.** (#6621)

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:10 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
JakeWhartoncommented, Aug 20, 2019

I would prefer 3.0 target Java 9 so it can use j.u.c.Flow directly instead of RS.

But,

There are no indications that android will use java8+

Aside from the platform shipping the APIs of Java 8 a few years ago, the language features have been supported by the toolchain for a long time and library desugaring of those shipped APIs so that they work on older platforms was announced to be coming this fall at I/O and it’s already available in custom D8/R8 builds.

1reaction
akarnokdcommented, Aug 18, 2019

December this year.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Foreman 3.0.0-rc2 release process - Releases - TheForeman
CLI release notes are taken from the hammer-cli and hammer-cli-foreman changelogs; Link to installer changelogs and note versions being used ...
Read more >
Apache camel 3.0.0-RC2 Release
0-RC2 Release. New and Noteworthy. This release the second release candidate towards Camel 3.0.0 release. Supported Java version. This version supports Java 8 ......
Read more >
CakePHP 3.0.0-RC2 Released — Bakery
The CakePHP core team is excited to announce the release of CakePHP 3.0.0-RC2. Our plan is that this will be the final 3.0.0...
Read more >
NuGet 3.0 RC 2 Released - Microsoft Developer Blogs
The team has been hard at work preparing for the final release of Visual Studio, and would like to issue an update to...
Read more >
Linux kernel 3.0.0-rc2 released.
The 3.0.0-rc2 release of the Linux kernel is available on kernel.org finally. This is a whole new numbering series for the Linux kernel...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found