*.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/

# 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
