-
Notifications
You must be signed in to change notification settings - Fork 7.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2.0 Package Name #3173
Comments
/cc @ReactiveX/rxjava-committers @JakeWharton @davidmoten @simonbasle @alkemist and any others who may have an opinion on this. |
rxjava.io is owned by Netflix, so we can use io.rxjava Are there others we should pick up in case we need/want them? |
Using I'm not opposed to // RxJava1 in an RxJava2 world
Observable<Magic> moreMagic(Observable<Magic> magic) {
rx.Observable<Magic> oldMagic = getOldMagic();
return Observable.merge(magic, RxConverter.to2(oldMagic));
} or conversely: // RxJava2 in an RxJava1 world
Observable<Magic> moreMagic(Observable<Magic> magic) {
rx2.Observable<Magic> newMagic = getNewMagic();
return Observable.merge(magic, RxConverter.to1(newMagic));
} |
I'm a little torn on putting the version of the package in the artifact id, since it's not really the place where it belongs. @benjchristensen do you see the use case that people use the old and new rx versions side by side? For example with couchbase we had that explicit use case requested, so we went with a different artifact ID and the namespace was also different. But every project might be different in that regard. |
Yes, using side-by-side is expected for some time, especially in big companies. For example, using the current Couchbase client, Hystrix 1.x, or RxNetty 1.x with RxJava v1 while starting to use newer libraries, such as those I'm working on at reactivesocket.io which natively use Reactive Streams interfaces (and eventually Java 9 Flow). Also, v2 will be Java8+ so any library need <8 will stay on v1 and we don't want to prevent people from using libraries taking advantage of Java 8+ just because 1 library needs to stay on 6 or 7. |
@JakeWharton Unfortunately, virtually nobody uses commons-lang3, even four years later. We should approach these decisions cautiously. Because of the relocated coordinate, there is absolutely no incentive to upgrade to CL3. |
I don't recall an example out there from the top of my head that puts version number in the package name (although @JakeWharton mentioned |
A related post is at #3170 (comment) about the maven artifactId name. I have been convinced that we should retain As for the package, I'm still leaning towards
👍 👎 ? |
👍, double maven publication sounds like a great solution IMHO |
👍 |
Thanks for the positive feedback @simonbasle and @daschl @ReactiveX/rxjava-committers I'd appreciate your vote on this. |
👍 |
Interesting discussion. I don't have any unique input. |
I'm closing this for now. 2.x will go with |
I've been using
io.reactivex
as the assumed package name for v2, but that doesn't have to be what it is.RxJava v1 ==>
rx
We could do any of the following (or something else) for RxJava v2:
rx2
io.rxjava
io.rxjava2
io.rx2
The thinking behind this is keeping our options open for a v3 years from now (say after Java 10).
Let's assume we have 3 versions and want to decouple the upgrade cycles, it would look like this:
I'd appreciate input on how this should be done as we'll have to live it with for many years.
Note that this is related to the discussion in #3170 where we are discussing having v1 and v2 as independent artifacts so an app could use both at the same time.
The text was updated successfully, but these errors were encountered: