(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{589:function(e,t,i){"use strict";i.r(t);var s=i(71),o=Object(s.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:"一、work-process"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#一、work-process"}},[e._v("#")]),e._v(" 一、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/incubator-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("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("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:"二、iotdb-debugging-method"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#二、iotdb-debugging-method"}},[e._v("#")]),e._v(" 二、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("server/target/generated-sources/antlr4")]),e._v(" and "),i("code",[e._v("service-rpc/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："),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("Client："),i("code",[e._v("client/src/main/java/org/apache/iotdb/client/")]),e._v('，Use Clinet for linux and WinClint for windows, you can start directly, need 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 client 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")])])])])}),[],!1,null,null,null);t.default=o.exports}}]);