**/*.pid
**/gc.log*
**/logs/*
**/lib/**
**/data/**

# Python runtime file
**/__pycache__/**

# Eclipse IDE files
**/.classpath
**/.project
**/.settings/
# src/main/resources/
# intellij IDE files
**/*.iml
**/.idea/
**/*.log
**/*.ipr
**/*.iws
# Apple OS X related
**/.DS_Store
derby-tsfile-db

# build generated
**/target/

# build docker images
tmp

# intermediately generated locally

tsfile-timeseries/src/main/resources/logback.out.out.xml
tsfile-timeseries/src/main/resources/logback.out.xml
tsfile-service/derby-tsfile-db/
tsfile-timeseries/src/test/resources/data
src/main/resources/metadata/mlog.txt
tsfile-jdbc/src/main/resources/output/queryRes.csv

*.txt
!iotdb-client/client-py/requirements.txt
!iotdb-client/client-py/requirements_dev.txt
!iotdb-client/client-cpp/src/main/CMakeLists.txt
!iotdb-client/client-cpp/src/test/CMakeLists.txt
!example/rest-client-c-example/CMakeLists.txt
!example/client-cpp-example/src/CMakeLists.txt


*.jar
!trigger-example.jar
!TriggerFireTimesCounter.jar
!udf-example.jar

*.gz
*.tar.gz
*.tar
*.tokens
#src/test/resources/logback.xml

### CSV ###
*.csv
### Maven ###

*.log


### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans


### NetBeans ###
**/nbproject/private/
**/nbbuild/
**/dist/
**/nbdist/
**/.nb-gradle/

### vscode project
**/.vscode/

**/lib/
/target/
*.tsfile
tsfile/src/test/resources/*.ts

### Apache release ###
local-snapshots-dir/
venv/

partitions.tmp
partitions
node_identifier

### temporary file of the distributed version ###
remote/
!integration-test/src/main/java/org/apache/iotdb/it/env/remote/

# gitpod
.theia/

classes/

### Cmake files ###
*.cmake
Makefile
**/CMakeFiles/

# Exclude copied license
iotdb-client/client-py/LICENSE

# ANTLR
iotdb-core/antlr/gen/
iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/gen/
iotdb-core/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlLexer.tokens
iotdb-core/tsfile/gen/
iotdb-core/tsfile/src/main/antlr4/org/apache/tsfile/parser/gen/

# Develocity
.mvn/.gradle-enterprise/
.mvn/.develocity/
.run/

# Relational Grammar ANTLR
iotdb-core/relational-grammar/src/main/antlr4/org/apache/iotdb/db/relational/grammar/sql/.antlr/

# Claude Code
.claude/settings.local.json
.claude/todos/
.claude/worktrees/
.claude/scheduled_tasks.json