From 606090d092d750c1e604e0ef9e079a41b9098835 Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Tue, 17 Dec 2024 13:28:03 +0800 Subject: [PATCH] docs: standardize development docs --- src/Development/stage/Committer.md | 36 ++- src/Development/stage/ContributeGuide.md | 188 +++++++------- src/Development/stage/HowToCommit.md | 115 ++++----- src/Development/stage/HowToJoin.md | 66 ++--- src/Development/stage/HowtoContributeCode.md | 116 +++++---- src/Development/stage/VoteRelease.md | 78 +++--- src/Development/stage/format-changelist.md | 74 +++--- src/Development/stage/rpc-changelist.md | 254 +++++++++---------- 8 files changed, 448 insertions(+), 479 deletions(-) diff --git a/src/Development/stage/Committer.md b/src/Development/stage/Committer.md index a4dda3380..db3382346 100644 --- a/src/Development/stage/Committer.md +++ b/src/Development/stage/Committer.md @@ -1,22 +1,19 @@ # Become a Committer @@ -73,5 +70,4 @@ See the [ASF documentation](https://www.apache.org/dev/committers.html#committer - They accept and integrate feedback on their code - They know, follow, and enforce IoTDB's practices while reviewing/merging code - style, documentation, testing, backward compatibility, etc. - -The code of conduct is derived from [Apache Beam](https://beam.apache.org/contribute/become-a-committer/). \ No newline at end of file +The code of conduct is derived from [Apache Beam](https://beam.apache.org/contribute/become-a-committer/). diff --git a/src/Development/stage/ContributeGuide.md b/src/Development/stage/ContributeGuide.md index 34bc186b3..0b36f7946 100644 --- a/src/Development/stage/ContributeGuide.md +++ b/src/Development/stage/ContributeGuide.md @@ -1,107 +1,102 @@ # IoTDB Working Process ## Main link -IoTDB official website:https://iotdb.apache.org/ +IoTDB official website: -Code library:https://github.com/apache/iotdb +Code library: -Code library for go language: https://github.com/apache/iotdb-client-go +Code library for go language: -Docs library:https://github.com/apache/iotdb-docs +Docs library: -Library for resources (project's documents, compiler, etc): https://github.com/apache/iotdb-bin-resources +Library for resources (project's documents, compiler, etc): -Get started quickly:http://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart_apache.html +Get started quickly: -Jira Task Management:https://issues.apache.org/jira/projects/IOTDB/issues +Jira Task Management: -Wiki Document Management:https://cwiki.apache.org/confluence/display/IOTDB/Home\ +Wiki Document Management: -Mailing list: https://lists.apache.org/list.html?dev@iotdb.apache.org +Mailing list: -Everyday build: https://ci-builds.apache.org/job/IoTDB/job/IoTDB-Pipe/job/master/ +Everyday build: -Slack: https://apacheiotdb.slack.com/join/shared_invite/zt-qvso1nj8-7715TpySZtZqmyG5qXQwpg#/shared-invite/email +Slack: ## Subscribe to mailing list 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). +Mailing list address: +Follow method: Send an email to 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: -* notifications@iotdb.apache.org (for JIRA information notification.) - * If you only want to receive individual Jira notifications that you are interest in, you do not need to subscribe this mailing list. Instead, you just need to click "start-watching this issue" on the jira issue webpage or just comment on this issue. -* commits@iotdb.apache.org (Any code changes will be notified here, please note that this mailing list will be very large) -* reviews@iotdb.apache.org (Any code review comments will be notified here, please note that this mailing list will be very large) - +- (for JIRA information notification.) + - If you only want to receive individual Jira notifications that you are interest in, you do not need to subscribe this mailing list. Instead, you just need to click "start-watching this issue" on the jira issue webpage or just comment on this issue. +- (Any code changes will be notified here, please note that this mailing list will be very large) +- (Any code review comments will be notified here, please note that this mailing list will be very large) ## New features, bug feedback, improvements and more -All features or bugs that you want IoTDB to do can be raised on Jira:https://issues.apache.org/jira/projects/IOTDB/issues +All features or bugs that you want IoTDB to do can be raised on Jira: -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. +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. ## Email discussion content (English) -* Joining the mailing list for the first time can introduce youself briefly. (Hi, I'm xxx ...) +- 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 ...) +- 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 ...) ## Contributing documents -The content of all IoTDB official websites is in the src directory of the https://github.com/apache/iotdb-docs: +The content of all IoTDB official websites is in the src directory of the : -* src/UserGuide: User Guide English Version -* src/zh/UserGuide: User Guide Chinese Version -* src/Community: community English Version -* src/zh/Community: community Chinese Version -* src/Development: Development Guide English Version -* src/zh/Development: Development Guide Chinese Version +- src/UserGuide: User Guide English Version +- src/zh/UserGuide: User Guide Chinese Version +- src/Community: community English Version +- src/zh/Community: community Chinese Version +- src/Development: Development Guide English Version +- src/zh/Development: Development Guide Chinese Version Correspondence between versions and directory: -* In progress -> src/UserGuide/Master, src/zh/UserGuide/Master -* major_version.x -> rel/major_version (eg 1.1.x -> V1.1.x) +- In progress -> src/UserGuide/Master, src/zh/UserGuide/Master +- major_version.x -> rel/major_version (eg 1.1.x -> V1.1.x) Precautions: -* Images in Markdown can be uploaded to .vuepress/public/img and referenced directly in Markdown -* Do not use special Unicode chars, e.g., U+FF1A -* Do not use the character of dollar (as we will use Latex to generate pdf files) +- Images in Markdown can be uploaded to .vuepress/public/img and referenced directly in Markdown +- Do not use special Unicode chars, e.g., U+FF1A +- Do not use the character of dollar (as we will use Latex to generate pdf files) ## Code Formatting We use the [Spotless plugin](https://github.com/diffplug/spotless/tree/main/plugin-maven) together with [google-java-format](https://github.com/google/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): -1. Download the [google-java-format +1. Download the [google-java-format plugin v1.7.0.5](https://plugins.jetbrains.com/plugin/8527-google-java-format/versions/stable/83169), it can be installed in IDEA (Preferences -> plugins -> search google-java-format), [More detailed setup manual](https://github.com/google/google-java-format#intellij-android-studio-and-other-jetbrains-ides) 2. Install the plugin from disk (Plugins -> little gear icon -> "Install plugin from disk" -> Navigate to downloaded zip file) 3. In the plugin settings, enable the plugin and keep the default Google code style (2-space indents) @@ -110,19 +105,22 @@ plugin](https://github.com/diffplug/spotless/tree/main/plugin-maven) together wi plugin](https://plugins.jetbrains.com/plugin/7642-save-actions) , and enable the plugin, along with "Optimize imports" and "Reformat file" 6. In the "Save Actions" settings page, setup a "File Path Inclusion" for `.*\.java`. Otherwise you will get unintended reformatting in other files you edit. 7. 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: -```shell - import org.apache.iotdb.* - - import all other imports - - import java.* - - import static all other imports -``` + + ```shell + import org.apache.iotdb.* + + import all other imports + + import java.* + + import static all other imports + ``` + 8. Before you submit codes, you can use `mvn spotless:check` to check your codes manually, -and use `mvn spotless:apply` to format your codes. + and use `mvn spotless:apply` to format your codes. + +## Code Style -## Code Sytle We use the [maven-checkstyle-plugin](https://checkstyle.sourceforge.io/config_filefilters.html) to make Java codes obey a consistent ruleset defined in [checkstyle.xml](https://github.com/apache/iotdb/blob/master/checkstyle.xml) under the project root. You can reference the code style rules in the file. After development, you can use `mvn validate` to check whether your codes satisfy the style rules. @@ -143,16 +141,16 @@ In IDEA, you can follow these steps to change those inconsistent style formattin 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. -* Clone the repository to your own local repository, clone to the local, and associate the apache repository as the upstream upstream repository. -* 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). -* Add code style as the root java-google-style.xml in the idea -* Modify the code and add test cases (unit test, integration test) - * Integration test reference:server/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT -* Use `mvn spotless:check` to check the code style and use `mvn spotless:apply` to correct the code style -* Submit a PR, starting with [IOTDB-jira number] -* Email to dev mailing list:(I've submitted a PR for issue IOTDB-xxx [link]) -* Make changes based on other people's reviews and continue to update until merged -* close jira issue +- Clone the repository to your own local repository, clone to the local, and associate the apache repository as the upstream upstream repository. +- 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). +- Add code style as the root java-google-style.xml in the idea +- Modify the code and add test cases (unit test, integration test) + - Integration test `reference:server/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT` +- Use `mvn spotless:check` to check the code style and use `mvn spotless:apply` to correct the code style +- Submit a PR, starting with `[`IOTDB-jira number]` +- Email to dev mailing list: (I've submitted a PR for issue IOTDB-xxx [link]) +- Make changes based on other people's reviews and continue to update until merged +- close jira issue # IoTDB Debug Guide @@ -160,9 +158,9 @@ You can go to jira to pick up the existing issue or create your own issue and ge ### Intellij idea -It is recommended to use Intellij idea。```mvn clean package -DskipTests``` +It is recommended to use Intellij idea。`mvn clean package -DskipTests` -Mark ```antlr/target/generated-sources/antlr4``` and```thrift/target/generated-sources/thrift``` as ```Source Root```。 +Mark `antlr/target/generated-sources/antlr4` and`thrift/target/generated-sources/thrift` as `Source Root`。 ### Eclipse @@ -174,36 +172,32 @@ If the version after eclipse 2019 import -> Maven -> Existing Maven Projects - # Frequent Questions When Compiling the Source Code ->Q: I could not download thrift-* tools, like `Could not get content +> Q: 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: +It is due to some network problems (especially in China), you can: + +- Download the file from the URL manually; - * Download the file from the URL manually; - * https://github.com/apache/iotdb-bin-resources/blob/main/compile-tools/thrift-0.14-ubuntu + - - * https://github.com/apache/iotdb-bin-resources/blob/main/compile-tools/thrift-0.14-MacOS + - - * Put the file to thrift/target/tools/ +- Put the file to thrift/target/tools/ - * Re-run maven command like `mvn compile` +- Re-run maven command like `mvn compile` - - >Q: IConfigNodeRPCService class is unrecognized (IDEA can not find the class even though we have generated it) +> Q: IConfigNodeRPCService class is unrecognized (IDEA can not find the class even though we have generated it) - It is because Thrift generate the file too large, which exceeds the lines that IDEA can parse by default. You can find that file and then you will see IDEA claims that. To make it work, you can: - - * Click "Help" menu of IDEA - * Choose "Edit Customed Properties" - * On the opened file (`idea.properties`), add: `idea.max.intellisense.filesize=9000` - * Restart IDEA - - +It is because Thrift generate the file too large, which exceeds the lines that IDEA can parse by default. You can find that file and then you will see IDEA claims that. To make it work, you can: +- Click "Help" menu of IDEA +- Choose "Edit Customed Properties" +- On the opened file (`idea.properties`), add: `idea.max.intellisense.filesize=9000` +- Restart IDEA -## Recommended Debug Tool +## Recommended Debug Tool -The initial committer of IoTDB is using this [Java profiler](https://www.ej-technologies.com/products/jprofiler/overview.html) to debug. Welcome all IoTDB contributors to use it. +The initial committer of IoTDB is using this [Java profiler](https://www.ej-technologies.com/products/jprofiler/overview.html) to debug. Welcome all IoTDB contributors to use it. diff --git a/src/Development/stage/HowToCommit.md b/src/Development/stage/HowToCommit.md index e6378fb40..f6a5639c7 100644 --- a/src/Development/stage/HowToCommit.md +++ b/src/Development/stage/HowToCommit.md @@ -1,25 +1,22 @@ -# Howto Submit Code +# How to Submit Code ## Contribution @@ -43,7 +40,7 @@ Visit the apache/iotdb project’s [github page](https://github.com/apache/iotdb - Clone the source code to local machine: -``` +```bash git clone https://github.com//iotdb.git ``` @@ -53,14 +50,14 @@ After the clone is done, the origin remote will point to the default branch of t - add apache/iotdb as upstream remote: -``` +```bash cd iotdb git remote add upstream https://github.com/apache/iotdb.git ``` - Check the local repository’s remotes -``` +```bash git remote -v origin https://github.com//iotdb.git (fetch) origin https://github.com//iotdb.git(push) @@ -68,17 +65,17 @@ upstream https://github.com/apache/iotdb.git (fetch) upstream https://github.com/apache/iotdb.git (push) ``` -- Create a new branch to start working:(e.g. fix) +- Create a new branch to start working. (e.g. fix) -``` +```bash git checkout -b fix ``` You can make code changes after creation. -- Push the changes to a remote repository:(e.g. fix) +- Push the changes to a remote repository. (e.g. fix) -``` +```bash git commit -a -m "" git push origin fix ``` @@ -91,67 +88,67 @@ When submitting code on git, you should pay attention to: - Keep the repository clean: - - Do not submit binary files, so that the size of the repository only increases due to changes in the code. + - Do not submit binary files, so that the size of the repository only increases due to changes in the code. - - Do not submit generated code. + - Do not submit generated code. - The log should have meaning: - - Title is jira numbered: [IOTDB-jira number] + - Title is jira numbered: `[IOTDB-jira number]` - - Title is the issue number of GitHub: [ISSUE-issue number] + - Title is the issue number of GitHub: `[ISSUE-issue number]` - - Write #XXXX in the content for association. + - Write #XXXX in the content for association. ### Create PR -Goto your github page, find the apache/servicecomb-website project, swich to the branch you just pushed, click on `New pull request` and then `Create pull request`, see the image below:If you solve the [issues](https://issues.apache.org/jira/projects/IOTDB/issues), you need to add [IOTDB-xxx] at the beginning,see the image below: +Goto your github page, find the apache/servicecomb-website project, switch to the branch you just pushed, click on `New pull request` and then `Create pull request`, see the image below:If you solve the [issues](https://issues.apache.org/jira/projects/IOTDB/issues), you need to add `[IOTDB-xxx]` at the beginning,see the image below: ![](https://user-images.githubusercontent.com/37333508/79414865-5f815480-7fde-11ea-800c-47c7dbad7648.png) -Congrautulations, now you have succesfully submitted a PR. For more on PR, please read [collaborating-with-issues-and-pull-requests](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) +Congratulations, now you have successfully submitted a PR. For more on PR, please read [collaborating-with-issues-and-pull-requests](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) ### Resolve conflicts When a same piece of file is edited by multiple person simultaneously, conflicts can occur. It can be resolved as follow: -1:Switch to the master branch +1. Switch to the master branch -``` -git checkout master -``` + ```bash + git checkout master + ``` -2:Pull the upstream’s master branch +2. Pull the upstream’s master branch -``` -git pull upstream master -``` + ```bash + git pull upstream master + ``` -3:Switch back to the branch we are working on(e.g. fix) +3. Switch back to the branch we are working on(e.g. fix) -``` -git checkout fix -``` + ```bash + git checkout fix + ``` -4:Rebase the working branch onto the master branch +4. Rebase the working branch onto the master branch -``` -git rebase -i master -``` + ```bash + git rebase -i master + ``` -A list of commits will be listed on your text editor. Normally we can just save and exit. Git will now apply the commits one by one onto the master branch until it encounters a conflict. When this happens, the rebase process is paused. We need to resolve the conflicts, then execute + A list of commits will be listed on your text editor. Normally we can just save and exit. Git will now apply the commits one by one onto the master branch until it encounters a conflict. When this happens, the rebase process is paused. We need to resolve the conflicts, then execute -``` -git add . -git rebase --continue -``` + ```bash + git add . + git rebase --continue + ``` -Repeat this process until all commits are successfully applied. And finally run + Repeat this process until all commits are successfully applied. And finally run -5:to push the resolved branch to remote origin +5. to push the resolved branch to remote origin -``` -git push -f origin fix -``` + ```bash + git push -f origin fix + ``` The code of conduct is derived from[Apache ServiceComb](http://servicecomb.apache.org/developers/submit-codes/) diff --git a/src/Development/stage/HowToJoin.md b/src/Development/stage/HowToJoin.md index 156548ad4..508d24855 100644 --- a/src/Development/stage/HowToJoin.md +++ b/src/Development/stage/HowToJoin.md @@ -1,65 +1,65 @@ # IoTDB Contributor Beginning + ## Subscribe to the mailing list (dev@iotdb.apache.org) + The mailing list is the only communication channel that Apache designates for open source contributors. So try to make discussions on the mailing list as much as possible. The mailing list is essentially a mailbox. After subscription, all emails sent to this mailbox will be forwarded to the subscribed mailbox. The subscription method is as follows: - 1. Sending subscription email: Send an email to [dev-subscribe@iotdb.apache.org](dev-subscribe@iotdb.apache.org) with any subject you want. - 2. Confirming subscription: You will receive a subscription confirmation email from iotdb.apache.org after completing the previous step. Confirm your subscription by sending another email to this email with any subject matter. +1. Sending subscription email: Send an email to [dev-subscribe@iotdb.apache.org](dev-subscribe@iotdb.apache.org) with any subject you want. +2. Confirming subscription: You will receive a subscription confirmation email from iotdb.apache.org after completing the previous step. Confirm your subscription by sending another email to this email with any subject matter. ## Create a development platform account - 1. Creating Jira account: [https://issues.apache.org/jira/projects/IOTDB/issues](https://issues.apache.org/jira/projects/IOTDB/issues) in order to claim issues. - 2. Creating Confluence account: [https://cwiki.apache.org/confluence/display/IOTDB/Home](https://cwiki.apache.org/confluence/display/IOTDB/Home) . It is then used to write design documents. +1. Creating Jira account: [https://issues.apache.org/jira/projects/IOTDB/issues](https://issues.apache.org/jira/projects/IOTDB/issues) in order to claim issues. +2. Creating Confluence account: [https://cwiki.apache.org/confluence/display/IOTDB/Home](https://cwiki.apache.org/confluence/display/IOTDB/Home) . It is then used to write design documents. After creation, please send an email to the mailing list including **self introduction**, **Jira ID** and **Confluence ID**. The community PMC will add permissions to the account. ## Enter user/development chat group - - QQ user group: 659990460 - - WeChat user group: IoTDB 数据库交流x群 - - Slack: [Apache IoTDB Community](https://join.slack.com/t/apacheiotdb/shared_invite/zt-qvso1nj8-7715TpySZtZqmyG5qXQwpg) +- QQ user group: 659990460 +- WeChat user group: IoTDB 数据库交流 x 群 +- Slack: [Apache IoTDB Community](https://join.slack.com/t/apacheiotdb/shared_invite/zt-qvso1nj8-7715TpySZtZqmyG5qXQwpg) ## Subscribe WeChat public account + Scan the QR code to subscribe official public account: Apache IoTDB ![IoTDB WeChat public account QR](https://user-images.githubusercontent.com/7240743/98633970-73671c00-235d-11eb-9913-f38e570fcfc8.png) ## Long term considerations + ### Learn the basic use of IoTDB - - [Download and Setup](https://iotdb.apache.org/UserGuide/Master/QuickStart/WayToGetIoTDB.html) - - [IoTDB Quick Start](https://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart_apache.html) - - [Data Concept](https://iotdb.apache.org/UserGuide/Master/Data-Concept/Data-Model-and-Terminology.html) - - [API](https://iotdb.apache.org/UserGuide/Master/API/Programming-Java-Native-API.html) +- [Download and Setup](https://iotdb.apache.org/UserGuide/Master/QuickStart/WayToGetIoTDB.html) +- [IoTDB Quick Start](https://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart_apache.html) +- [Data Concept](https://iotdb.apache.org/UserGuide/Master/Data-Concept/Data-Model-and-Terminology.html) +- [API](https://iotdb.apache.org/UserGuide/Master/API/Programming-Java-Native-API.html) ### Learn to debug IoTDB - - [How to debug IoTDB server](https://my.oschina.net/u/3664598/blog/4500279) +- [How to debug IoTDB server](https://my.oschina.net/u/3664598/blog/4500279) ### Understand the internal design of IoTDB - - [IoTDB design documentation](https://cwiki.apache.org/confluence/display/IOTDB/Home) +- [IoTDB design documentation](https://cwiki.apache.org/confluence/display/IOTDB/Home) ### Find to-do tasks - - [Resolve issues on Jira](https://issues.apache.org/jira/projects/IOTDB/issues) - +- [Resolve issues on Jira](https://issues.apache.org/jira/projects/IOTDB/issues) diff --git a/src/Development/stage/HowtoContributeCode.md b/src/Development/stage/HowtoContributeCode.md index 48b38d07f..bc4241e4e 100644 --- a/src/Development/stage/HowtoContributeCode.md +++ b/src/Development/stage/HowtoContributeCode.md @@ -1,80 +1,85 @@ # How to Contribute Code + ## Process + Tasks are managed as issues in JIRA. The full lifecycle of an Issue: Create an issue -> assign an issue -> submit a pr(pull request) -> review a pr -> squash merge a pr -> close an issue. ## Contributing Conventions - ### Creating an Issue - There are a few things to keep in mind when creating an issue in [ JIRA ](https://issues.apache.org/JIRA/projects/IOTDB/issues) - 1. Naming: Try to make it clear and easy to understand. Examples include supporting a new aggregate query function (avg) and optimizing the performance of querying raw data . The name of the issue will later be used as the release note. +### Creating an Issue + +There are a few things to keep in mind when creating an issue in [JIRA](https://issues.apache.org/JIRA/projects/IOTDB/issues) - 2. Description: Issue of new features and improvements should be clear. Bug reports should cover the environment, load, phenomenon (abnormal log), the affected version(s) , etc. And it's best to include ways to reproduce the bug. +1. Naming: Try to make it clear and easy to understand. Examples include supporting a new aggregate query function (avg) and optimizing the performance of querying raw data . The name of the issue will later be used as the release note. - ### Assigning an Issue - When assigning an issue in JIRA for yourself, it's recommended to add the comment, "I'm doing this", otherwise there might be duplication of effort. +2. Description: Issue of new features and improvements should be clear. Bug reports should cover the environment, load, phenomenon (abnormal log), the affected version(s) , etc. And it's best to include ways to reproduce the bug. + +### Assigning an Issue + +When assigning an issue in JIRA for yourself, it's recommended to add the comment, "I'm doing this", otherwise there might be duplication of effort. Note: If you can't assign an issue, it is because your account doesn't have the necessary permission. -To address this, please send an email to the dev@iotdb.apache.org mailing list with the title of [application] apply for permission to assign issues to XXX (your JIRA username).。 +To address this, please send an email to the mailing list with the title of \[application] apply for permission to assign issues to XXX (your JIRA username).。 + ### Submitting a PR + #### What you need to submit -Issue type : New Feature -1.Submit the user manual and the pr for code changes. +Issue type : New Feature -A user manual is mainly for helping users understand how the functions work and how to use them. It is recommended to contain scenario and background, configuration, interface description and examples. The user manual of the official website is placed in the src/UserGuide folder of apache/iotdb-docs repository. To update the user manual directory, including adding, deleting documents and renaming documents, you need to make corresponding changes in the file(path:src/.vuepress/sidebar) in the main branch. +1. Submit the user manual and the PR for code changes. -2.Submit UT (unit test) or IT (integration test). + A user manual is mainly for helping users understand how the functions work and how to use them. It is recommended to contain scenario and background, configuration, interface description and examples. The user manual of the official website is placed in the src/UserGuide folder of apache/iotdb-docs repository. To update the user manual directory, including adding, deleting documents and renaming documents, you need to make corresponding changes in the file(path: `src/.vuepress/sidebar`) in the main branch. +2. Submit UT (unit test) or IT (integration test). -When adding unit tests or integration tests , try to cover as many cases as possible. xxTest(path: iotdb/server/src/test/java/org/apache/iotdb/db/query/aggregation/) and xxIT(path: iotdb/integration/src/test/java/org/apache/iotdb/db/integration/) can be used as reference. +When adding unit tests or integration tests , try to cover as many cases as possible. xxTest(path: `iotdb/server/src/test/java/org/apache/iotdb/db/query/aggregation/`) and xxIT(path: `iotdb/integration/src/test/java/org/apache/iotdb/db/integration/`) can be used as reference. Issue type : Improvement -1.Submit the code and UT(if importing new scenario) -2.etter to submit test results, including quantified improvements and possible negative effects. +1. Submit the code and UT(if importing new scenario) +2. Better to submit test results, including quantified improvements and possible negative effects. Issue type : Bug -Submit UT or IT that can reproduce the bug. +Submit UT or IT that can reproduce the bug. #### Coding Reminders + Branch management -The IoTDB version naming method is 0.{major version}.{minor version}. For example, for version 0.12.4, 12 is the major version and 4 is the minor version. +The IoTDB version naming method is 0.{major version}.{minor version}. For example, for version 0.12.4, 12 is the major version and 4 is the minor version. -As the current development branch, the master branch corresponds to the next major release version. When each major version is released for the first time, a separate branch will be created for archiving. For example, codes of the 0.12.x versions are placed under the rel/0.12 branch. +As the current development branch, the master branch corresponds to the next major release version. When each major version is released for the first time, a separate branch will be created for archiving. For example, codes of the 0.12.x versions are placed under the rel/0.12 branch. If a bug of a released version is found and fixed, the bugfix pr should be submitted to all branches that are newer than the specific branch. For example, a pr which is about a version 0.11.x bugfix should be submitted to rel/0.11 branch, rel/0.12 branch and master branch. Code formatting -It is required to use "mvn spotless:apply" to format the code before committing, otherwise, the ci code format check will fail. +It is required to use "mvn spotless:apply" to format the code before committing, otherwise, the ci code format check will fail. Notes 1.The default values need to be consistent between iotdb-datanode.properties file and IoTDBConfig file. -2.To modify the configuration parameters, the following files need to be modified +2.To modify the configuration parameters, the following files need to be modified a.Configuration file: iodtb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties @@ -85,9 +90,10 @@ c. Documentation: apache/iotdb-docs/src/UserGuide/{version}/Reference/DataNode-C 3.To modify configuration parameters in IT and UT, you need to modify them in the method annotated by @before and reset them in the method annotated by @after. In this way, you can avoid impact on other tests. The parameters of the compaction module are placed in the CompactionConfigRestorer file. #### PR Naming -Format: [To branch] [Jira number] PR name -Example: [To rel/0.12] [IoTDB-1907] implement customized sync process: sender +Format: `[To branch] [Jira number] PR name` + +Example: `[To rel/0.12] [IoTDB-1907] implement customized sync process: sender` To branch @@ -99,44 +105,49 @@ The name should start with a JIRA number so that the PR can be automatically lin This auto-linking won't happen if the PR is created without any JIRA number or with one that is improper, in which case you need to correct the PR name and manually paste the PR link to the issue page by adding a comment or attaching a link. #### PR Description + Usually, the PR name can't reflect all changes, so it is better to add a description about what has been changed and give explanations for any difficult-to-understand part. The description of a bug-fixing pr needs to cover the cause of the bug and how to fix it, as well as the added UT/IT test cases and associated negative effects. #### After Submitting a PR -Send to the dev@iotdb.apache.org mailing list an email that describes the PR in detail, then carefully read and respond to all review comments, and make changes after reaching a consensus. +Send to the mailing list an email that describes the PR in detail, then carefully read and respond to all review comments, and make changes after reaching a consensus. ### Reviewing a PR + Checklist + 1. Is the PR named correctly? and whether any new feature and bug fix have an issue number. -2. Is PR description sufficiently clear? +2. Is PR description sufficiently clear? 3. Are UT (unit test) or performance test reports submitted? 4. Is the user manual of the new feature submitted? -5. It should not contain code modifications for other issues. Irrelevant modifications should be placed in other PR. +5. It should not contain code modifications for other issues. Irrelevant modifications should be placed in other PR. How to review a pr -1. Click Files changed - +1. Click Files changed + 2. Add review comments. First, move your mouse to the left. And then there will be a plus sign, click the plus sign. Second, write comments. Third, click Start a Review. At this step, all review comments will be temporarily saved, which others can not see. -3. Submit review. After all the comments are added, click Review Changes and select your opinion. Select "Approve" for those that can be combined. Select "Request Changes" or "Comment" for those that need to be modified. Select "Comment" for those that are not sure. Finally, submit a review and only the person submitting the PR can see the review. - +3. Submit review. After all the comments are added, click Review Changes and select your opinion. Select "Approve" for those that can be combined. Select "Request Changes" or "Comment" for those that need to be modified. Select "Comment" for those that are not sure. Finally, submit a review and only the person submitting the PR can see the review. + ### Merging a PR -Make sure that all review comments are responded. -Obtain approval from at least 1 committer. +Make sure that all review comments are responded. + +Obtain approval from at least 1 committer. Choose squash merge. You can choose rebase only when the author has only one commit record with a clear commit log. Close the corresponding issue in JIRA, and mark the repaired or completed version. Note that solving or closing an issue requires adding a pr or description to the issue, so that changes can be tracked via the issue. ## How to Prepare User Manual and Design Document -User manual and other documentation on the official website are maintained in the apache/iotdb-docs repository. -The index items of each page of the official website are maintained in the file "src/.vuepress/sidebar" of the main branch, while the specific content of the user manual is maintained in the directory of the corresponding version (for example, user manual for 1.1 is in src/UserGuide/V1.1.x). +User manual and other documentation on the official website are maintained in the apache/iotdb-docs repository. + +The index items of each page of the official website are maintained in the file "src/.vuepress/sidebar" of the main branch, while the specific content of the user manual is maintained in the directory of the corresponding version (for example, user manual for 1.1 is in src/UserGuide/V1.1.x). User manual @@ -146,9 +157,10 @@ It is recommended that the user manual contains scenario and background, configu Design document It is mainly for helping developers understand how to implement a function, including the organization of code modules and algorithms. -It is recommended that the design document contains background, design goals, idea, main module, interface design. +It is recommended that the design document contains background, design goals, idea, main module, interface design. ### Modifying User Manual + Other than modifying different files, the process is the same as contributing codes. The English user manual is placed in the src/UserGuide folder. @@ -157,4 +169,4 @@ To update the user manual directory, including adding, deleting documents and re ### Modifying the Top Navigation Bar of the Official Website -Search for nav in the file(path:src/.vuepress/navbar/en.ts), and make corresponding modifications by referencing the existing code, then submit a PR and wait for merging. Documents to be added can be placed in the src folder. \ No newline at end of file +Search for nav in the file(path:src/.vuepress/navbar/en.ts), and make corresponding modifications by referencing the existing code, then submit a PR and wait for merging. Documents to be added can be placed in the src folder. diff --git a/src/Development/stage/VoteRelease.md b/src/Development/stage/VoteRelease.md index 8eb9b5bc0..c4afbbbb3 100644 --- a/src/Development/stage/VoteRelease.md +++ b/src/Development/stage/VoteRelease.md @@ -1,37 +1,34 @@ # How to vote for a release For non-Chinese users, please read -https://cwiki.apache.org/confluence/display/IOTDB/Validating+a+staged+Release + ## Download everything under voting version / rc -https://dist.apache.org/repos/dist/dev/iotdb/ + ## Import the public key of the release manager -https://dist.apache.org/repos/dist/dev/iotdb/KEYS + At the bottom is the public key of the Release Manager (RM) @@ -51,10 +48,10 @@ pub rsa4096/28662AC6 2019-12-23 [SC] Download the public key -``` +```bash gpg2 --receive-keys 10F3B3F8A1201B79AA43F2E00FC7F131CAA00430 (or 28662AC6) -or (Designation keyserver) +# or (Designation keyserver) gpg2 --keyserver p80.pool.sks-keyservers.net --recv-keys 10F3B3F8A1201B79AA43F2E00FC7F131CAA00430 (或 28662AC6) ``` @@ -71,25 +68,25 @@ Version: GnuPG v2 Import RM's public key to your computer -``` +```bash gpg2 --import key.asc ``` ## Verify the source distribution -* Verify that there are NOTICE, LICENSE, and the content is correct. +- Verify that there are NOTICE, LICENSE, and the content is correct. -* Verify README, RELEASE_NOTES +- Verify README, RELEASE_NOTES -* Validation header +- Validation header -``` +```bash mvn -B apache-rat:check ``` -* Verify signatures and hashes +- Verify signatures and hashes -``` +```bash gpg2 --verify apache-iotdb-0.12.0-source-release.zip.asc apache-iotdb-0.12.0-source-release.zip appear Good Singnature @@ -99,9 +96,9 @@ shasum -a512 apache-iotdb-0.12.0-source-release.zip Compared with the corresponding .sha512, the same is fine. ``` -* Verify compilation +- Verify compilation -``` +```bash mvnw install Should end up all SUCCESS @@ -109,13 +106,13 @@ Should end up all SUCCESS ## Verifying the binary release -* Verify that there are NOTICE, LICENSE, and the content is correct. +- Verify that there are NOTICE, LICENSE, and the content is correct. -* Verify README, RELEASE_NOTES +- Verify README, RELEASE_NOTES -* Verify signatures and hashes +- Verify signatures and hashes -``` +```bash gpg2 --verify apache-iotdb-0.12.0-bin.zip.asc apache-iotdb-0.12.0-bin.zip appear Good Singnature @@ -125,9 +122,9 @@ shasum -a512 apache-iotdb-0.12.0-bin.zip Compared with the corresponding .sha512, the same is fine. ``` -* Verify that it starts and the sample statements execute correctly +- Verify that it starts and the sample statements execute correctly -``` +```bash nohup ./sbin/start-server.sh >/dev/null 2>&1 & ./sbin/start-cli.sh @@ -181,12 +178,11 @@ Thanks, xxx ``` - ## small tools -* Print out lines containing certain characters (just look at the top output, you don't need to look at the bottom file) +- Print out lines containing certain characters (just look at the top output, you don't need to look at the bottom file) -``` +```bash find . -type f -exec grep -i "copyright" {} \; -print | sort -u find **/src -type f -exec grep -i "copyright" {} \; -print | sort -u ``` diff --git a/src/Development/stage/format-changelist.md b/src/Development/stage/format-changelist.md index d4c747328..d37bcbaf3 100644 --- a/src/Development/stage/format-changelist.md +++ b/src/Development/stage/format-changelist.md @@ -1,56 +1,48 @@ # 0.10.x/0.11.x (version-2) -> 0.12.x/0.13.x (version-3) -| PR# | Name | Author | Changes | -| ----- | ----------------------------------------------------------- | --------------- | ------------------------------------------------------------ | -| 2263 | Move memtable plan index from ChunkGroupFooter to a separate marker | jt2594838 | Add min/max plan index after MetaMarker.OPERATION_INDEX_RANGE when a memtable is flush| -| 2184 | [IOTDB-1081] New TsFile Format | JackieTien97 | Please see [details](https://cwiki.apache.org/confluence/display/IOTDB/New+TsFile+Format)| -| 2445 | Remove versionInfo in Tsfile and get rid of versions in memtable | wshao08 | Delete version info in TsFile | +| PR# | Name | Author | Changes | +| ---- | ------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------- | +| 2263 | Move memtable plan index from ChunkGroupFooter to a separate marker | jt2594838 | Add min/max plan index after MetaMarker.OPERATION_INDEX_RANGE when a memtable is flush | +| 2184 | \[IOTDB-1081] New TsFile Format | JackieTien97 | Please see [details](https://cwiki.apache.org/confluence/display/IOTDB/New+TsFile+Format) | +| 2445 | Remove versionInfo in Tsfile and get rid of versions in memtable | wshao08 | Delete version info in TsFile | # 0.9.x (version-1) -> 0.10.x (version-2) Last Updated on 2019-11-28 by Jialin Qiao. -| PR# | Name | Author | Changes | -| ---- | ------------------------------------------------------------ | --------------- | ------------------------------------------------------------ | -| 553 | [IOTDB-279] Merge TsDigest into Statistics | jack870131 | Merge the function of TsDigest into Statistics class, which TsDisgest is the ByteBuffer format of Statistics | -| 587 | [IOTDB-325] Refactor Statistics | qiaojialin | Move start time, end time, count in PageHeader and ChunkMetadata into Statistics; Remove maxTombstoneTime in ChunkHeader | -| 855 | [IOTDB-587] New TsFile version 2 | HTHou | Remove ChunkGroupMetadata, store ChunkMetadata list by series, Add TimeseriesMetadata for each series | -| 1024 | [IOTDB-585] Fix recover version bug | qiaojialin | Add MetaMarker.VERSION and version behind each flushing memtable (flushAllChunkGroups) | -| 1047 | [IOTDB-593] Add metaOffset in TsFileMetadata | qiaojialin | Add metaOffset in TsFileMetadata | -| 1100 | [IOTDB-605] Add more levels of index in TsFileMetadata | sunzesong | Update the structure of deviceMetadata to a tree-level indexed TsFileMetadata | +| PR# | Name | Author | Changes | +| ---- | ------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ | +| 553 | \[IOTDB-279] Merge TsDigest into Statistics | jack870131 | Merge the function of TsDigest into Statistics class, which TsDisgest is the ByteBuffer format of Statistics | +| 587 | \[IOTDB-325] Refactor Statistics | qiaojialin | Move start time, end time, count in PageHeader and ChunkMetadata into Statistics; Remove maxTombstoneTime in ChunkHeader | +| 855 | \[IOTDB-587] New TsFile version 2 | HTHou | Remove ChunkGroupMetadata, store ChunkMetadata list by series, Add TimeseriesMetadata for each series | +| 1024 | \[IOTDB-585] Fix recover version bug | qiaojialin | Add MetaMarker.VERSION and version behind each flushing memtable (flushAllChunkGroups) | +| 1047 | \[IOTDB-593] Add metaOffset in TsFileMetadata | qiaojialin | Add metaOffset in TsFileMetadata | +| 1100 | \[IOTDB-605] Add more levels of index in TsFileMetadata | sunzesong | Update the structure of deviceMetadata to a tree-level indexed TsFileMetadata | # 0.8.0 -> 0.9.x (version-1) Last Updated on 2019-10-27 by Lei Rui. -| PR# | Name | Author | Changes | -| ---- | ------------------------------------------------------------ | --------------- | ------------------------------------------------------------ | -| 258 | [IOTDB-143]Development of merge | jt2594838 | Add totalChunkNum and invalidChunkNum to TsFileMetaData. | -| 409 | \[IOTDB-165\]\[TsFile\] Delete a current version and add a number version and an exception. | Genius_pig | (1) Delete a current version in TsFileMetaData;
(2) Change the TsFile magic number from 12 bytes to: 6 bytes magic string ("TsFile") + 6 bytes version number ({"000001", "000002", ""000003"}) ("v0.8.0" is the first version (we treat it as "000000"));
(3) The tail of a TsFile only has "TsFile" magic string, without the version number. | -| 466 | [IOTDB-208] Bloom filter | SilverNarcissus | Add four fields for the bloom filter to TsFileMetaData: 1) bit vector byte array length, 2) bit vector byte array, 3) the number of bits, 4) the number of hash functions. | - - - - - +| PR# | Name | Author | Changes | +| --- | ------------------------------------------------------------------------------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 258 | \[IOTDB-143]Development of merge | jt2594838 | Add totalChunkNum and invalidChunkNum to TsFileMetaData. | +| 409 | \[IOTDB-165\]\[TsFile\] Delete a current version and add a number version and an exception. | Genius_pig | (1) Delete a current version in TsFileMetaData;
(2) Change the TsFile magic number from 12 bytes to: 6 bytes magic string ("TsFile") + 6 bytes version number ({"000001", "000002", ""000003"}) ("v0.8.0" is the first version (we treat it as "000000"));
(3) The tail of a TsFile only has "TsFile" magic string, without the version number. | +| 466 | [IOTDB-208] Bloom filter | SilverNarcissus | Add four fields for the bloom filter to TsFileMetaData: 1) bit vector byte array length, 2) bit vector byte array, 3) the number of bits, 4) the number of hash functions. | diff --git a/src/Development/stage/rpc-changelist.md b/src/Development/stage/rpc-changelist.md index 1efeb28c8..124e594bf 100644 --- a/src/Development/stage/rpc-changelist.md +++ b/src/Development/stage/rpc-changelist.md @@ -1,22 +1,19 @@ # 0.12.x -> 0.13.x @@ -25,186 +22,171 @@ Last Updated on 2022.1.17 by Xin Zhao. ## 1. Delete Old -| Latest Changes | Related Committers | -| ---------------------------------- | ------------------ | +| Latest Changes | Related Committers | +| -------------- | ------------------ | ## 2. Add New -| Latest Changes | Related Committers | -|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| -| Add TSTracingInfo | Minghui Liu | +| Latest Changes | Related Committers | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | +| Add TSTracingInfo | Minghui Liu | | Add structs and interfaces to append, prune, query and unset Schema Template (detail: TSAppendSchemaTemplateReq, TSPruneSchemaTemplateReq, TSQueryTemplateReq, TSQueryTemplateResp, TSUnsetSchemaTemplateReq, appendSchemaTemplate, pruneSchemaTemplate, querySchemaTemplate, unsetSchemaTemplate), and serializedTemplate in TSCreateSchemaTemplateReq | Xin Zhao | -| Add struct TSInsertStringRecordsOfOneDeviceReq | Hang Zhang | -| Add method TSStatus insertStringRecordsOfOneDevice(1:TSInsertStringRecordsOfOneDeviceReq req) | Hang Zhang | -| Add TSDropSchemaTemplateReq, TSStatus dropSchemaTemplate | Xin Zhao | +| Add struct TSInsertStringRecordsOfOneDeviceReq | Hang Zhang | +| Add method TSStatus insertStringRecordsOfOneDevice(1:TSInsertStringRecordsOfOneDeviceReq req) | Hang Zhang | +| Add TSDropSchemaTemplateReq, TSStatus dropSchemaTemplate | Xin Zhao | | Add TSCreateAlignedTimeseriesReq | Haonan Hou | ## 3. Update -| Latest Changes | Related Committers | -|--------------------------------------------------------------------------------------|--------------------| -| Add Optional field `isAligned` for all TSInsertReqs | Haonan Hou | -| Change schemaNames from required to optional in TSCreateSchemaTemplateReq | Xin Zhao | +| Latest Changes | Related Committers | +| ------------------------------------------------------------------------------------- | ------------------ | +| Add Optional field `isAligned` for all TSInsertReqs | Haonan Hou | +| Change schemaNames from required to optional in TSCreateSchemaTemplateReq | Xin Zhao | | Change TSCreateAlignedTimeseriesReq, from `i32 compressor` to `List compressors` | Minghui Liu | # 0.11.x(version-2) -> 0.12.x(version-1) Last Updated on 2021.01.19 by Xiangwei Wei. - ## 1. Delete Old -| Latest Changes | Related Committers | -| ---------------------------------- | ------------------ | - +| Latest Changes | Related Committers | +| -------------- | ------------------ | ## 2. Add New -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------- | -| Add timeout in TSFetchResultsReq and TSExecuteStatementReq | Xiangwei Wei | - +| Latest Changes | Related Committers | +| ---------------------------------------------------------- | ------------------ | +| Add timeout in TSFetchResultsReq and TSExecuteStatementReq | Xiangwei Wei | ## 3. Update -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------- | - +| Latest Changes | Related Committers | +| -------------- | ------------------ | # 0.10.x (version-2) -> 0.11.x (version-3) Last Updated on 2020-10-27 by Xiangwei Wei. - ## 1. Delete Old | Latest Changes | Related Committers | | ---------------------------------- | ------------------ | -| Remove TSBatchExecuteStatementResp | Tian Jiang | - +| Remove TSBatchExecuteStatementResp | Tian Jiang | ## 2. Add New -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------- | -| set the input/output as TFramedTransport | Tian Jiang | -| Add timeout(optional) in TSFetchResultsReq and TSExecuteStatementReq | Xiangwei Wei | - +| Latest Changes | Related Committers | +| -------------------------------------------------------------------- | ------------------ | +| set the input/output as TFramedTransport | Tian Jiang | +| Add timeout(optional) in TSFetchResultsReq and TSExecuteStatementReq | Xiangwei Wei | ## 3. Update -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------- | -| Add sub-status in TSStatus | Tian Jiang | -| Change the result of executeBatchStatement as TSStatus | Tian Jiang | -| Change TSDeleteDataReq, delete timestamp and add startTime and endTime | Wei Shao | -| Add zoneId in TSOpenSessionReq | Xiangwei Wei | - +| Latest Changes | Related Committers | +| ---------------------------------------------------------------------- | ------------------ | +| Add sub-status in TSStatus | Tian Jiang | +| Change the result of executeBatchStatement as TSStatus | Tian Jiang | +| Change TSDeleteDataReq, delete timestamp and add startTime and endTime | Wei Shao | +| Add zoneId in TSOpenSessionReq | Xiangwei Wei | # 0.9.x (version-1) -> 0.10.x (version-2) Last Updated on 2020-5-25 by Kaifeng Xue. - ## 1. Delete Old -| Latest Changes | Related Committers | -| ---------------------------------- | ------------------ | -| Remove TS_SessionHandle,TSHandleIdentifier | Tian Jiang | -| Remove TSStatus,TSExecuteInsertRowInBatchResp | Jialin Qiao| - +| Latest Changes | Related Committers | +| --------------------------------------------- | ------------------ | +| Remove TS_SessionHandle,TSHandleIdentifier | Tian Jiang | +| Remove TSStatus,TSExecuteInsertRowInBatchResp | Jialin Qiao | ## 2. Add New -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------------------- | -| Add parameter sessionId in getTimeZone, getProperties, setStorageGroup, createTimeseries... | Tian Jiang| -| Add struct TSQueryNonAlignDataSet | Haonan Hou| -| Add struct TSInsertTabletsReq | Jialin Qiao| -| Add method insertTablets | Jialin Qiao| -| Add method testInsertTablets | Xiangdong Huang | -| add new field `inferType` in TSInsertRecordReq | Jialin Qiao | +| Latest Changes | Related Committers | +| ------------------------------------------------------------------------------------------- | ------------------ | +| Add parameter sessionId in getTimeZone, getProperties, setStorageGroup, createTimeseries... | Tian Jiang | +| Add struct TSQueryNonAlignDataSet | Haonan Hou | +| Add struct TSInsertTabletsReq | Jialin Qiao | +| Add method insertTablets | Jialin Qiao | +| Add method testInsertTablets | Xiangdong Huang | +| add new field `inferType` in TSInsertRecordReq | Jialin Qiao | ## 3. Update -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------- | -| Replace TS_SessionHandles with SessionIds, TSOperationHandle with queryIds | Tian Jiang | -| Add optional TSQueryNonAlignDataSet in TSExecuteStatementResp, TSFetchResultsResp and required bool isAlign in TSFetchResultsReq | Haonan Hou | -| Rename TSStatusType to TSStatus | Jialin Qiao | -| Remove sessionId in TSExecuteBatchStatementResp | Jialin Qiao | -| Rename insertRows to insertReords, insert to insertRecord, insertBatch to insertTablet | Jialin Qiao | -| Use TsDataType and binary rather than string in TSInsertInBatchReq and TSInsertReq | Kaifeng Xue | - - +| Latest Changes | Related Committers | +| -------------------------------------------------------------------------------------------------------------------------------- | ------------------ | +| Replace TS_SessionHandles with SessionIds, TSOperationHandle with queryIds | Tian Jiang | +| Add optional TSQueryNonAlignDataSet in TSExecuteStatementResp, TSFetchResultsResp and required bool isAlign in TSFetchResultsReq | Haonan Hou | +| Rename TSStatusType to TSStatus | Jialin Qiao | +| Remove sessionId in TSExecuteBatchStatementResp | Jialin Qiao | +| Rename insertRows to insertReords, insert to insertRecord, insertBatch to insertTablet | Jialin Qiao | +| Use TsDataType and binary rather than string in TSInsertInBatchReq and TSInsertReq | Kaifeng Xue | # 0.8.x -> 0.9.x (version-1) Last Updated on 2019-10-27 by Lei Rui. - ## 1. Delete Old -| Latest Changes | Related Committers | -| ---------------------------------- | ------------------ | -| Delete struct TSSetStorageGroupReq | Jialin Qiao | -| Remove struct TSDataValue | Lei Rui | -| Remove struct TSRowRecord | Lei Rui | -| Remove optional string version in TSFetchMetadataResp | Genius_pig | -| Remove optional set\ childPaths, nodesList, storageGroups, devices in TSFetchMetadataResp | Genius_pig | -| Remove optional map\ nodeTimeseriesNum in TSFetchMetadataResp | Genius_pig | -| Remove optional list\> timeseriesList in TSFetchMetadataResp | Genius_pig | -| Remove optinoal optional i32 timeseriesNum in TSFetchMetadataResp | Genius_pig | -| Remove optional i32 nodeLevel in TSFetchMetadataReq | Genius_pig | - +| Latest Changes | Related Committers | +| ------------------------------------------------------------------------------------------------- | ------------------ | +| Delete struct TSSetStorageGroupReq | Jialin Qiao | +| Remove struct TSDataValue | Lei Rui | +| Remove struct TSRowRecord | Lei Rui | +| Remove optional string version in TSFetchMetadataResp | Genius_pig | +| Remove optional set\ childPaths, nodesList, storageGroups, devices in TSFetchMetadataResp | Genius_pig | +| Remove optional map\ nodeTimeseriesNum in TSFetchMetadataResp | Genius_pig | +| Remove optional list\> timeseriesList in TSFetchMetadataResp | Genius_pig | +| Remove optinoal optional i32 timeseriesNum in TSFetchMetadataResp | Genius_pig | +| Remove optional i32 nodeLevel in TSFetchMetadataReq | Genius_pig | ## 2. Add New -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------------------- | -| Add struct TSBatchInsertionReq | qiaojialin | +| Latest Changes | Related Committers | +| ----------------------------------------------------------------------------- | ---------------------------------- | +| Add struct TSBatchInsertionReq | qiaojialin | | Add method TSExecuteBatchStatementResp insertBatch(1:TSBatchInsertionReq req) | qiaojialin | -| Add Struct TSStatusType | Zesong Sun | -| Add TSCreateTimeseriesReq | Zesong Sun | -| Add method TSStatus setStorageGroup(1:string storageGroup) | Zesong Sun, Jialin Qiao | -| Add method TSStatus createTimeseries(1:TSCreateTimeseriesReq req) | Zesong Sun | -| Add struct TSInsertReq | qiaojialin | -| Add method TSRPCResp insertRow(1:TSInsertReq req) | qiaojialin | -| Add struct TSDeleteDataReq | Jack Tsai, qiaojialin | -| Add method TSStatus deleteData(1:TSDeleteDataReq req) | Jack Tsai, Jialin Qiao, qiaojialin | -| Add method TSStatus deleteTimeseries(1:list\ path) | qiaojialin | -| Add method TSStatus deleteStorageGroups(1:list\ storageGroup) | Yi Tao | -| Add Struct TSExecuteInsertRowInBatchResp | Kaifeng Xue | -| Add method insertRowInBatch(1:TSInsertInBatchReq req); | Kaifeng Xue | -| Add method testInsertRowInBatch(1:TSInsertInBatchReq req); | Kaifeng Xue | -| Add method testInsertRow(1:TSInsertReq req); | Kaifeng Xue | -| Add method testInsertBatch(1:TSBatchInsertionReq req); | Kaifeng Xue | -| Add struct TSCreateMultiTimeseriesReq | qiaojialin | -| Add method createMultiTimeseries(1:TSCreateMultiTimeseriesReq req); | qiaojialin | - +| Add Struct TSStatusType | Zesong Sun | +| Add TSCreateTimeseriesReq | Zesong Sun | +| Add method TSStatus setStorageGroup(1:string storageGroup) | Zesong Sun, Jialin Qiao | +| Add method TSStatus createTimeseries(1:TSCreateTimeseriesReq req) | Zesong Sun | +| Add struct TSInsertReq | qiaojialin | +| Add method TSRPCResp insertRow(1:TSInsertReq req) | qiaojialin | +| Add struct TSDeleteDataReq | Jack Tsai, qiaojialin | +| Add method TSStatus deleteData(1:TSDeleteDataReq req) | Jack Tsai, Jialin Qiao, qiaojialin | +| Add method TSStatus deleteTimeseries(1:list\ path) | qiaojialin | +| Add method TSStatus deleteStorageGroups(1:list\ storageGroup) | Yi Tao | +| Add Struct TSExecuteInsertRowInBatchResp | Kaifeng Xue | +| Add method insertRowInBatch(1:TSInsertInBatchReq req); | Kaifeng Xue | +| Add method testInsertRowInBatch(1:TSInsertInBatchReq req); | Kaifeng Xue | +| Add method testInsertRow(1:TSInsertReq req); | Kaifeng Xue | +| Add method testInsertBatch(1:TSBatchInsertionReq req); | Kaifeng Xue | +| Add struct TSCreateMultiTimeseriesReq | qiaojialin | +| Add method createMultiTimeseries(1:TSCreateMultiTimeseriesReq req); | qiaojialin | ## 3. Update -| Latest Changes | Related Committers | -| ------------------------------------------------------------ | ---------------------- | -| Add required string timestampPrecision in ServerProperties | 1160300922 | -| Add optional list\ dataTypeList in TSExecuteStatementResp | suyue | -| Update TSStatus to use TSStatusType, instead of using ~~TS_StatusCode, errorCode and errorMessage~~ | Zesong Sun | -| Rename item in enum TSProtocolVersion from ~~TSFILE_SERVICE_PROTOCOL_V1~~ to IOTDB_SERVICE_PROTOCOL_V1 | qiaojialin | -| Rename method name from ~~TSExecuteStatementResp executeInsertion(1:TSInsertionReq req)~~ to TSExecuteStatementResp insert(1:TSInsertionReq req) | qiaojialin | -| Add required i32 compressor in TSCreateTimeseriesReq | Jialin Qiao | -| Add optional list\ nodesList, optional map\ nodeTimeseriesNum in TSFetchMetadataResp | jack870131 | -| Add optional i32 nodeLevel in TSFetchMetadataReq | jack870131, Zesong Sun | +| Latest Changes | Related Committers | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | +| Add required string timestampPrecision in ServerProperties | 1160300922 | +| Add optional list\ dataTypeList in TSExecuteStatementResp | suyue | +| Update TSStatus to use TSStatusType, instead of using ~~TS_StatusCode, errorCode and errorMessage~~ | Zesong Sun | +| Rename item in enum TSProtocolVersion from ~~TSFILE_SERVICE_PROTOCOL_V1~~ to IOTDB_SERVICE_PROTOCOL_V1 | qiaojialin | +| Rename method name from ~~TSExecuteStatementResp executeInsertion(1:TSInsertionReq req)~~ to TSExecuteStatementResp insert(1:TSInsertionReq req) | qiaojialin | +| Add required i32 compressor in TSCreateTimeseriesReq | Jialin Qiao | +| Add optional list\ nodesList, optional map\ nodeTimeseriesNum in TSFetchMetadataResp | jack870131 | +| Add optional i32 nodeLevel in TSFetchMetadataReq | jack870131, Zesong Sun | | Change the following methods' returned type to be TSStatus:
TSStatus closeSession(1:TSCloseSessionReq req),
TSStatus cancelOperation(1:TSCancelOperationReq req),
TSStatus closeOperation(1:TSCloseOperationReq req),
TSStatus setTimeZone(1:TSSetTimeZoneReq req),
TSStatus setStorageGroup(1:string storageGroup),
TSStatus createTimeseries(1:TSCreateTimeseriesReq req),
TSStatus insertRow(1:TSInsertReq req),
TSStatus deleteData(1:TSDeleteDataReq req) | Zesong Sun, qiaojialin | -| Change from ~~required string path~~ to required list\ paths in TSDeleteDataReq | qiaojialin | -| Add optional set\ devices in TSFetchMetadataResp | Zesong Sun | -| Rename some fields in TSFetchMetadataResp: ~~ColumnsList~~ to columnsList, ~~showTimeseriesList~~ to timeseriesList, ~~showStorageGroups~~ to storageGroups | Zesong Sun | -| Change struct TSQueryDataSet to eliminate row-wise rpc writing | Lei Rui | -| Add optional i32 timeseriesNum in TSFetchMetadataResp | Jack Tsai | -| Add required i64 queryId in TSHandleIdentifier | Yuan Tian | -| Add optional set\ childPaths in TSFetchMetadataResp | Haonan Hou | -| Add optional string version in TSFetchMetadataResp | Genius_pig | -| Add required i64 statementId in TSExecuteStatementReq | Yuan Tian | -| Add required binary time, required list\ valueList, required list\ bitmapList and remove required binary values, required i32 rowCount in TSQueryDataSet| Yuan Tian | -| Add optional i32 fetchSize in TSExecuteStatementReq,
Add optional TSQueryDataSet in TSExecuteStatementResp| liutaohua | -| Add optional map\ props, optional map\ tags, optional map\ attributes and optional string aliasPath in TSCreateTimeseriesReq | Yuan Tian | +| Change from ~~required string path~~ to required list\ paths in TSDeleteDataReq | qiaojialin | +| Add optional set\ devices in TSFetchMetadataResp | Zesong Sun | +| Rename some fields in TSFetchMetadataResp: ~~ColumnsList~~ to columnsList, ~~showTimeseriesList~~ to timeseriesList, ~~showStorageGroups~~ to storageGroups | Zesong Sun | +| Change struct TSQueryDataSet to eliminate row-wise rpc writing | Lei Rui | +| Add optional i32 timeseriesNum in TSFetchMetadataResp | Jack Tsai | +| Add required i64 queryId in TSHandleIdentifier | Yuan Tian | +| Add optional set\ childPaths in TSFetchMetadataResp | Haonan Hou | +| Add optional string version in TSFetchMetadataResp | Genius_pig | +| Add required i64 statementId in TSExecuteStatementReq | Yuan Tian | +| Add required binary time, required list\ valueList, required list\ bitmapList and remove required binary values, required i32 rowCount in TSQueryDataSet | Yuan Tian | +| Add optional i32 fetchSize in TSExecuteStatementReq,
Add optional TSQueryDataSet in TSExecuteStatementResp | liutaohua | +| Add optional map\ props, optional map\ tags, optional map\ attributes and optional string aliasPath in TSCreateTimeseriesReq | Yuan Tian |