blob: c0d826e3b7aa40406b402fac04463f5d9e8a1534 [file] [log] [blame]
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{584:function(e,t,i){"use strict";i.r(t);var a=i(69),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"iotdb-working-process"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#iotdb-working-process"}},[e._v("#")]),e._v(" IoTDB Working Process")]),e._v(" "),i("h2",{attrs:{id:"main-link"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#main-link"}},[e._v("#")]),e._v(" Main link")]),e._v(" "),i("p",[e._v("IoTDB official website:https://iotdb.apache.org/")]),e._v(" "),i("p",[e._v("Code library:https://github.com/apache/iotdb/tree/master")]),e._v(" "),i("p",[e._v("Get started quickly:http://iotdb.apache.org/UserGuide/master/Get%20Started/QuickStart.html")]),e._v(" "),i("h2",{attrs:{id:"subscribe-to-mailing-list"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#subscribe-to-mailing-list"}},[e._v("#")]),e._v(" Subscribe to mailing list")]),e._v(" "),i("p",[e._v("The mailing list is where the Apache project conducts technical discussions and communication with users. Follow the mailing list to receive mail.")]),e._v(" "),i("p",[e._v("Mailing list address:dev@iotdb.apache.org")]),e._v(" "),i("p",[e._v("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).")]),e._v(" "),i("p",[e._v("Other mailing list:")]),e._v(" "),i("ul",[i("li",[e._v("notifications@iotdb.apache.org (for JIRA information notification.)\n"),i("ul",[i("li",[e._v('If you just want to pay attention to some issues, you do not need to subscribe this mailing list.\nInstead, you just need to click "start-watching this issue" on the jira issue webpage.')])])]),e._v(" "),i("li",[e._v("commits@iotdb.apache.org (for code changes notification. Take care because this mailing list may have many emails)")]),e._v(" "),i("li",[e._v("reviews@iotdb.apache.org (for code reviews notification on Github. Take care because this mailing list may have many emails)")])]),e._v(" "),i("h2",{attrs:{id:"new-features-bug-feedback-improvements-and-more"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#new-features-bug-feedback-improvements-and-more"}},[e._v("#")]),e._v(" New features, bug feedback, improvements and more")]),e._v(" "),i("p",[e._v("All features or bugs that you want IoTDB to do can be raised on Jira:https://issues.apache.org/jira/projects/IOTDB/issues")]),e._v(" "),i("p",[e._v("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.")]),e._v(" "),i("h2",{attrs:{id:"email-discussion-content-english"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#email-discussion-content-english"}},[e._v("#")]),e._v(" Email discussion content (English)")]),e._v(" "),i("ul",[i("li",[i("p",[e._v("Joining the mailing list for the first time can introduce youself briefly. (Hi, I'm xxx ...)")])]),e._v(" "),i("li",[i("p",[e._v("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 ...)")])])]),e._v(" "),i("h2",{attrs:{id:"contributing-documents"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#contributing-documents"}},[e._v("#")]),e._v(" Contributing documents")]),e._v(" "),i("p",[e._v("The content of all IoTDB official websites is in the docs of the project root directory:")]),e._v(" "),i("ul",[i("li",[e._v("docs/SystemDesign: System Design Document-English Version")]),e._v(" "),i("li",[e._v("docs/zh/SystemDesign: System Design Document-Chinese Version")]),e._v(" "),i("li",[e._v("docs/UserGuide: User Guide English Version")]),e._v(" "),i("li",[e._v("docs/zh/UserGuide: User Guide Chinese Version")]),e._v(" "),i("li",[e._v("docs/Community: community English Version")]),e._v(" "),i("li",[e._v("docs/zh/Community: community Chinese Version")]),e._v(" "),i("li",[e._v("docs/Development: Development Guide English Version")]),e._v(" "),i("li",[e._v("docs/zh/Development: Development Guide Chinese Version")])]),e._v(" "),i("p",[e._v("Correspondence between versions and branches on the official website:")]),e._v(" "),i("ul",[i("li",[e._v("In progress -> master")]),e._v(" "),i("li",[e._v("major_version.x -> rel/major_version (eg 0.9.x -> rel/0.9)")])]),e._v(" "),i("p",[e._v("Precautions:")]),e._v(" "),i("ul",[i("li",[e._v("Images in Markdown can be uploaded to https://github.com/apache/iotdb-bin-resources for url")]),e._v(" "),i("li",[e._v("Do not use special Unicode chars, e.g., U+FF1A")]),e._v(" "),i("li",[e._v("Do not use the character of dollar (as we will use Latex to generate pdf files)")])]),e._v(" "),i("h2",{attrs:{id:"code-formatting"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#code-formatting"}},[e._v("#")]),e._v(" Code Formatting")]),e._v(" "),i("p",[e._v("We use the "),i("a",{attrs:{href:"https://github.com/diffplug/spotless/tree/main/plugin-maven",target:"_blank",rel:"noopener noreferrer"}},[e._v("Spotless\nplugin"),i("OutboundLink")],1),e._v(" together with "),i("a",{attrs:{href:"https://github.com/google/google-java-format",target:"_blank",rel:"noopener noreferrer"}},[e._v("google-java-format"),i("OutboundLink")],1),e._v(" to format our Java code. You can configure your IDE to automatically apply formatting on saving with these steps(Take idea as an example):")]),e._v(" "),i("ol",[i("li",[e._v("Download the "),i("a",{attrs:{href:"https://plugins.jetbrains.com/plugin/8527-google-java-format/versions/stable/83169",target:"_blank",rel:"noopener noreferrer"}},[e._v("google-java-format\nplugin v1.7.0.5"),i("OutboundLink")],1),e._v(", it can be installed in IDEA (Preferences -> plugins -> search google-java-format), "),i("a",{attrs:{href:"https://github.com/google/google-java-format#intellij-android-studio-and-other-jetbrains-ides",target:"_blank",rel:"noopener noreferrer"}},[e._v("More detailed setup manual"),i("OutboundLink")],1)]),e._v(" "),i("li",[e._v('Install the plugin from disk (Plugins -> little gear icon -> "Install plugin from disk" -> Navigate to downloaded zip file)')]),e._v(" "),i("li",[e._v("In the plugin settings, enable the plugin and keep the default Google code style (2-space indents)")]),e._v(" "),i("li",[e._v("Remember to never update this plugin to a later version,until Spotless was upgraded to version 1.8+.")]),e._v(" "),i("li",[e._v("Install the "),i("a",{attrs:{href:"https://plugins.jetbrains.com/plugin/7642-save-actions",target:"_blank",rel:"noopener noreferrer"}},[e._v("Save Actions\nplugin"),i("OutboundLink")],1),e._v(' , and enable the plugin, along with "Optimize imports" and "Reformat file"')]),e._v(" "),i("li",[e._v('In the "Save Actions" settings page, setup a "File Path Inclusion" for '),i("code",[e._v(".*\\.java")]),e._v(". Otherwise you will get unintended reformatting in other files you edit.")]),e._v(" "),i("li",[e._v('Fix the issues of reordering the import packages: in IDEA: choose: Preferences | Editor | Code Style | Java | imports. At the tail of the panel, there is "Import Layout", change it to:')])]),e._v(" "),i("div",{staticClass:"language-shell line-numbers-mode"},[i("pre",{pre:!0,attrs:{class:"language-shell"}},[i("code",[e._v(" "),i("span",{pre:!0,attrs:{class:"token function"}},[e._v("import")]),e._v(" org.apache.iotdb.*\n "),i("span",{pre:!0,attrs:{class:"token operator"}},[e._v("<")]),e._v("blank line"),i("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v("\n "),i("span",{pre:!0,attrs:{class:"token function"}},[e._v("import")]),e._v(" all other imports\n "),i("span",{pre:!0,attrs:{class:"token operator"}},[e._v("<")]),e._v("blank line"),i("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v("\n "),i("span",{pre:!0,attrs:{class:"token function"}},[e._v("import")]),e._v(" java.*\n "),i("span",{pre:!0,attrs:{class:"token operator"}},[e._v("<")]),e._v("blank line"),i("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v("\n "),i("span",{pre:!0,attrs:{class:"token function"}},[e._v("import")]),e._v(" static all other imports\n")])]),e._v(" "),i("div",{staticClass:"line-numbers-wrapper"},[i("span",{staticClass:"line-number"},[e._v("1")]),i("br"),i("span",{staticClass:"line-number"},[e._v("2")]),i("br"),i("span",{staticClass:"line-number"},[e._v("3")]),i("br"),i("span",{staticClass:"line-number"},[e._v("4")]),i("br"),i("span",{staticClass:"line-number"},[e._v("5")]),i("br"),i("span",{staticClass:"line-number"},[e._v("6")]),i("br"),i("span",{staticClass:"line-number"},[e._v("7")]),i("br")])]),i("h2",{attrs:{id:"contributing-code"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#contributing-code"}},[e._v("#")]),e._v(" Contributing code")]),e._v(" "),i("p",[e._v("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.")]),e._v(" "),i("ul",[i("li",[e._v("Clone the repository to your own local repository, clone to the local, and associate the apache repository as the upstream upstream repository.")]),e._v(" "),i("li",[e._v("Cut out a new branch from master. The branch name is determined by the function of this branch. It is usually called f_new_feature (such as f_storage_engine) or fix_bug (such as fix_query_cache_bug).")]),e._v(" "),i("li",[e._v("Add code style as the root java-google-style.xml in the idea")]),e._v(" "),i("li",[e._v("Modify the code and add test cases (unit test, integration test)\n"),i("ul",[i("li",[e._v("Integration test reference:server/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT")])])]),e._v(" "),i("li",[e._v("Use "),i("code",[e._v("mvn spotless:check")]),e._v(" to check the code style and use "),i("code",[e._v("mvn spotless:apply")]),e._v(" to correct the code style")]),e._v(" "),i("li",[e._v("Submit a PR, starting with [IOTDB-jira number]")]),e._v(" "),i("li",[e._v("Email to dev mailing list:(I've submitted a PR for issue IOTDB-xxx [link])")]),e._v(" "),i("li",[e._v("Make changes based on other people's reviews and continue to update until merged")]),e._v(" "),i("li",[e._v("close jira issue")])]),e._v(" "),i("h1",{attrs:{id:"iotdb-debug-guide"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#iotdb-debug-guide"}},[e._v("#")]),e._v(" IoTDB Debug Guide")]),e._v(" "),i("p",[e._v("Recommended use Intellij idea.")]),e._v(" "),i("div",{staticClass:"language- line-numbers-mode"},[i("pre",{pre:!0,attrs:{class:"language-text"}},[i("code",[e._v("mvn clean package -DskipTests\n")])]),e._v(" "),i("div",{staticClass:"line-numbers-wrapper"},[i("span",{staticClass:"line-number"},[e._v("1")]),i("br")])]),i("p",[e._v("Mark "),i("code",[e._v("antlr/target/generated-sources/antlr4")]),e._v(" and "),i("code",[e._v("thrift/target/generated-sources/thrift")]),e._v(" as "),i("code",[e._v("Source Root")]),e._v(".")]),e._v(" "),i("ul",[i("li",[i("p",[e._v("Server main function:"),i("code",[e._v("server/src/main/java/org/apache/iotdb/db/service/IoTDB")]),e._v(", can be started in debug mode.")])]),e._v(" "),i("li",[i("p",[e._v("Cli:"),i("code",[e._v("cli/src/main/java/org/apache/iotdb/cli/")]),e._v(',Use Cli for linux and WinCli for windows, you can start directly with the parameter "'),i("code",[e._v("-h 127.0.0.1 -p 6667 -u root -pw root")]),e._v('"')])]),e._v(" "),i("li",[i("p",[e._v("Server rpc implementation (mainly used for cli and server communication, generally start interruption point here):"),i("code",[e._v("server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl")])])]),e._v(" "),i("li",[i("p",[e._v("all jdbc statements:"),i("code",[e._v("executeStatement(TSExecuteStatementReq req)")])])]),e._v(" "),i("li",[i("p",[e._v("jdbc query:"),i("code",[e._v("executeQueryStatement(TSExecuteStatementReq req)")])])]),e._v(" "),i("li",[i("p",[e._v("native Write interface:"),i("code",[e._v("insertRecord(TSInsertRecordReq req)")]),e._v(" "),i("code",[e._v("insertTablet(TSInsertTabletReq req)")])])]),e._v(" "),i("li",[i("p",[e._v("Storage engine"),i("code",[e._v("org.apache.iotdb.db.engine.StorageEngine")])])]),e._v(" "),i("li",[i("p",[e._v("Query engine "),i("code",[e._v("org.apache.iotdb.db.qp.QueryProcessor")])])])]),e._v(" "),i("h1",{attrs:{id:"frequent-questions-when-compiling-the-source-code"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#frequent-questions-when-compiling-the-source-code"}},[e._v("#")]),e._v(" Frequent Questions When Compiling the Source Code")]),e._v(" "),i("p",[e._v("I could not download thrift-* tools, like "),i("code",[e._v("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")])]),e._v(" "),i("p",[e._v("It is due to some network problems (especially in China), you can:")]),e._v(" "),i("ul",[i("li",[i("p",[e._v("Download the file from the URL manually;")]),e._v(" "),i("ul",[i("li",[i("p",[e._v("https://github.com/apache/iotdb-bin-resources/blob/main/compile-tools/thrift-0.14-ubuntu")])]),e._v(" "),i("li",[i("p",[e._v("https://github.com/apache/iotdb-bin-resources/blob/main/compile-tools/thrift-0.14-MacOS")])])])]),e._v(" "),i("li",[i("p",[e._v("Put the file to thrift/target/tools/")])]),e._v(" "),i("li",[i("p",[e._v("Re-run maven command like "),i("code",[e._v("mvn compile")])])])])])}),[],!1,null,null,null);t.default=o.exports}}]);