# Files start with .
\..*

# Data/doc files
.*\.conf
.*\.json
.*\.txt
.*\.BUILD
.*\.patch


_helpers\.tpl
autogen\.sh
description
heron\.iml

# Directories
bazel-.*
m4
META-INF
# website, website2, and generated-ste are not part of the release
website
website2
generated-site

# travis toolchain config is not part of the release
cc_toolchain_config.bzl

# UI resources
# Apache 2.0 licenses & MIT Licenses
jquery.*\.js
# Apache 2.0 licenses & MIT Licenses
bootstrap\.min\.css
bootstrap\.min\.js
# MIT licenses
glyphicons-halflings-regular\.svg
# MIT licenses & BSD 3-Clause licenses
d3.*\.js
# MIT licenses
html5-trunk\.js
# MIT licenses
list\.min.*.js
# MIT licenses
moment\.min.*\.js
# MIT licenses
underscore-min.*\.js
underscore-min.*\.map



# Thirdparty
# 3-Clause BSD License
cpplint\.py
# BSD 3-Clause licenses
cloudpickle.py
# Boost Software License, Version 1.0
kashmir
# BSD License
semver
