ReactiveX / RxSwing

RxJava bindings for Swing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RxJava2 support tactics?

Petikoch opened this issue · comments

Hi @mikebaum and @akarnokd ,

I talked with a friend (@UeliKurmann) about RxSwing and RxJava2 compatibility. RxSwing builds currently on RxJava 1.x.

The discussion raised a more general question... what's the way to go for projects like RxSwing to support RxJava2?

There are basically two options IMO

  1. Create a "RxJava2 branch" and migrate everything to RxJava2, release it from that branch using a different artifact group id and different java packages. Maintain then afterwards both branches... with manual merges between the branches

  2. Use https://github.com/akarnokd/RxJava2Interop and build something like a "RxSwingRxJava2Interop" project which offers "SwingObservable2", "SwingScheduler2", ... and let the user take care about picking "the right" (new) Observable, "the right SwingObservable2", ... This would be far more easy to maintain for the RxSwing library developer(s), but is more confusing for the users of the library

What do you think?

Best regards,
Peti

I'd go for ReactiveX/RxSwing2 and io.reactivex.rxjava2:rxswing:2.0.0 but if you think you can live with branch switching, opening a 2.x here and updating the maven address like above is preferred.

Thanks @akarnokd for the fast response.

Another thought... I think RxAndroid does branch switching. What are your experiences @JakeWharton , what do you suggest? Branch Switching or separate ".2" Project?

I would only do branching if you think that one version will slow down in development and the majority will continue on the new version. If you think that development will continue in parallel and that design and development will be done in parallel the overhead of branching and user confusion will bit higher (but not unmanageable). For RxAndroid specifically it hasn't seen a lot of week-to-week changes so managing two branches is fine, and we expect to switch 2.x to the default in a few weeks. For other projects that we manage we're just switching to 2.x on master and stopping 1.x releases. Only if a problem arises with the 1.x version will be accept a change and make another 1.x release, but I think that will rarely–if ever–happen.

Thanks @JakeWharton for your feedback.

@mikebaum , what do you think about the future concerning RxJava2 and RxSwing?

@UeliKurmann, what do you think about publishing your RxJava2 migration of RxSwing to the public (https://github.com/UeliKurmann/RxSwing/tree/rxjava2) ?

Best regards to all,
Peti

@Petikoch Hey Peti, thanks for bringing this forward. Sorry for the delay, I'm in San Francisco right now at a software conference. Personally I'd go for the RxSwing2 option, rather than separate branches. I imagine that most development would happen on this new project. The only downside is that users would be forced to use RxJava2 and Java 8. This doesn't seem so bad, because personally I'd much prefer working with Java 8 for the obvious reasons (lamdas).

@akarnokd I'm not sure how to proceed to create a new Rx project, can you provide any guidance?

Thanks,
Mike

Done https://github.com/ReactiveX/RxSwing2 . Let me know if who else to invite and what rights you need.

Should I publish my initial migration? (https://github.com/UeliKurmann/RxSwing/tree/rxjava2) Where should I create a pull request? It isn't perfect, but could be a good starting. The project compiles and all tests are green.

@UeliKurmann You have to update the maven address specification too:

// somewhere at the beginning of build.gradle
group = 'io.reactivex.rxjava2'

I have dropped a pull request that supports java 1.6

Hi,
Are there any plan for publishing rxswing on maven repository, that is compatible with rxjava2. Is there further development plan for rxswing branch? Or can i use it directly? By the way, readme section of ...RxSwing/tree/rxjava2 is misleading.

Best regards to all,
Seckin

The problem with RxSwing is, as I see it, that there is at the moment no active maintainer of the project.

The project is stalled. Or what do you think @mikebaum ?

The work for porting RxSwing to RxJava2 is already done. Twice, once by @UeliKurmann and once by @jutoft. But nobody is pulling in the changes and releasing them.

I guess, the project must be "unstalled" first.

I can take over managing RxSwing but is there any contributor left willing to ramp up the remaining listener iplementations, for two versions?

I would like to be contributor in the future. I can be volunteer for that job. Currently i m learning what have u done until now. And i m really happy to see bind approach in swing.

By the way, i plan to use rxswing in product development. Do you have any important advice to me? What re the remaining listener implementations? I can implement them and i will be happy to support that rxswing project.

@akarnokd @Petikoch @skiranoglu

Sorry guys if I can help I will. Right now I'm on vacation in Jamaica till this coming Saturday. I'll follow up then.

Closing, since there is now an excellent solution from @akarnokd
https://github.com/akarnokd/RxJava2Swing