Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0.0 stable release #28

Merged
merged 3 commits into from
Apr 5, 2017

Conversation

marcpiechura
Copy link
Contributor

No description provided.

@viktorklang
Copy link
Contributor

How many compliant implementations exist?

@akarnokd
Copy link
Contributor

akarnokd commented Mar 7, 2017

Does this mean you change it to proper release on NuGet? I can't release with prerelease dependencies due to NuGet rules.

@marcpiechura
Copy link
Contributor Author

@viktorklang afaik only Akka.Streams for the TCK, Reactor only uses the interface but @akarnokd may correct me on this part.

@akarnokd yup, we have the same issue.

@akarnokd
Copy link
Contributor

akarnokd commented Mar 7, 2017

Reactor-Core-DotNet is based on RC1 and it is currently a partial library in terms of functionality and we have only 1 TCK test (that passes). However, its design doesn't conform fully to the RS spec and needs to be reinforced (the same §3.9 problem that RxJava had). Unfortunately, I don't have time right now to fix it plus the API the library provides is outdated relative to the Java variant.

@viktorklang
Copy link
Contributor

@Silv3rcircl3 How many impls in Akka.Stream have you verified with this?

@marcpiechura
Copy link
Contributor Author

@viktorklang we have ported the Akka.Streams.TCK project too, so all impls that are verified on the jvm, if that is what you mean by "impls".

@ktoso
Copy link

ktoso commented Mar 8, 2017

It' more about if you only checked "one publisher" or all kinds of stages you have.
These are the ones we cover for example: https://github.com/akka/akka/tree/master/akka-stream-tests-tck/src/test/scala/akka/stream/tck

All are executed by the same engine, but we wanted to test the various stages independently anyway in case it'd uncover some undesired behaviours (and AFAIR it did quite a few times, and then we fixed the engine).

@akarnokd
Copy link
Contributor

akarnokd commented Mar 8, 2017

Two questions:

  • Did you change the TCK since RC1 from NuGet? If so, how about pre-releasing an RC2 (that netstandard support looks also handy).
  • How soon do you plan to release the final version?

If you could wait a few days, I can allocate some time and check the TCK with some of the more complicated ReactiveX operators (or the other way around :)).

@marcpiechura
Copy link
Contributor Author

@ktoso that's what I meant, forgot the .Test part on the project name. https://github.com/akkadotnet/akka.net/tree/dev/src/core/Akka.Streams.Tests.TCK

@akarnokd nothing has changed since the RC, also notice that only the interfaces are compiled against .Net Core , we first need to wait for NUnit to support .Net Core. So we would release another version with .Net Core support for the TCK.

What we could do instead

  • Release the interfaces as stable release with .Net Core support
  • Keep the TCK as RC and wait for more feedback

And if all looks good from your side we can release a stable TCK maybe even with .Net Core support, depending on how fast NUnit supports it.

@viktorklang
Copy link
Contributor

I'd prefer the more passing impls the better before publishing it as final.

@ktoso
Copy link

ktoso commented Mar 8, 2017

@ktoso that's what I meant, forgot the .Test part on the project name. https://github.com/akkadotnet/akka.net/tree/dev/src/core/Akka.Streams.Tests.TCK

Cool, thanks! That clarifies things :)

I wonder if a 3rd impl will appear - what's your general experience with the .NET OSS community and this specific area? Is anyone else working on an impl, is it likely to see another one? @Silv3rcircl3

@marcpiechura
Copy link
Contributor Author

TBH I don't expect to see any other implementation in the near feature, except for Reactor.
Most devs still simply use what Microsoft offers, so the .Net OSS community is not as big as the jvm one and many projects are a port of a famous library from a different stack.
But there is hope ;-) It seems that Microsoft sees the value in a grown OSS community and has OSS'ed many parts of the stack, also some of the newest features from VS 2017 are working directly with OSS frameworks, like "live unit testing" works with MsTest, XUnit and NUnit from the beginning.

But I'm only active in the OSS world for around to years so my experiences are a little bit limited.

@Aaronontheweb
Copy link

@ktoso @viktorklang IMHO, if Akka.NET and Reactor.IO make some headway in evangelizing the Reactive.Streams specification I'm sure it will get picked up elsewhere in the .NET ecosystem. As @Silv3rcircl3 mentioned, there's still a pall of "not invented in Redmond" that stymies adoption of open standards in .NET. That's changing with the new direction in which the entire .NET platform is going, but there's 15 years of inertia to be accounted for still.

@ktoso
Copy link

ktoso commented Mar 8, 2017

Yeah, I somehow was assuming this indirectly... I think it's unrealistic to require as many full impls as the JVM version had at launch, but at least lets spread the word once more a bit in case someone wants to chime in before calling the 1.0?

No idea about timeline, rather weeks I guess so all you guys can check it with the latest and then move towards releasing. Though I don't understand the NuGet question here so I may be missing something?

