reactive-streams / reactive-streams-jvm

Reactive Streams Specification for the JVM
http://www.reactive-streams.org/
MIT No Attribution
4.81k stars 530 forks source link

Release 1.0.2 #413

Closed viktorklang closed 6 years ago

viktorklang commented 6 years ago

Given the number of improvements which have been merged since 1.0.1 I'm thinking if we should consider releasing everything as a 1.0.2 rather than issuing the new jars (flow adapters, flow tck) against 1.0.1.

Thoughts?

akarnokd commented 6 years ago

Sounds good.

viktorklang commented 6 years ago

A followup question: what should we try to merge/fix additionally—if we want to issue 1.0.2 before the end of the year?

ktoso commented 6 years ago

As for required things the automatic module names are the single thing I think https://github.com/reactive-streams/reactive-streams-jvm/pull/412

The other things look like nice to have I guess?

DougLea commented 6 years ago

OK, but given all of the config and tck changes, I no longer know how to test compliance of jdk java.util.concurrent.SubmissionPublisher, which was just now updated and should be checked. Can anyone try this and explain how they did it? Existing tests should run using java --patch-module java.base="jsr166.jar with the updated http://gee.cs.oswego.edu/dl/jsr166/dist/jsr166.jar

viktorklang commented 6 years ago

@DougLea We're planning on releasing the RC of the Flow TCK next week.

akarnokd commented 6 years ago

I'll submit a PR to the Flow-TCK to have SubmissionPublisher. I'm not sure how I could do that --patch-module with Gradle though.

viktorklang commented 6 years ago

For RC1 see #417

viktorklang commented 6 years ago

@reactive-streams/contributors Current master is now updated to what I think will make for a good 1.0.2-RC1 (see #417). I have pushed a tag for v1.0.2-RC1 which can/will be used to make the release from.

So, who wants to do the honors of building the release? @rkuhn? @ktoso? :)

viktorklang commented 6 years ago

@reactive-streams/contributors No volunteers for the prestigious job of making an RS release? :)

rkuhn commented 6 years ago

Sorry, I currently don’t have my GPG key with me, so I’m blocked from releasing until Thursday evening when I get back home. (will fix that to prevent recurrance of this problem in the future)

ktoso commented 6 years ago

Missed that, was offline for a few days. Sure, I can cut it when we want. AFAIR I did cut one some time ago so should work.

viktorklang commented 6 years ago

Awesome. If we can merge @akarnokd's latest PR then we just repoint the v1.0.2-RC1 tag and cut the release from there.

-- Cheers, √

On Dec 4, 2017 16:36, "ktoso" notifications@github.com wrote:

Missed that, was offline for a few days. Sure, I can cut it when we want. AFAIR I did cut one some time ago so should work.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/reactive-streams/reactive-streams-jvm/issues/413#issuecomment-348998823, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAqd1V83kJTs1G4wAGN8DUOj-canvj5ks5s9BGMgaJpZM4QnaAt .

viktorklang commented 6 years ago

No worries, Roland! 😊

-- Cheers, √

On Dec 4, 2017 16:23, "Roland Kuhn" notifications@github.com wrote:

Sorry, I currently don’t have my GPG key with me, so I’m blocked from releasing until Thursday evening when I get back home. (will fix that to prevent recurrance of this problem in the future)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/reactive-streams/reactive-streams-jvm/issues/413#issuecomment-348994292, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAqd0diQfeTH6RXE-w8JBekO4ru59pDks5s9A5qgaJpZM4QnaAt .

ktoso commented 6 years ago

Awaiting merge of https://github.com/reactive-streams/reactive-streams-jvm/pull/418#pullrequestreview-81060775 and can cut the release then

viktorklang commented 6 years ago

@ktoso Alright, I think we should be set for the 1.0.2-RC1 release. I have pushed the tag to the repo (git fetch --tags to refresh) and it shoul be pointing to f403f4ef50b3d38f7200b9f76e916afc97247a39 . Would you mind staging the release, @ktoso? (I'll help you verify the bits)

EDIT: updated hash to signal the latest commit (updating RELEASE-NOTES.md)

ktoso commented 6 years ago

RC1 is staged: https://oss.sonatype.org/content/repositories/orgreactivestreams-1033 Let's verify it.

MANIFEST:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Created-By: 9 (Oracle Corporation)
Tool: Bnd-3.4.0.201707252008
Bnd-LastModified: 1512465241000
Export-Package: org.reactivestreams.tck;version="1.0.2-RC1";uses:="org
 .reactivestreams,org.reactivestreams.tck.flow.support,org.testng.anno
 tations",org.reactivestreams.tck.flow.support;version="1.0.2-RC1";use
 s:="org.reactivestreams.example.unicast"
Import-Package: org.reactivestreams;version="[1.0,2)",org.reactivestre
 ams.example.unicast;version="[1.0,2)",org.reactivestreams.tck.flow.su
 pport;version="[1.0,2)",org.testng;version="[5.14,6)",org.testng.anno
 tations;version="[5.14,6)"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))"
