Manual upgrade procedure for Zeppelin
Basically, newer version of Zeppelin works with previous version notebook directory and configurations.
So, copying notebook and conf directory should be enough.
Instructions
- Stop Zeppelin: 
bin/zeppelin-daemon.sh stop - Copy your 
notebookandconfdirectory into a backup directory - Download newer version of Zeppelin and Install. See Install Guide.
 - Copy backup 
notebookandconfdirectory into newer version of Zeppelinnotebookandconfdirectory - Start Zeppelin:  
bin/zeppelin-daemon.sh start 
Migration Guide
Breaking changes in 0.8.x
From 0.8, Zeppelin has a new type of permission - Runners
As Runners list is empty in note so everybody can view note although Readers list is not empty. 
To set all your "writers" to "runners":
1. Copy notebook and conf directories to 0.8.0,
2. Move directory docs/assets/themes/zeppelin/note/FixReaders to new notebook directory,
3. Start the new Zeppelin and run note System/Migrate from 0.7.
Upgrading from Zeppelin 0.7 to 0.8
- From 0.8, we recommend to use 
PYSPARK_PYTHONandPYSPARK_DRIVER_PYTHONinstead ofzeppelin.pyspark.pythonaszeppelin.pyspark.pythononly effects driver. You can usePYSPARK_PYTHONandPYSPARK_DRIVER_PYTHONas using them in spark. - From 0.8, depending on your device, the keyboard shortcut 
Ctrl-LorCommand-Lwhich goes to the line somewhere user wants is not supported. 
Upgrading from Zeppelin 0.6 to 0.7
- From 0.7, we don't use 
ZEPPELIN_JAVA_OPTSas default value ofZEPPELIN_INTP_JAVA_OPTSand also the same forZEPPELIN_MEM/ZEPPELIN_INTP_MEM. If user want to configure the jvm opts of interpreter process, please setZEPPELIN_INTP_JAVA_OPTSandZEPPELIN_INTP_MEMexplicitly. If you don't setZEPPELIN_INTP_MEM, Zeppelin will set it to-Xms1024m -Xmx1024m -XX:MaxPermSize=512mby default. - Mapping from 
%jdbc(prefix)to%prefixis no longer available. Instead, you can use %[interpreter alias] with multiple interpreter setttings on GUI. - Usage of 
ZEPPELIN_PORTis not supported in ssl mode. Instead useZEPPELIN_SSL_PORTto configure the ssl port. Value fromZEPPELIN_PORTis used only whenZEPPELIN_SSLis set tofalse. - The support on Spark 1.1.x to 1.3.x is deprecated.
 - From 0.7, we uses 
pegdownas themarkdown.parser.typeoption for the%mdinterpreter. Rendered markdown might be different from what you expected - From 0.7 note.json format has been changed to support multiple outputs in a paragraph. Zeppelin will automatically convert old format to new format. 0.6 or lower version can read new note.json format but output will not be displayed. For the detail, see ZEPPELIN-212 and pull request.
 - From 0.7 note storage layer will utilize 
GitNotebookRepoby default instead ofVFSNotebookRepostorage layer, which is an extension of latter one with versioning capabilities on top of it.