Skip to content

Conversation

Danthar
Copy link
Member

@Danthar Danthar commented Jan 19, 2017

I noticed that the resulting layout of the files are very different. Since the proto files are unchanged. It should not really matter.

@Danthar Danthar changed the title Issue 2443 Fix for Issue #2443 Jan 19, 2017
@Danthar
Copy link
Member Author

Danthar commented Jan 19, 2017

This pr only addresses: #2443

However i noticed the other proto generated classes also, aren't in their respective namespaces.

@Danthar
Copy link
Member Author

Danthar commented Jan 19, 2017

Needs some more work to fix build issues.

@Danthar Danthar self-assigned this Jan 19, 2017
@Aaronontheweb
Copy link
Member

@Danthar need to approve the updated API for Akka.Remote

@Aaronontheweb Aaronontheweb modified the milestone: 1.1.4 Jan 23, 2017
Copy link
Member

@Aaronontheweb Aaronontheweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to have some backwards compat tests here / some indication that wire format with earlier versions of Akka.Remote won't be affected

@@ -8,959 +8,6 @@
[assembly: System.Runtime.InteropServices.ComVisibleAttribute(false)]
[assembly: System.Runtime.InteropServices.GuidAttribute("78986bdb-73f7-4532-8e03-1c9ccbe8148e")]
[assembly: System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName=".NET Framework 4.5")]
public sealed class AckAndEnvelopeContainer : Google.ProtocolBuffers.GeneratedMessage<AckAndEnvelopeContainer, AckAndEnvelopeContainer.Builder>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I think this change is good, we need to check that this doesn't break the wire format with versions of Akka.NET 1.1.3 and earlier

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uhm, your comparing the wrong side here?

namespace Akka.Remote.Proto
{
public sealed class AckAndEnvelopeContainer : Google.ProtocolBuffers.GeneratedMessage<Akka.Remote.Proto.AckAndEnvelopeContainer, Akka.Remote.Proto.AckAndEnvelopeContainer.Builder>
{
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is current code.
As you can see, its still the same. Just wrapped in an namespace.

However because if the difference in layout. The entire file became hard to compare. Which is also why the api approval changes are huge.

@Danthar
Copy link
Member Author

Danthar commented Feb 6, 2017

I do understand your concerns though @Aaronontheweb . However short of manually lining up the ApiApproval before and after files. It seems like something hard to verify.

The main problem is probably, that the newer version of protobuf used, generated a different layout. Which makes comparing the changes hard.
What i could do, is regenerate the files without the namespace change. And then compare those against the files, with the namespace change.
Then the layouts should be the same. So any differences should be visible much more clearly.

Im also open to other suggestions.

@Aaronontheweb
Copy link
Member

@Danthar run one actorsystem using the latest from NuGet and have it message a second instance created from your local branch with the protobuf changes over Akka.Remote. Only sure way to know.

@Danthar
Copy link
Member Author

Danthar commented Feb 7, 2017

Yeah I realized that. However I dismissed that option, because I feel like its not an exhaustive enough test ?

Either way, ill rebuild the ChatServer example for both versions of Akka and test with that.

@Danthar
Copy link
Member Author

Danthar commented Feb 7, 2017

Ok. I manually verified that 1.1.3 clients can connect and communicate with a client running the latest changes. And vice versa.
Since i've used the ChatServer example for this. I have tested this with a server running the latest, and a server running the 1.1.3. And also with a mix of clients for both server versions, where i had a few clients running the 1.1.3 binaries, and a few running off of my branch.

It all worked like a charm. 👍

@Aaronontheweb
Copy link
Member

Cool, I'm satisfied then!

@Aaronontheweb
Copy link
Member

Tested this locally too. Was able to join a lighthouse cluster running Akka 1.1.3 using this branch, including the dotnetty transports!!!

@Aaronontheweb Aaronontheweb merged commit 0438491 into akkadotnet:dev Feb 9, 2017
@Aaronontheweb Aaronontheweb removed this from the 1.1.4 milestone Feb 9, 2017
@Danthar Danthar deleted the issue-2443 branch February 9, 2017 11:53
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.

2 participants