reactive-streams/reactive-streams-jvm

Release 1.0.3

viktorklang opened this issue · 49 comments

@reactive-streams/contributors How many are in favor of scheduling a release of all the work that has been done since 1.0.2? :)

What would need to be done is to make sure that everyone tries current master against their implementations to report any unforeseen problems before we release.

@reactive-streams/contributors ?

Is there a maven reachable build of master? I need one for the gradle dependency.

@akarnokd No, we don't publish non-release artifacts. Easiest is probably to publish locally and test against that.

Done. RxJava 2.2.9 snapshot passes the TCK.

Great—thanks for verifying @akarnokd!

@patriknw Could you have someone on your team take a look at running the tck from the master branch here against Akka?

@viktorklang I missed this notification, will look into it on Monday

@viktorklang Do you have an instruction of how to build a local snapshot of the tck? I tried adding publishToMavenLocal to the build but I don't know Gradle so it didn't work on my first attempt.

@patriknw This should do it: ./gradlew clean test publish

Task 'publish' not found in root project 'reactive-streams'

@patriknw Hmmm... @akarnokd how do you usually test the jars?
You can get the jars created with "./gradlew jar" and then they get placed in each subproject's ../build/libs dir. I tried enabling the "maven-publish" plugin and do publishToMavenLocal but didn't find the jars in the local .m2

I'll update the version number of the artifacts in master so that doesn't need to be done manually.

This time, I built RS, copied the jars into the RxJava main folder and added them as file dependencies to the RxJava build.gradle. (The usual publish and publishToMavenLocal suggested by SO didn't work and I didn't want to mess with RS' gradle file.)

Ok, I have tried reactive-streams-tck (and reactive-streams-examples) jars in lib directory of akka-stream-tests-tck after removing the ordinary dependency. One test is failing, but not deterministically. Created Akka issue akka/akka#27033 for details.

@patriknw Is there any progress on this on the Issue? We might want to issue a 1.0.3-RC1 to make it easier for people to check it out.

@reactive-streams/contributors Is anybody up for cutting a 1.0.3-RC1? :-)

It has stalled on our side because we didn’t get any response in akka/akka#27033

@reactive-streams/contributors It would be interesting to get your thoughts on this comment: akka/akka#27033 (comment)

required_spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCall is the test in question which was changed in #441. The SubscriberPuppet interface has no clear definition for the expected behavior in the event there maybe "pending" demand when cancel is called.

Assumptions / request for education on SubscriberPuppet

However there is guidance around Ensure that at least {@code elements} are eventually requested by your {@link Subscriber}, which in combination with the rest of the java doc I would assume the intention is "as long as there is demand from the downstream subscription there will be some outstanding demand upstream (assuming no prior cancel)". I don't have full context on SubscriberPuppet but it seems strange for SubscriberPuppet to not deliver any demand on the first call to triggerRequest (if it hasn't been previously cancelled), because how does it know any other events will happen? Also as @jrudolph touched on in #441 (comment) that if this is going to a Subscription that may coalesce or do async processing the test may fail. @jroper can you commit on the expected behavior of the test in this scenario, or if this is not possible for some reason?

Pragmatic Question

Does this discussion need to block the release, or can we decouple and discuss in a followup issue/PR? For example can we take any of the following actions to make progress:

  • revert #441
  • make required_spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel less sensitive to SubscriberPuppet behavior (e.g. re-order expectRequest, etc...)

Hi @Scottmitch, I'm currently on vacation so it'll take a bit of time before I can get to this properly (all of this is currently swapped out of my memory) :)

I've attempted to address this in #462 by clarifying the docs to allow triggerRequest and signalCancel to coalesce, and modifying the test to change the order of expectations.

@Scottmitch Do you have any feedback on @jroper's proposal?
(Just back from vacation so still booting up)

@viktorklang - done. are there any other blockers?

@Scottmitch Not that I know if. If we can get #462 merged then I think we are green for the RC1.

@Scottmitch I'm aiming to cut RC1 today or tomorrow.

any updates @viktorklang?

@Scottmitch Yep, I've spent a bit of time in meetings, I'm doing a dry-run this evening and if all goes well I'll push it.

@Scottmitch Preparing release-notes for 1.0.3-RC1

@Scottmitch I'm waiting for keys to sync, release has been staged.

@Scottmitch Still waiting for keysync, might have to wait until tomorrow morning, it's midnight here soon.

@Scottmitch @reactive-streams/contributors 1.0.3-RC1 is currently making its way to Maven Central. Time to try the RC1 out (primarily the TCK)

RxJava 3.0.0-RC2 snapshot passes with a full spectrum of JDKs on CI and with JDK 13 & 14 locally.

@Scottmitch Any feedback so far?

@reactive-streams/contributors If there are no issues reported by Friday then this release will be promoted to 1.0.3, so please test and report.

@DougLea Doug, let me know if you have any feedback on the RC1

All seems OK with me. I assume that people have been checking tck updates with jdk9+ SubmissionPublisher?

Tests ok in Akka

Looks ok on our side too @viktorklang

Thanks @smaldini, @akarnokd, @patriknw & @DougLea!

Pushing the bits to Maven Central shortly

Please don't forget to deploy the JavaDocs as well:
http://www.reactive-streams.org/reactive-streams-1.0.3-javadoc/

@akarnokd Will do, currently working on updating the website.

I have trouble linking to the javadocs as it seems package-list is missing or inaccessible:

http://www.reactive-streams.org/reactive-streams-1.0.3-javadoc/package-list

1.0.2 works

http://www.reactive-streams.org/reactive-streams-1.0.2-javadoc/package-list

Could be an anomaly due to Java 8 and Java 9 differ in how they generate docs. Maybe you could just copy over the file from 1.0.2.

Due to modules in Java 9 they changed how javadoc generates resources and looks like it no longer produces a package-list but only element-list despite you are not using modules. Sadly, Java 8's javadoc tool does not understand it and if it fails to fetch package-list, it simply won't generate links.

@akarnokd package-list's added!

Excellent! The warning is now gone both local & Travis CI.