Add automated script for interpreter development workflow #5130
+172
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR description
This PR introduces a new developer utility script,
dev/update_interpreter.sh, that automates the full interpreter rebuild and restart workflow during Apache Zeppelin interpreter development.The script replaces a long, error-prone manual process with a single command:
./dev/update_interpreter.sh <interpreter-name>Problem
When developing or modifying Zeppelin interpreters, developers currently need to manually execute multiple commands in the correct order to see changes take effect:
Build the interpreter module
Copy the generated JAR to the interpreter directory (frequently forgotten)
Copy interpreter-setting.json
Stop Zeppelin
Clear interpreter cache
Clean local repository
Restart Zeppelin
This workflow is:
Error-prone -> missing the JAR copy step leads to silent failures
Time-consuming -> repeated execution of 7+ commands slows iteration
Inconsistent –> cleanup steps vary between developers
Hard to debug –> no validation, logging, or clear failure feedback
Solution
This PR adds
dev/update_interpreter.sh, which automates the entire workflow with built-in validation, logging, and safety checks.Key features:
One-command workflow
./dev/update_interpreter.sh <interpreter-name>Safety & validation
Verifies interpreter module exists
Confirms JAR build success before copying
Validates Zeppelin server build before restart
Verifies Zeppelin startup status (does not silently fail)
Improved developer experience
Clear success/failure indicators
Timestamped logs
update_interpreter_<name>_<timestamp>.logAutomatically displays Zeppelin logs on startup failure
Edge-case handling
Can be run from any directory
Auto-detects Zeppelin project root
Automatically surfaces relevant logs when failures occur