Bundle-DocURL: http://reactive-streams.org
Bundle-Vendor: Reactive Streams SIG
Bundle-Description: Reactive Streams API
Bundle-Name: reactive-streams-tck
Bundle-Version: 1.0.2-RC1
Automatic-Module-Name: org.reactivestreams.tck
Bundle-SymbolicName: org.reactivestreams.reactive-streams-tck

Non JDK9 projects correctly on language level 50 (Java 6):

$ unzip reactive-streams-tck-1.0.2-RC1.jar  > /dev/null
replace META-INF/MANIFEST.MF? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
ktoso @ 三日月~/.ivy2/cache/org.reactivestreams/reactive-streams-tck/jars
$ javap -v org/reactivestreams/tck/PublisherVerification.class | head -n10
Classfile /Users/ktoso/.ivy2/cache/org.reactivestreams/reactive-streams-tck/jars/org/reactivestreams/tck/PublisherVerification.class
  Last modified Dec 5, 2017; size 19046 bytes
  MD5 checksum da7179717833ab4ddb897fa5014cc054
  Compiled from "PublisherVerification.java"
public abstract class org.reactivestreams.tck.PublisherVerification<T extends java.lang.Object> extends java.lang.Object implements org.reactivestreams.tck.flow.support.PublisherVerificationRules
  minor version: 0
  major version: 50
  flags: ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
Constant pool:
    #1 = Fieldref           #5.#290       // org/reactivestreams/tck/PublisherVerification.publisherReferenceGCTimeoutMillis:J

Akka Streams TCK suite passed, seems no regressions.

akarnokd commented 6 years ago

:+1: RxJava 2 offline :+1: RxJava 2 Travis CI (link)

ktoso commented 6 years ago

Excellent, pushing the button then :) Since it's just an RC, assuming above sanity checks and 2 projects confirming is enough.

viktorklang commented 6 years ago

Excellent work everyone! :+1:

akarnokd commented 6 years ago

Tested with a native Java 9 Flow library: :+1: Reactive4JavaFlow with Flow.Publishers offline :+1: Reactive4JavaFlow with Flow.Publishers Travis CI (link)

However, the IdentityFlowProcessorVerification is defined wrong:

@Override
public final Publisher<T> createFailedPublisher() {
    return createFailedFlowPublisher();
}
viktorklang commented 6 years ago

Thanks for reporting, David!

Do you have time to propose a fix?

-- Cheers, √

On Dec 6, 2017 14:30, "David Karnok" notifications@github.com wrote:

Tested with a native Java 9 Flow library: 👍 Reactive4JavaFlow with Flow.Publishers offline 👍 Reactive4JavaFlow with Flow.Publishers Travis CI (link https://travis-ci.org/akarnokd/Reactive4JavaFlow/builds/312414966#L6620)

However, the IdentityFlowProcessorVerification is defined wrong:

  • requires the implementor to specify abstract methods for support structures which are provided in IdentityProcessorVerification: createFlowSubscriber, createFlowHelperPublisher, createFlowPublisher.
  • uses org.reactivestreams.X in the abstract method signatures requiring manual adapters. The abstract methods implemented from IdentityProcessorVerification just delegate without using the flow-adapter:

@Overridepublic final Publisher createFailedPublisher() { return createFailedFlowPublisher(); }

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/reactive-streams/reactive-streams-jvm/issues/413#issuecomment-349640154, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAqd-gh0BAXAC2onxTkZDpl0eU8EMWvks5s9pb-gaJpZM4QnaAt .

akarnokd commented 6 years ago

Yep, was on it right away: #419.

viktorklang commented 6 years ago

Awesome. I'll have a look soon (on my way to the airport)

-- Cheers, √

On Dec 6, 2017 14:44, "David Karnok" notifications@github.com wrote:

Yep, was on it right away: #419 https://github.com/reactive-streams/reactive-streams-jvm/pull/419.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/reactive-streams/reactive-streams-jvm/issues/413#issuecomment-349643452, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAqd7jrYr0rxo6oY83IZsZ-TS0XZg7aks5s9ppKgaJpZM4QnaAt .

viktorklang commented 6 years ago

@reactive-streams/contributors Given https://github.com/reactive-streams/reactive-streams-jvm/pull/419 I think we should issue the RC2 ASAP. Anyone disagree?

ktoso commented 6 years ago

Yeah, let's. Do you want to prep release notes?

viktorklang commented 6 years ago

@ktoso I can prepare a tag with bumped versions. Not sure about the release notes. I'll add a comment about fixing a few oversights in the verification fixture for Flow.Processor?

viktorklang commented 6 years ago

@ktoso I just updated master to https://github.com/reactive-streams/reactive-streams-jvm/commit/a894aacf6612323af504d91b482fecb5ccea680a and the tag v1.0.2-RC2 should point to that commit. Please sanity check my changes in that commit before staging the bits.

ktoso commented 6 years ago

Looking good, releasing. Includes the fixes done by @akarnokd

viktorklang commented 6 years ago

Thanks!

When I see the artifacts on Maven Central, I'll issue a tweet announcing the RC2.

Still hoping for 1.0.2 before the holidays :)

