-
Notifications
You must be signed in to change notification settings - Fork 32
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
Provide remote Pyro5 compatibility for multiple remote objects #138
Provide remote Pyro5 compatibility for multiple remote objects #138
Conversation
@ldoktor I hope you don't mind a small follow up, some corner cases had to be covered too even if they are not recommend and mostly backwards compatible. |
c6e2c8e
to
fe4f431
Compare
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.
Thank you, @pevogam, for keeping this up to date. The change looks fine but TBH I don't much understand the commit message? IIUC the Pyro5.nameserver resp. Pyro4.naming are daemons that is used by the pyro package to lookup shared functions/methods? And IIUC the pyro4 has some limitations when working with pyro5 so you are adding a compat code to use 4 with 4 and 5 if available?
So far the commit message focuses on just the corner case we cover with the Pyro5 support we started earlier as this is the focus of the commit.
Yes, you get it pretty much. These are name servers that are used for resolving names of remote objects (for easier access than long hashes which are the unique default identifiers for these objects).
In this case we will use the correct name server in cases we have Pyro4 installed locally and Pyro4 installed remotely and resp. Pyro5 installed locally and Pyro5 installed remotely. The previous case would make something like Pyro4/Pyro5 locally work with Pyro4 remotely. Note that the current usage is more standard (expecting the same version) and is not a regression in functionality since many of the Pyro5 versions already have incompatible protocol with the latest (but no longer worked on) Pyro4 versions. Regarding the compat mode, the reason we went for this was to introduce the minimal amount of changes to the various remote door functionality until everything is better tested over the longer term. "Tread lightly" so to say. |
Thanks for the confirmation, would you please modify the commit message to describe what you just mentioned?...:
|
The Pyro5.nameserver resp. Pyro4.naming are name servers that are used for resolving names of remote objects (for easier access than long hashes which are the unique default identifiers for these objects). With this change we will use the correct name server if we have Pyro4 installed locally and Pyro4 installed remotely and resp. Pyro5 installed locally and Pyro5 installed remotely. Before this change we would make something like Pyro4/Pyro5 locally work with Pyro4 remotely. Note that the current usage is more standard (expecting the same version) and is not a regression in functionality since many of the Pyro5 versions already have incompatible protocol with the latest (but no longer worked on) Pyro4 versions. Sharing multiple remote objects at the same time is a more rarely used case that we now cover with Pyro5 support as well. The method we recommend remains in retrieving multiple remote objects one by one using single remote object getter and this one remains more manual and still requires some control file implementation. The changes this builds upon are 8f4c5cc where we provide compatibility between Pyro5 and Pyro4. The reason we went for this was to introduce the minimal amount of changes to the various remote door functionality until everything is better tested over the longer term. The idea was and still is to "tread lightly". Signed-off-by: Plamen Dimitrov <[email protected]>
fe4f431
to
b9563fc
Compare
Sure! Done and thanks for asking for clarifications. |
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.
Thanks, lgtm. Note to the future, the commit message doesn't need to be that exhaustive, but it does need to cover the basics (I don't want you to spend more time on commit message than on the code itself :D).
This is a more rarely used case that we could cover with Pyro5 support as well. The advertised method remains in retrieving multiple remote objects one by one using single remote object getter and this one remains more manual and requiring of control file implementation.