RxJavaFX icon indicating copy to clipboard operation
RxJavaFX copied to clipboard

Help with Deployment of 2.11

Open thomasnield opened this issue 7 years ago • 20 comments

I'm having some build issues probably related to deployment tasks. I have a strong guess the Nebula plugin is no longer supported by Netflix, which breaks with newer versions of Gradle.

@akarnokd et al, can you help me get my build files set up correctly?

thomasnield avatar Oct 29 '18 15:10 thomasnield

Do you mean the auto-release? It was a bit long ago but these are the highlights:

  • https://github.com/ReactiveX/RxJava/blob/2.x/build.gradle#L13-L14
  • https://github.com/ReactiveX/RxJava/blob/2.x/build.gradle#L21-L32
  • https://github.com/ReactiveX/RxJava/blob/2.x/build.gradle#L44-L45
  • https://github.com/ReactiveX/RxJava/blob/2.x/build.gradle#L146-L199
  • https://github.com/ReactiveX/RxJava/blob/2.x/build.gradle#L311-L372
  • https://github.com/ReactiveX/RxJava/blob/2.x/gradle/buildViaTravis.sh#L13-L24

akarnokd avatar Oct 29 '18 15:10 akarnokd

@akarnokd yes, auto-release. Thank you, I'll take a look.

thomasnield avatar Oct 29 '18 15:10 thomasnield

Suggestion: do release tags with "-RCx" when testing out things.

akarnokd avatar Oct 29 '18 16:10 akarnokd

@akarnokd will do.

thomasnield avatar Oct 29 '18 18:10 thomasnield

Almost at the finish line I think, but having this issue I can't figure out with the CI build:

* Exception is:
org.gradle.execution.TaskSelectionException: Task 'snapshot' not found in root project 'rxjavafx'.
	at org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:116)
	at org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:81)
	at org.gradle.execution.commandline.CommandLineTaskParser.parseTasks(CommandLineTaskParser.java:42)

thomasnield avatar Oct 30 '18 20:10 thomasnield

Maybe the travis script still contains the old snapshot argument somewhere.

akarnokd avatar Oct 30 '18 21:10 akarnokd

[sigh] new level, new devil.

> Task :test FAILED
Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.
> failed to read class file /home/travis/build/ReactiveX/RxJavaFX/build/classes/java/test/io/reactivex/rxjavafx/schedulers/JavaFxSchedulerTest$AsNonApp.class

thomasnield avatar Oct 31 '18 20:10 thomasnield

Are you using compile target 11? The matrix build of RxJava started working for 11+ only after Gradle 5M1.

akarnokd avatar Oct 31 '18 20:10 akarnokd

I have to target Java 11 as that is where JavaFX has been decoupled and spun off as its own library.

Besides trying Gradle 5, is there another approach I can take?

thomasnield avatar Nov 01 '18 14:11 thomasnield

Prior Gradle simply won't work with Java 11 class files. Compile target 10 works for tests but it may complain about 11 API use.

akarnokd avatar Nov 01 '18 15:11 akarnokd

Got it built successfully, thanks!

thomasnield avatar Nov 01 '18 15:11 thomasnield

So close... I'm near the finish line. The artifact isn't getting pushed out for some reason. I am noticing this in the CI ouput:

> Task :bintrayUpload
Task ':bintrayUpload' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Gradle Bintray Plugin version: 1.7.3
Skipping task rxjavafx
:bintrayUpload (Thread[main,5,main]) completed. Took 0.035 secs.

thomasnield avatar Nov 02 '18 15:11 thomasnield

I haven't encountered this error but I haven't tried deploying with Gradle 5M+ before. May be worth trying 1.8.4 of the plugin.

akarnokd avatar Nov 04 '18 16:11 akarnokd

@thomasnield you don't need both maven and maven-publish plugins since they do the same thing. maven-publish is a modern one. See my changes here https://gist.github.com/technoir42/fc3275a3ecd83e6c9bd9deccaf80f265/revisions.

To publish to mavenLocal using the new plugin use ./gradlew publishToMavenLocal.

technoir42 avatar Nov 04 '18 18:11 technoir42

@technoir42 :thinking: okay... so running ./gradlew publishToMavenLocal with these changes are supposed to make the artifacts appear on BinTray?

thomasnield avatar Nov 21 '18 16:11 thomasnield

@thomasnield no, ./gradlew publishToMavenLocal will publish to ~/.m2/ aka mavenLocal where you can verify the artifacts and POM metadata (e.g. dependencies). Once you are sure that everything is correct you can publish to Bintray using ./gradlew bintrayUpload, but I believe you also need to pass -PreleaseMode=full due to this.

Also, may I suggest you to start from scratch on a test project so you could understand the process and the configuration better?

technoir42 avatar Nov 21 '18 17:11 technoir42

I got the artifact on BinTray finally, and I think I learned a lot more than I planned in Bintray Travis-based artifact deployments.

The only remaining issue is getting the Maven Central sync to happen. For some reason it is not liking the POM path.

Execution failed for task ':bintrayPublish'.
> Could not sync 'reactivex/RxJava/RxJavaFX/2.11.0-RC22' to Maven Central: HTTP/1.1 400 Bad Request [status:Sync Failed, messages:[Invalid pom path ]]

thomasnield avatar Nov 22 '18 00:11 thomasnield

God, it's tasks like this that make me want to quit programming and become a truck driver. I downgraded to Gradle 4.x and excluded the tests as they don't work with Gradle 5. This created some progress but there's always one more thing.

It looks like the Bintray POM is missing a lot of fields and therefore getting rejected by Maven Central. Strangely if I publish to my local repo the POM is complete :rage:

an exception.
* What went wrong:
Execution failed for task ':bintrayPublish'.
> Could not sync 'reactivex/RxJava/RxJavaFX/2.11.0-RC27' to Maven Central: HTTP/1.1 400 Bad Request [messages:[Invalid POM: /io/reactivex/rxjava2/rxjavafx/2.11.0-RC27/rxjavafx-2.11.0-RC27.pom: Project name missing, Project description missing, Project URL missing, License information missing, SCM URL missing, Developer information missing, Invalid version for Dependency {groupId=junit, artifactId=junit-dep, version=4.+, type=jar} - uses invalid dynamic version syntax.
  Replace with a fixed version or standard mathematical notation e.g., [1.5,) for version 1.5 and higher., Missing: no javadoc jar found in folder '/io/reactivex/rxjava2/rxjavafx/2.11.0-RC27', Missing: no sources jar found in folder '/io/reactivex/rxjava2/rxjavafx/2.11.0-RC27', Dropping existing partial staging repository.], status:Validation Failed]

thomasnield avatar Nov 22 '18 15:11 thomasnield

Any news about this one? I would like to try the release candidates.

renannprado avatar Aug 18 '19 23:08 renannprado

@renannprado I haven't given up on this yet. Just been busy with getting married and doing O'Reilly projects. We learned some lessons with RxKotlin that will help us get releases here. I just need to find the time and I also want TornadoFX to finish the Java 11 migration.

thomasnield avatar Aug 28 '19 15:08 thomasnield