*.class
*.pyc

# Package Files #
*.jar
*.war
*.ear

# interpreter
/interpreter/*
!/interpreter/lib

# interpreter temp files
derby.log
spark/metastore_db
spark-1.*-bin-hadoop*
.spark-dist

lens/lens-cli-hist.log

# Zeppelin server
zeppelin-server/local-repo
zeppelin-server/src/main/resources/zeppelin-site.xml

# conf file
conf/zeppelin-env.sh
conf/zeppelin-env.cmd
conf/zeppelin-site.xml
conf/shiro.ini
conf/keystore
conf/truststore
conf/interpreter.json
conf/notebook-authorization.json
conf/shiro.ini
conf/credentials.json
conf/helium.json

# other generated files
spark/dependency-reduced-pom.xml
reports

# webapp
zeppelin-web/node_modules
zeppelin-web/dist
zeppelin-web/.tmp
zeppelin-web/.sass-cache
zeppelin-web/npm-debug.log
zeppelin-web/yarn-error.log
zeppelin-web/bower_components
zeppelin-web/yarn.lock
**nbproject/
**node/

# R
/r/lib/
.Rhistory
/R/

# scio
.bigquery/

# project level
/logs/
/run/
**/metastore_db/
/*.log
/jobs/
/zan-repo/
/drivers/
/warehouse/
/notebook/
/local-repo/

**/sessions/
**/data/
**/build/
**/testing/
!/testing/

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db

# eclipse project files
**/.classpath
**/.project
**/.settings/
.project
.settings/
.factorypath

# intelliJ IDEA project files
.idea/
*.iml

# maven target files
target/
**/target/

# maven flattened pom files
**/.flattened-pom.xml

# Generated by Jekyll 
docs/_site/

*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
.elc
auto-save-list
tramp
.\#*
*.swp
**/dependency-reduced-pom.xml

# Generated by zeppelin-examples
/helium

# tmp files
/tmp/

# Git properties
**/git.properties
