ReactiveX / RxJavaFX

RxJava bindings for JavaFX
Apache License 2.0
519 stars 67 forks source link

Build Failing #3

Closed benjchristensen closed 8 years ago

benjchristensen commented 9 years ago

This is not yet building ... someone who works with JavaFX needs to figure this out.

I can make it build with Java 8, but there must be a way to get the correct JavaFX dependencies or build config for Java 7?

Also, when building with Java 8 some unit tests fail.

benjchristensen commented 9 years ago

Is it okay to build the artifacts with Java 8? That is how Travis is working.

If I use Java 6/7 it fails:

warning: [options] bootstrap class path not set in conjunction with -source 1.6
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/subscriptions/JavaFxSubscriptions.java:19: error: package javafx.application does not exist
import javafx.application.Platform;
                         ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:18: error: package javafx.animation does not exist
import javafx.animation.KeyFrame;
                       ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:19: error: package javafx.animation does not exist
import javafx.animation.Timeline;
                       ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:20: error: package javafx.application does not exist
import javafx.application.Platform;
                         ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:21: error: package javafx.event does not exist
import javafx.event.ActionEvent;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:22: error: package javafx.event does not exist
import javafx.event.EventHandler;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:23: error: package javafx.util does not exist
import javafx.util.Duration;
                  ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/ObservableValueSource.java:3: error: package javafx.beans.value does not exist
import javafx.beans.value.ChangeListener;
                         ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/ObservableValueSource.java:4: error: package javafx.beans.value does not exist
