Skip to content

Conversation

@jawad-arb123
Copy link

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>.log

  • Automatically 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

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.

1 participant