-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
[ZEPPELIN-6045] Separate Thrift-related code from zeppelin-interpreter to new zeppelin-protocol module #4783
base: master
Are you sure you want to change the base?
Conversation
…pelin-interpreter
…ed code to zeppelin-protocol
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.
If you want to keep the communication protocol between Zeppelin Server <-> Zeppelin Interpreter interchangeable, then spinning off the Thrift protocol into a separate module is the right approach.
In my opinion, however, the module should then have thrift
in its name so that a future grpc module can contain grpc
in its name.
If you provide both protocols in one module, the ballast of both protocols is present.
What do you think?
@@ -284,6 +284,11 @@ | |||
<artifactId>commons-compress</artifactId> | |||
<version>${commons.compress.version}</version> | |||
</dependency> | |||
<dependency> |
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.
If you want to include this transitive dependency from the module zeppelin-interpreter
, then this should be in the upper part of the pom.xml
.
@@ -41,7 +41,7 @@ | |||
import org.apache.zeppelin.interpreter.InterpreterContext; | |||
import org.apache.zeppelin.interpreter.InterpreterResult; | |||
import org.apache.zeppelin.interpreter.InterpreterResult.Code; | |||
import org.apache.zeppelin.interpreter.thrift.InterpreterCompletion; | |||
import org.apache.zeppelin.protocol.thrift.InterpreterCompletion; |
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.
will this break 3rd interpreters?
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.
I think so.
I would like to see the actual benefits before pushing this change. for now, I only see breaking changes. |
Problem
(Therefore, instead of creating a separate zeppelin-protocol module, another alternative could be to manage Improvement GoalThis PR aims to improve protocol management by starting with separating Thrift files into a zeppelin-protocol module.
Lastly, I understand there may be concerns regarding this PR and am open to discussing alternatives. The primary goal is to efficiently manage scattered protocol-related shell scripts and generated files. Your feedback is crucial, so please feel free to share your thoughts. Thanks |
@Reamer Currently, we are uncertain about the potential breaking changes and this PR's benefits. Therefore, if I continue with this PR, I will update it. |
We need to mitigate Moreover, I agree that we change the name to |
I fully agree with that, and I also noticed the packaging time for
To address the above issue, I think we should separate the optional dependencies into individual modules, then we can eliminate them in some interpreters, but is |
Yes, you're right. It should be mandatory for all interpreters for now. However, it was because we only provide all functions within the zeppelin-interpreter module. If we provided them as a zeppelin-protocol including definition, I believe that we might have different python interpreter implementation like pure python module. :-) I want to give some chance to utilize thrift definition as contributors want to use. It's the first step. I don't know the future yet but I believe that it gives more choice to the community.
For the raft issue, let's move to the next step 👍 |
What is this PR for?
This PR is for creating a new
zeppelin-protocol
module and moving Thrift-related code from thezeppelin-interpreter
module to improve modularity and maintainability.Additionally, it includes updates to imports and dependencies required by the module separation.
What type of PR is it?
Improvement
Todos
zeppelin-protocol
modulezeppelin-protocol
pom.xml
files to include new dependencies forzeppelin-protocol
What is the Jira issue?
How should this be tested?
Questions: