迈出加入 Apache IoTDB 社区的第一步!(订阅邮件、调试代码)

时间:2022-07-25
本文章向大家介绍迈出加入 Apache IoTDB 社区的第一步!(订阅邮件、调试代码),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

很多想参与项目开发的同学因为没有人领路,不知道哪些任务适合自己,对于如何参与到项目中也是一头雾水。今天就来介绍一下如何参与开发,本文主要目标是帮助大家如何加入社区。

正文 1512 字,预计阅读时间 4 分钟。

今天的内容主要包括:订阅邮件列表,寻找 issue,编译源码,调试服务器代码。

订阅邮件列表

Apache 项目的主要沟通方式是邮件列表,我们项目开发者的邮件列表为 dev@iotdb.apache.org , 只要订阅了这个邮件列表,就能接收到其他人往这个邮箱里发的邮件,同样,你向这里发的邮件别人也会接收到,类似一个延迟稍微高一些的微信群。

订阅方式是用邮箱往 dev-subscribe@iotdb.apache.org 发一封邮件,主题内容随意,可以写 subscribe。接下来会受到一封确认邮件,确认邮件里有一个链接,往这个确认链接再回一封邮件就订阅成功了。

订阅后的第一件事就是发个自我介绍啦,可以介绍一下自己的姓名、地区、公司、熟悉的语言、技术栈等等。

大家不用把邮件列表当做那么严肃的地方,其实这里边可以讨论任何和项目有关的,包括举办meetup、反馈 bug、分享设计思路,或者刚入门希望别人给介绍一些入门的任务项等,都是可以的。

刚来对待邮件列表的态度就是:不怕犯错,不怕说错,热情发言。

寻找合适的 issue

平时用的是 jira。

https://issues.apache.org/jira/projects/IOTDB/issues

此外 github 的 issue 也可以。

如果不知道哪些功能适合自己,可以来邮件列表里问,或者问我也可以。

编译源码

git clone https://github.com/apache/incubator-iotdb.git
cd incubator-iotdb
mvn clean package -DskipTests

接下来需要将 thrift/target/generated-sources/thrift 和 antlr/target/generated-sources/antlr4 目录标记成项目源代码,让 IDE 识别。

以 IDEA 标记 antlr 目录为例:

到此为止,代码中应该就没有飘红的了。

调试服务器代码

第一次调试 IoTDB,可以从两个模块入手,服务器(server)和命令行工具(cli )。

首先启动服务器,主类 IoTDB,debug 模式启动。

接下来给 TSServiceImpl 类的 executeStatement 打个断点,Cli 里写的语句都会发送给服务器,而服务器的线程就通过这个 rpc 函数处理语句了。

接下来启动命令行工具。主类为 Cli (mac、linux)或 WinCli (windows)。启动之后会报缺少参数,这个时候可以在箭头处选 Cli,然后 Edit Configuration

把类 javadoc 里的几个参数设置到 Program arguments 里,点击 Apply,OK。

然后就可以 run 启动 Cli 了(如果想调试客户端,可以 debug 模式启动)。启动之后可以在 run 的控制台里输入一个命令,这里以创建存储组为例,输入完回车,客户端进程就开始等待服务器返回结果了。

这时候会自动跳转到服务器进程的 debugger 里,就可以正式调试了。

另外一种适合学习代码的是跑测试用例,每个模块都有对应的测试用例,普通的 UT 命名都对应了(测试的类名+Test),集成测试的后缀是 IT。

总结

迈出第一步之后,就可以对照设计文档看代码啦,http://iotdb.apache.org/zh/SystemDesign/Architecture/Architecture.html 。接下来会介绍 IoTDB 的设计原理、源码解析等内容。欢迎关注!