import javafx.beans.value.ObservableValue;
                         ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/ObservableValueSource.java:15: error: cannot find symbol
    public static <T> Observable<T> fromObservableValue(final ObservableValue<T> fxObservable) {
                                                              ^
  symbol:   class ObservableValue
  location: class ObservableValueSource
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:3: error: package javafx.event does not exist
import javafx.event.Event;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:4: error: package javafx.event does not exist
import javafx.event.EventHandler;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:5: error: package javafx.event does not exist
import javafx.event.EventType;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:6: error: package javafx.scene does not exist
import javafx.scene.Node;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:17: error: cannot find symbol
    public static <T extends Event> Observable<T> fromNodeEvents(final Node source, final EventType<T> eventType) {
                             ^
  symbol:   class Event
  location: class NodeEventSource
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:17: error: cannot find symbol
    public static <T extends Event> Observable<T> fromNodeEvents(final Node source, final EventType<T> eventType) {
                                                                       ^
  symbol:   class Node
  location: class NodeEventSource
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:17: error: cannot find symbol
    public static <T extends Event> Observable<T> fromNodeEvents(final Node source, final EventType<T> eventType) {
                                                                                          ^
  symbol:   class EventType
  location: class NodeEventSource
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:19: error: package javafx.beans.value does not exist
import javafx.beans.value.ObservableValue;
                         ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:20: error: package javafx.event does not exist
import javafx.event.Event;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:21: error: package javafx.event does not exist
import javafx.event.EventType;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:22: error: package javafx.scene does not exist
import javafx.scene.Node;
                   ^
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:39: error: cannot find symbol
    public static <T extends Event> Observable<T> fromNodeEvents(final Node node, final EventType<T> eventType) {
                             ^
  symbol:   class Event
  location: class JavaFxObservable
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:39: error: cannot find symbol
    public static <T extends Event> Observable<T> fromNodeEvents(final Node node, final EventType<T> eventType) {
                                                                       ^
  symbol:   class Node
  location: class JavaFxObservable
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:39: error: cannot find symbol
    public static <T extends Event> Observable<T> fromNodeEvents(final Node node, final EventType<T> eventType) {
                                                                                        ^
  symbol:   class EventType
  location: class JavaFxObservable
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/observables/JavaFxObservable.java:50: error: cannot find symbol
    public static <T> Observable<T> fromObservableValue(final ObservableValue<T> fxObservable) {
                                                              ^
  symbol:   class ObservableValue
  location: class JavaFxObservable
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/subscriptions/JavaFxSubscriptions.java:41: error: cannot find symbol
                if (Platform.isFxApplicationThread()) {
                    ^
  symbol: variable Platform
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:73: error: cannot find symbol
            final Timeline timeline = new Timeline(new KeyFrame(Duration.millis(delay), new EventHandler<ActionEvent>() {
                  ^
  symbol:   class Timeline
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:73: error: cannot find symbol
            final Timeline timeline = new Timeline(new KeyFrame(Duration.millis(delay), new EventHandler<ActionEvent>() {
                                          ^
  symbol:   class Timeline
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:73: error: cannot find symbol
            final Timeline timeline = new Timeline(new KeyFrame(Duration.millis(delay), new EventHandler<ActionEvent>() {
                                                       ^
  symbol:   class KeyFrame
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:73: error: cannot find symbol
            final Timeline timeline = new Timeline(new KeyFrame(Duration.millis(delay), new EventHandler<ActionEvent>() {
                                                                ^
  symbol:   variable Duration
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:73: error: cannot find symbol
            final Timeline timeline = new Timeline(new KeyFrame(Duration.millis(delay), new EventHandler<ActionEvent>() {
                                                                                            ^
  symbol:   class EventHandler
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:73: error: cannot find symbol
            final Timeline timeline = new Timeline(new KeyFrame(Duration.millis(delay), new EventHandler<ActionEvent>() {
                                                                                                         ^
  symbol:   class ActionEvent
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/schedulers/JavaFxScheduler.java:106: error: cannot find symbol
            Platform.runLater(new Runnable() {
            ^
  symbol:   variable Platform
  location: class InnerJavaFxScheduler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/ObservableValueSource.java:21: error: cannot find symbol
                final ChangeListener<T> listener = new ChangeListener<T>() {
                      ^
  symbol: class ChangeListener
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/ObservableValueSource.java:21: error: cannot find symbol
                final ChangeListener<T> listener = new ChangeListener<T>() {
                                                       ^
  symbol: class ChangeListener
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:22: error: cannot find symbol
                final EventHandler<T> handler = new EventHandler<T>() {
                      ^
  symbol: class EventHandler
/scratch/jenkins/workspace/ReactiveX/RxJavaFX/RxJavaFX-0.x-release/src/main/java/rx/javafx/sources/NodeEventSource.java:22: error: cannot find symbol
                final EventHandler<T> handler = new EventHandler<T>() {
                                                    ^
  symbol: class EventHandler
37 errors
1 warning
:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileJava'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
    at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:47)
    at org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler.execute(Jdk6JavaCompiler.java:38)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:96)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:49)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:35)
    at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:29)
    at org.gradle.api.internal.tasks.compile.DelegatingJavaCompiler.execute(DelegatingJavaCompiler.java:20)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:33)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:24)
    at org.gradle.api.tasks.compile.Compile.performCompilation(Compile.java:165)
    at org.gradle.api.tasks.compile.Compile.compile(Compile.java:153)
    at org.gradle.api.tasks.compile.Compile.compile(Compile.java:87)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:236)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:223)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 46 more

BUILD FAILED
benjchristensen commented 9 years ago

cc @cbeams for guidance on this so I can release

cbeams commented 9 years ago

Right. JavaFX was first included as part of Java SE beginning with JDK 8. So while it would technically be possible to support most or perhaps all of what's in RxJavaFX on earlier JDKs by including standalone JavaFX distributions on the classpath, I don't see a compelling reason to do so. JDK 8 has been out for a while now, and RxJavaFX is essentially brand new. I don't see any reason not to go forward assuming JDK 8 as a baseline.

In short, I'd say ship RxJavaFX 0.1.0 as-is, and with the assumption of JDK 8 or better. That at least creates the opportunity for folks to consume the project easily, and provide feedback if they really need support for earlier JDKs.

benjchristensen commented 9 years ago

Cool, that simplifies. So I changed to Java 8 and am now getting this:

rx.schedulers.JavaFxSchedulerTest > testPeriodicScheduling STARTED
Failed in XOpenDisplay

(java:382): Gtk-WARNING **: cannot open display: 
:test FAILED

FAILURE: Build failed with an exception.

Need to figure out how to configure it to be headless.

-Djava.awt.headless=true 

... but due to how Gradle works I need that somehow configured via Gradle I believe.

cbeams commented 9 years ago

I'm not sure why you're still seeing this error—#4 should have fixed it. We had the same Gtk-WARNING issues with Bitsquare, but the same xvfb workaround fixed them for us. See bitsquare/bitsquare@c5809a9. I don't think -Djava.awt.headless=true will make a difference, at least it wasn't necessary in our case. I'm afraid I can't spend more time at the moment looking into this one. Perhaps someone else can pick up the trail.

thomasnield commented 9 years ago

I copied the source files to a new project and did a simple Gradle build just fine (with RxJava as a dependency). I am not sure what trails you guys are chasing but maybe the Gradle build just needs to be simplified???

thomasnield commented 9 years ago

Hey guys, if you want I can submit a pull request to simplify the Gradle build and let this be buildable again. It may not be what you were trying to accomplish initially, but just hitting Maven Central for the dependencies will at least get this working.

Unless... are you trying to target anything other than JavaFX 8?

pigelvy commented 9 years ago

It would be nice to make the project build so a 1st version can be deployed to Maven centrale...

thomasnield commented 9 years ago

Okay I submitted a pull request. I was not quite sure what @benjchristensen and @cbeams were trying to accomplish and if I omitted anything of importance, but I made a simpler dependency setup and it built for me no problem.

sujonmiya commented 9 years ago

Is this project going to see some light on maven central some day? @benjchristensen

thomasnield commented 9 years ago

Hey guys, until folks get a moment to review the pull request, you are more than welcome to use my fork here. https://github.com/thomasnield/RxJavaFX

benjchristensen commented 9 years ago

This project needs an owner. No one from Netflix uses or has experience with JavaFX.

If someone wants to take over ownership, let me know and I can grant privileges to commit and release.

For builds, I recommend getting it working with the Nebula build plugin all other RxJava projects use, otherwise you will be on your own for getting the binary release process working which we have got working very smoothly via Travis -> Bintray -> Maven Central.

thomasnield commented 9 years ago

I am somewhat proficient with JavaFX. I'm still learning a lot about RxJava and JavaFX though, so I don't know if I would qualify as someone to administrate over this.

I'd recommend getting this on Maven Central though at least, with or without Nebula so the project can start getting interest and support.

But let me know if I can do anything to help.

thomasnield commented 9 years ago

Actually, if there is nobody else I can at least take stewardship of the project and keep it up to date with RxJava binary releases. I have a huge need for this library and don't mind maintaining it until someone else comes along.

benjchristensen commented 9 years ago

@thomasnield I have invited you to be a committer so you can take on stewardship of this project.

thomasnield commented 9 years ago

Thanks @benjchristensen, I'll help the best I can.

If anybody else is following this thread, I propose getting this on Maven Central ASAP to attract interest to the project, even if it means simplifying Gradle dependencies to binaries (which is in my PR).

Please let me know if there are any objections by Sunday, and if there are none I'll start getting a release ready.

benjchristensen commented 9 years ago

I think for you to get to Maven Central I need to update your .travis.yml file so that all the credentials are there for publishing. It needs the setup that RxJava and other projects have for BinTray and Sonatype.

thomasnield commented 9 years ago

Okay. Let me know if there are any actions I need to take...

benjchristensen commented 9 years ago

I've got the pieces in place, but there is some odd build issue that I don't understand. It has nothing to do with releasing.

I don't have time right now to figure it out, but it's on my list, unless you can beat me to it.

Here's what needs to happen though:

1) RxJava Nebula Plugin

It needs to use the RxJava Nebula plugin, as used by RxJava, RxAndroid and other projects.

This encapsulates all the build and release behavior used by RxJava.

2) Travis

The Travis builds are setup so they should start working as soon as the build is working.

3) Snapshots

As soon as the project is building via Travis, it will start publishing snapshots to JFrog,

This happens via the Travis build via this command: https://github.com/ReactiveX/RxJavaFX/blob/0.x/gradle/buildViaTravis.sh#L9

It will look like this when it works: https://travis-ci.org/ReactiveX/RxJava/builds/74370551#L3692

4) Release to Maven Central

Releases are done by tagging the repo. This is most easily done by creating a new release via Github: https://github.com/ReactiveX/RxJavaFX/releases

When the repo is tagged, it triggers a build in Github and releases via Bintray to Maven Central. This is done via this command: https://github.com/ReactiveX/RxJavaFX/blob/0.x/gradle/buildViaTravis.sh#L11

The first time this is done let me know (or have me do it once things are building), as there is something I need to do on Bintray for the first release to start the process of syncing to Maven Central. After the first one it will be automatic and fully controllable by you.

The Git tag represents the version. So, tag it as "0.0.1" of "v0.0.1" to release to maven central as version "0.0.1".

thomasnield commented 9 years ago

Okay I'll see if I can make time. I got about 12 things to learn so I'll add this to my agenda.

thomasnield commented 8 years ago

I'm working on this right now. I considered some observations by @jpenglert and also found the gradle-rxjava-project-plugin was being called in a deprecated manner. https://github.com/nebula-plugins/gradle-rxjava-project-plugin

Still investigating a build failure though.

thomasnield commented 8 years ago

Well good news ya'll. I got this to build finally and repaired the Nebula dependencies. I had to do a lot of Googling and found the right setup. One of the unit tests testNestedActions() is failing in Travis though. This tests fine on my machine so this might warrant some investigation.

thomasnield commented 8 years ago

Does anybody know why the unit test would fail on Travis but work fine with a local Gradle build? Slightly puzzled over this. The build is working fine now and if this unit test gets resolved I see no reason why we can't deploy to Maven Central. @benjchristensen

thomasnield commented 8 years ago

I resolved the unit test, and we officially have a successful travis build. I constructed a JFXPanel to trick out the JavaFX thread and initialize it. Is there any concerns releasing this to maven central? If not I'm going to get this out. @benjchristensen @jpenglert @pigelvy @cbeams

thomasnield commented 8 years ago

Okay i tagged the release. This should trigger a Maven Central deployment as @benjchristensen said...

thomasnield commented 8 years ago

For some odd reason, it is listing as 0.0.0 instead of 0.0.1 on Maven Central... https://repo1.maven.org/maven2/io/reactivex/rxjavafx/

thomasnield commented 8 years ago

Alright the RxJavaFX library is officially on Maven Central as 0.0.2.