@akarnokd
Copy link
Contributor

akarnokd commented Mar 8, 2017

I've (re)implemented a couple of sources and operators with RC1 in my own repository with plain .NET C# (no fancy Core or Standard as I couldn't setup the project properly locally or on CI).

So far, the TCK seems to be working properly and detected mistakes in my code.

@viktorklang
Copy link
Contributor

IF things seem to work fine, and there's been multiple eyes on things, I'm OK with having it marinate for a week or two and then calling it a wrap.

@marcpiechura
Copy link
Contributor Author

Though I don't understand the NuGet question here so I may be missing something?

@ktoso the "problem" is that Nuget doesn't allow a stable release if one of your dependencies is still in beta, so we can't release a stable Akka.Streams version as long as the Reactive.Streams package is still in beta.

@viktorklang
Copy link
Contributor

@Silv3rcircl3 Alright, +1 on my part. (FWIW since I am not the right guy to review .NET code :))

@ktoso
Copy link

ktoso commented Mar 9, 2017

Though I don't understand the NuGet question here so I may be missing something?
@ktoso the "problem" is that Nuget doesn't allow a stable release if one of your dependencies is still in beta, so we can't release a stable Akka.Streams version as long as the Reactive.Streams package is still in beta.

Thanks for explaining, didn't know that - interesting that the beta etc concept is baked into the infra :)

@akarnokd
Copy link
Contributor

Update. I've implemented a bunch of IProcessors and IPublishers and here is how things turned out:

https://github.com/akarnokd/Reactive4.NET/tree/master/Reactive4.NET.Test

Number of IPublisher tests: 45
Number of unique IPublishers: 21
Number of ignored IPublisher tests: 0

Number of IProcessor tests: 13
Number of unique IProcessors: 5
Number of ignored IProcessor tests: 6

Overall test cases passed: 1446
Overall test cases skipped: 1127

There were issues with IProcessors not behaving like the TCK expected (thus currently ignored), see #29 and #30 for details.

@marcpiechura
Copy link
Contributor Author

@viktorklang @ktoso could you take a look and @akarnokd remarks ?

IMO the TCK looks stable from a technical POV and could be released after the remarks are resolved and #32 is merged.

@viktorklang
Copy link
Contributor

Hi @Silv3rcircl3, I won't have time until on Friday.

@ktoso
Copy link

ktoso commented Mar 23, 2017 via email

@marcpiechura
Copy link
Contributor Author

@viktorklang @ktoso #29 and #30 still need some feedback, would be cool if we could get a release done over the weekend or next week.

@akarnokd
Copy link
Contributor

akarnokd commented Apr 2, 2017

Could you release an RC2 first?

@ktoso
Copy link

ktoso commented Apr 2, 2017

+1 for RC releases still, since it seems we're still addressing some smaller issues here.
#29 merged, #30 Viktor addressed it seems.

@marcpiechura
Copy link
Contributor Author

Sounds reasonable, I could create a RC2 for the TCK after #36 is merged.
I would also release the interfaces as stable package to address the issue that Akka.Streams and Reactor can't be released as stable as long as the interfaces are still in beta.

@marcpiechura
Copy link
Contributor Author

So I merged the last outstanding PR and would create the release in the next few days, all fine with it?

@viktorklang
Copy link
Contributor

@Silv3rcircl3 There's a 1.0.1 being shipped for reactive-streams-jvm within a month ;-)

@marcpiechura
Copy link
Contributor Author

@viktorklang we don't want to wait any longer if possible, we have some demand for an stable Akka.Streams release ;-)

@akarnokd
Copy link
Contributor

akarnokd commented Apr 4, 2017

I'm in the process of proposing/posting changes and fixes to the JVM version, most of it relevant to this language variant as well (such as resolution to #30). If you ship 1.0.0, will you have the capacity to do 1.0.1 near the JVM release?

@viktorklang
Copy link
Contributor

Shipping the .NET 1.0.0 on parity with JVM 1.0.0 seems appropriate.
We can then do the 1.0.1 releases in relative concert.

@marcpiechura
Copy link
Contributor Author

I'm only talking about the interfaces, the TCK will remain in beta.

@ktoso
Copy link

ktoso commented Apr 4, 2017

That plan sounds good, 1.0.0 .NET on-par with existing 1.0.0 JVM makes sense.
Then we'll keep at it while we add the improvements and to on-par 1.0.1 then :)

@marcpiechura
Copy link
Contributor Author

Ok cool, I'll release 1.0.0 in a few hours, thanks all for the feedback and work 👍

@marcpiechura marcpiechura merged commit c77091e into reactive-streams:master Apr 5, 2017
@marcpiechura marcpiechura deleted the stable_release branch April 5, 2017 19:38
@akarnokd
Copy link
Contributor

akarnokd commented Apr 5, 2017

Did you upload it to nuget?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants