# 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 any offline repositories the user may have created.
**/offline-repository/**/*

# Ignore files generated by the Gradle build process.
**/.gradle/**/*
**/.gogradle/**/*
**/.nb-gradle/**/*
**/gogradle.lock
**/build/**/*
.test-infra/**/vendor/**/*
sdks/**/vendor/**/*
runners/**/vendor/**/*
**/.gradletasknamecache
**/generated/*

# Ignore sources generated into the main tree
**/src/main/generated/**
**/src/test/generated_tests/**

# Ignore files generated by the Maven build process.
**/bin/**/*
**/dependency-reduced-pom.xml
**/target/**/*

# 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/
sdks/java/maven-archetypes/gcp-bom-examples/src/main/resources/archetype-resources/src/
sdks/java/maven-archetypes/examples/src/main/resources/archetype-resources/sample.txt

# Ignore files generated by the Python build process.
**/*.pyc
**/*.pyo
**/*.pyd
**/*.egg-info/
**/.eggs/
**/nose-*.egg/
**/.tox/**/*
**/dist/**/*
**/distribute-*/**/*
**/env/**/*
**/.mypy_cache
**/.dmypy.json
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*.*
sdks/python/apache_beam/portability/api/*.yaml
sdks/python/nosetests*.xml
sdks/python/pytest*.xml
sdks/python/postcommit_requirements.txt
sdks/python/.coverage
sdks/python/coverage.xml

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

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

# Ignore Visual Studio Code files.
**/.vscode/**/*

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

# Ignore Jupyter notebook checkpoints.
**/.ipynb_checkpoints/**/*

# 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.

# JetBrains Education files
!**/study_project.xml
**/.coursecreator/**/*

.pytest_cache
.pytest_cache/**/*

# Hugo
website/www/node_modules
website/www/dist
website/www/site/resources
website/www/site/github_samples
website/www/site/code_samples
website/www/site/_config_branch_repo.toml
website/www/yarn-error.log
!website/www/site/content
