# NOTE: if you modify this file, you probably need to modify the file set that
# is an input to 'maven-assembly-plugin' that generates source distribution.
# This is typically in files named 'src.xml' throughout this repository.

# Ignore files generated by the Maven build process.
target/
bin/

# Ignore generated archetypes
sdks/java/maven-archetypes/examples/src/main/resources/archetype-resources/src/
sdks/java/maven-archetypes/examples-java8/src/main/resources/archetype-resources/src/

# Ignore files generated by the Python build process.
*.py[cod]
*.egg-info/
.eggs/
.tox/
build/
dist/
distribute-*
env/
sdks/python/**/*.c
sdks/python/**/*.so
sdks/python/**/*.egg
sdks/python/LICENSE
sdks/python/NOTICE
sdks/python/README.md
sdks/python/apache_beam/portability/api/*pb2*.*

# Ignore IntelliJ files.
.idea/
*.iml
*.ipr
*.iws

# Ignore Eclipse files.
.classpath
.project
.factorypath
.checkstyle
.fbExcludeFilterFile
.apt_generated/
.settings/

# Ignore Visual Studio Code files.
.vscode/

# The build process generates the dependency-reduced POM, but it shouldn't be
# committed.
dependency-reduced-pom.xml

# Hotspot VM leaves this log in a non-target directory when java crashes
hs_err_pid*.log

# Ignore files that end with '~', since they are most likely auto-save files
# produced by a text editor.
*~

# Ignore MacOSX files.
.DS_Store

# NOTE: if you modify this file, you probably need to modify the file set that
# is an input to 'maven-assembly-plugin' that generates source distribution.
# This is typically in files named 'src.xml' throughout this repository.
