-
Notifications
You must be signed in to change notification settings - Fork 28
Ported TCK and examples #9
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
Conversation
Looks awesome,I'll nervier tomorrow :) |
PS. Could I run this using mono in theory? |
@ktoso in theory yes. |
As long as Task.Run executes the task concurrently that should be OK.
Ah, ok. Good call.
Ouch, won't that create quite a bit of maintenance burden if/when the -jvm TCK gets updates? |
Yes it executes the task concurrently, it's the equivalent of scalas Future. The ThreadPool class is static and only gives you access to the managed thread pool from .Net but it's not usable as parameter if you want to provide the ability for custom implementation. Aaron is currently working on some changes in the internal Akka.Net mailboxes and want's to introduce a IRunnable interface and new dispatcher which would be close to java's Executor, so maybe we could adapt that in the future if necessary. My concern here is more about the extensibility from a users perspective, because as I understood it the parameter gives the user the ability to provide custom executors.
Do you mean when new specs are added? [TestFixture(Ignore = "Helper verification for single test")]
private sealed class Spec104WaitingVerification : IdentityProcessorVerification<int> So if in the feature another spec is added to the |
I updated the PR with the changes from #7, I also modified the build script and added a placeholder to the |
@Silv3rcircl3 Viktor's preference it to only add an entry to release notes with a PR for the release. I think we can do that and not worry about the build just yet. |
@Silv3rcircl3 the tck needs to be added to the build, so we can build and publish the package. In that context, a placeholder in |
@cconstantin |
@Silv3rcircl3 |
@ktoso @viktorklang this is good to go now. |
@cconstantin Sorry for the delay. I can merge this as-is because my C# skills is not enough for reviewing it. What would be helpful to me is answering the following questions:
Thanks! |
Hope that helps. |
@viktorklang That was easier than I thought, I have applied the TCK to our implementation and all specs are passing except |
@viktorklang fixed the last issue, now all specs are passing on our implementation too. |
… and added the unicast dll to the TCK nuget package
@Silv3rcircl3 Thanks for answering my pesky questions! |
@Silv3rcircl3 Can you please also add yourself to the https://github.com/reactive-streams/reactive-streams-dotnet/blob/master/CopyrightWaivers.txt in this PR? (As per CONTRIBUTING.MD) |
@viktorklang you're welcome. |
@Silv3rcircl3 Thanks! @cconstantin From your PoV, everything in here OK to merge? |
@viktorklang yes, good to go. Should we update the changelog to describe 1.0.0, or you'd rather do that with a separate PR? |
@cconstantin The first release when "everything is ready" needs to be 1.0.0-RC1 so people have a chance to give feedback on the TCK etc before 1.0.0 is released. |
Sounds good. Should we include that in this PR, or separate? |
@cconstantin I, personally, prefer if releases are made as first Issue, then PR, so people can discuss the release and the PR separately. |
Sounds good @viktorklang . Then let's merge this and we'll open the issue. Will take a look at the jvm repo as a template for the issue. |
if (!completed) | ||
{ | ||
subscriber.OnComplete(); | ||
completed = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good! I actually forgot to set this in the JVM TCK it seems (which still checks the right thing, but not strictly following what this test was intednded to do). Thanks, I'll fix the JVM test
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting :) I think I haven't noticed that it's not there in the jvm, because if so I have had said something.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 good job with the TCK, I'll go over the rest, maybe I'll notice something, even though I'm not C# fluent logic is pretty similar so not a big issue :)
I reviewed most of the PR, looks very good! LGTM from my side (no merge rights though). |
@viktorklang this is good to go now, reviewed by both @ktoso and me. |
Good work, gents! |
All specs are passing, but I would like to update this PR with the changes introduced in #7 after it was merged.
Some notes about the implementation.
new Subscriber() {...}
, so if needed I created a private class and for the most common ones I created helper classes (Subscriber, Subscription, Publisher)Skiped
, the reason is that I needed to create sub classes of the verification in some verification tests and although the class is private NUnit tries to run these specs as well. For exampleIdentityProcessorVerificationTest.cs
@ktoso would appreciate if you also could take a look.