IoTDB official website:https://iotdb.apache.org/
Code library:https://github.com/apache/iotdb/tree/master
Get started quickly:https://iotdb.apache.org/UserGuide/latest/QuickStart/QuickStart.html
The mailing list is where the Apache project conducts technical discussions and communication with users. Follow the mailing list to receive mail.
Mailing list address:dev@iotdb.apache.org
Follow method: Send an email to dev-subscribe@iotdb.apache.org with the email you want to receive the email, the subject content is not limited, after receiving the reply, send a confirmation email to the confirmation address again (the confirmation address is longer, it is recommended gmail mailbox).
Other mailing list:
All features or bugs that you want IoTDB to do can be raised on Jira:https://issues.apache.org/jira/projects/IOTDB/issues
You can choose issue types: bug, improvement, new feature, etc. New issues will be automatically synchronized to the mailing list (notifications@), and subsequent discussions can be left on jira or on the mailing list. When the issue is resolved, close the issue.
Joining the mailing list for the first time can introduce youself briefly. (Hi, I'm xxx ...)
Before developing a new feature, you can send an e-mail to declare the task you want to do.(Hi,I'm working on issue IOTDB-XXX,My plan is ...)
The content of all IoTDB official websites is in the docs of the project root directory:
Correspondence between versions and branches on the official website:
Precautions:
We use the Spotless plugin together with google-java-format to format our Java code. You can configure your IDE to automatically apply formatting on saving with these steps(Take idea as an example):
.*\.java. Otherwise you will get unintended reformatting in other files you edit.import org.apache.iotdb.* <blank line> import all other imports <blank line> import java.* <blank line> import static all other imports
clang-format onlyclang.format.version in the root pom.xml (currently 17.0.6, aligned with Apache TsFile); CI installs LLVM/clang-format so the default clang-format on the runner matches that versionclangFormat configuration is attached under the spotless-cpp profile in the C++ modules and activates only on JDK 11+, so run spotless:check / spotless:apply for C++ with JDK 11 or newer (CI does). JDK 8 builds elsewhere in the reactor do not load that Spotless fragment.Check only:
./mvnw -P with-cpp -pl iotdb-client/client-cpp spotless:check
./mvnw -P with-cpp -pl example/client-cpp-example spotless:check
Auto-fix:
./mvnw -P with-cpp -pl iotdb-client/client-cpp spotless:apply
./mvnw -P with-cpp -pl example/client-cpp-example spotless:apply
On Windows PowerShell, a comma inside -pl can be parsed incorrectly; use the two commands above, or quote the full -pl value, for example ./mvnw -P with-cpp "-pl=iotdb-client/client-cpp,example/client-cpp-example" spotless:check.
Temporarily skip Spotless (not recommended except emergency CI triage):
-Dspotless.skip=true
Risk: skipping formatting checks can introduce style drift between contributors and CI, and often causes follow-up format-only commits.
You can go to jira to pick up the existing issue or create your own issue and get it. The comment says that I can do this issue.
mvn spotless:check to check the code style and use mvn spotless:apply to correct the code styleRecommended use Intellij idea.
mvn clean package -DskipTests
Mark iotdb-core/antlr/target/generated-sources/antlr4 and iotdb-protocol/thrift-datanode/target/generated-sources/thrift as Source Root.
Server main function:iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode, can be started in debug mode.
Cli:iotdb-client/cli/src/main/java/org/apache/iotdb/cli/,Use Cli for linux and WinCli for windows, you can start directly with the parameter “-h 127.0.0.1 -p 6667 -u root -pw root”
Server rpc implementation (mainly used for cli and server communication, generally start interruption point here):iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/TSServiceImpl
all jdbc statements:executeStatement(TSExecuteStatementReq req)
jdbc query:executeQueryStatement(TSExecuteStatementReq req)
native Write interface:insertRecord(TSInsertRecordReq req) insertTablet(TSInsertTabletReq req)
Storage engineorg.apache.iotdb.db.storageengine.StorageEngine
Query engine org.apache.iotdb.db.queryengine
I could not download thrift-* tools, like Could not get content org.apache.maven.wagon.TransferFailedException: Transfer failed for https://github.com/apache/iotdb-bin-resources/blob/main/compile-tools/thrift-0.14-ubuntu
It is due to some network problems (especially in China), you can:
Download the file from the URL manually;
Put the file to thrift/target/tools/
Re-run maven command like mvn compile