blob: f3c814986965ba8e09e99af8fe67c3566bb160db [file] [log] [blame]
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{582:function(e,t,i){"use strict";i.r(t);var o=i(69),a=Object(o.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:"_1-work-process"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#_1-work-process"}},[e._v("#")]),e._v(" 1. work 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 you briefly. (Hi, I'm xxx ...)")])]),e._v(" "),i("li",[i("p",[e._v("Before developing a function, 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 (如 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/thulab/iotdb/issues/543 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("h3",{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("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("h2",{attrs:{id:"_2-iotdb-debugging-method"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#_2-iotdb-debugging-method"}},[e._v("#")]),e._v(" 2. IoTDB debugging method")]),e._v(" "),i("p",[e._v("Recommended Use Intellij idea. "),i("code",[e._v("mvn clean package -DskipTests")]),e._v(" After putting "),i("code",[e._v("antlr/target/generated-sources/antlr4")]),e._v(" and "),i("code",[e._v("thrift/target/generated-sources/thrift")]),e._v(" marked as "),i("code",[e._v("Source Root")]),e._v("。")]),e._v(" "),i("ul",[i("li",[i("p",[e._v("Server main function:```server/src/main/java/org/apache/iotdb/db/service/IoTDB``, 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 "-h 127.0.0.1 -p 6667 -u root -pw root"')])]),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("ul",[i("li",[e._v("all jdbc statements:executeStatement(TSExecuteStatementReq req)")]),e._v(" "),i("li",[e._v("jdbc query:executeQueryStatement(TSExecuteStatementReq req)")]),e._v(" "),i("li",[e._v("native Write interface:insertRecord(TSInsertRecordReq req)")])])]),e._v(" "),i("li",[i("p",[e._v("Storage engine org.apache.iotdb.db.engine.StorageEngine")])]),e._v(" "),i("li",[i("p",[e._v("Query engine org.apache.iotdb.db.qp.QueryProcessor")])])]),e._v(" "),i("h2",{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("ol",[i("li",[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/jt2594838/mvn-thrift-compiler/raw/master/thrift_0.12.0_0.13.0_linux.exe")])])]),e._v(" "),i("p",[e._v("It is due to some network problems (especially in China), you can:")]),e._v(" "),i("ul",[i("li",[e._v("Download the file from the URL manually;\n"),i("ul",[i("li",[e._v("https://github.com/jt2594838/mvn-thrift-compiler/blob/master/thrift_0.12.0_0.13.0_mac.exe")]),e._v(" "),i("li",[e._v("https://github.com/jt2594838/mvn-thrift-compiler/raw/master/thrift_0.12.0_0.13.0_mac.exe")])])]),e._v(" "),i("li",[e._v("Put the file to thrift/target/tools/")]),e._v(" "),i("li",[e._v("Re-run maven command like "),i("code",[e._v("mvn compile")])])])])}),[],!1,null,null,null);t.default=a.exports}}]);