On Mon, 11 Dec 2017 at 16:17, ktoso notifications@github.com wrote:

Looking good, releasing. Includes the fixes done by @akarnokd https://github.com/akarnokd

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/reactive-streams/reactive-streams-jvm/issues/413#issuecomment-350753861, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAqd0T274MBaxyHbzIo-IAddqGAdbQHks5s_UdygaJpZM4QnaAt .

-- Cheers, √

akarnokd commented 6 years ago

1.0.2-RC2 results

:+1: RxJava 2 offline :+1: RxJava 2 Travis CI (link) :+1: Reactive4JavaFlow offline :+1: Reactive4JavaFlow Travis CI (link)

viktorklang commented 6 years ago

@akarnokd Awesome!

ktoso commented 6 years ago

Great, thanks!

viktorklang commented 6 years ago

@reactive-streams/contributors If no serious defects are reported within a week then we should be able to release 1.0.2-RC2 as 1.0.2. I have prepared the website.

viktorklang commented 6 years ago

@reactive-streams/contributors 1.0.2-RC2 has been out for a week without any issues, I propose we promote it to 1.0.2 and push the bits tomorrow or Wednesday. Is everyone on board with that?

akarnokd commented 6 years ago

Sounds good :+1:.

ktoso commented 6 years ago

sounds like a plan! :) today?

On Dec 18, 2017 14:38, "David Karnok" notifications@github.com wrote:

Sounds good 👍.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/reactive-streams/reactive-streams-jvm/issues/413#issuecomment-352427636, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHYk0oqeSympgIaZFwnpDmnGD9Fzh0Vks5tBmrkgaJpZM4QnaAt .

viktorklang commented 6 years ago

@ktoso I'll prep the branch & tags today (will need sanity check since I have a fever).

viktorklang commented 6 years ago

@ktoso Ok, I've prepared the branch (https://github.com/reactive-streams/reactive-streams-jvm/tree/1.0.2) and there's a tag to cut the release from (https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.2).

Please sanity check :)

smaldini commented 6 years ago

LGTM

ktoso commented 6 years ago

Please PR that branch so it ends up in master. LGTM. I can release from that now already though

ktoso commented 6 years ago

Confirmed changes are good, not touching any sources so it's the exact same as 1.0.2-RC2 and artifacts are staged here: https://oss.sonatype.org/content/repositories/orgreactivestreams-1035 If someone wants to check, though it's just the same as RC2 :)

Giving a bit of time, later clicking the button, looking all good.

viktorklang commented 6 years ago

@ktoso Created this PR: https://github.com/reactive-streams/reactive-streams-jvm/pull/421

I'll dl the javadoc jars and host them on the website, then prep the 1.0.2 announce docs.

ktoso commented 6 years ago

Artifacts have been released and are on their way to central: https://github.com/reactive-streams/reactive-streams-jvm/pull/421#issuecomment-352552629

viktorklang commented 6 years ago

@ktoso :+1: Preparing reactive-streams.org now

viktorklang commented 6 years ago

@ktoso Please sanity check the website updates: https://github.com/reactive-streams/reactive-streams.github.io/pull/30 :)

viktorklang commented 6 years ago

@reactive-streams/contributors Please verify the 1.0.2 artifacts in your builds as soon as you can (and they are available on Maven Central).

smaldini commented 6 years ago

Some build failing because www.reactive-streams.org/reactive-streams-1.0.2-javadoc is not yet online

viktorklang commented 6 years ago

@smaldini Ok, merged the javadoc (website update), can you re-check?

viktorklang commented 6 years ago

@reactive-streams/contributors Getting late here and my flu is getting worse. Waiting with announcement until tomorrow (also gives more time for feedback/checks before announce)

smaldini commented 6 years ago

Take care @viktorklang - Javadocs look different btw: http://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/ http://www.reactive-streams.org/reactive-streams-1.0.2-javadoc/ Not sure if its on purpose