# ----------------------------------------------------------------------
# Folders created by the various REEF runtimes during testing
# ----------------------------------------------------------------------
REEF_LOCAL_RUNTIME
REEF_MESOS_RUNTIME
REEF_YARN_RUNTIME
#
# ----------------------------------------------------------------------
# Files generated during builds
# ----------------------------------------------------------------------
target
generated
build
docs/
debug/*
.factorypath
**/dependency-reduced-pom.xml
#
# ----------------------------------------------------------------------
# DB Files
# ----------------------------------------------------------------------
*.sqlite3
#
# ----------------------------------------------------------------------
# Files generated by OutputService during runtime
# ----------------------------------------------------------------------
.test_output*
test_output*
runtime/dag/*
*.log
#
# ----------------------------------------------------------------------
# IDE settings
# ----------------------------------------------------------------------
.externalToolBuilders
nbactions*.xml
nb-configuration.xml
.settings
.classpath
.project
*.iml
.idea
atlassian-ide-plugin.xml
*.sln.DotSettings.user
#
# ----------------------------------------------------------------------
# OS Files
# ----------------------------------------------------------------------
.DS_Store
#
# ----------------------------------------------------------------------
# Temporary Files
# ----------------------------------------------------------------------
outputs/*
tmp
*~
\#*
MetricsData
.temp*
tools/*.json
**/dependency-reduced-pom.xml
#
# ----------------------------------------------------------------------
# ML Files
# ----------------------------------------------------------------------
ml/*.out
ml/*.model
venv/*
#
# ----------------------------------------------------------------------
# Unknown Files. Please clean up over time
# ----------------------------------------------------------------------
ml-data
tang.conf
*.sw[op]
-profile-*.json
#
# ----------------------------------------------------------------------
# Release related files
# ----------------------------------------------------------------------
*.releaseBackup
*.tag
release.properties
