This is an automated email from the ASF dual-hosted git repository. wanghailin pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push: new ad97c98cf5 [Docs] Update contribution and readme related docs info (#7188) ad97c98cf5 is described below commit ad97c98cf5d2e2f2154d6d541f3f276b1880c297 Author: tcodehuber <tcodehu...@gmail.com> AuthorDate: Sat Jul 13 18:12:20 2024 +0800 [Docs] Update contribution and readme related docs info (#7188) --- README.md | 20 ++++---- docs/en/command/connector-check.md | 2 +- docs/en/command/usage.mdx | 2 +- docs/en/contribution/coding-guide.md | 55 ++++++++++------------ .../contribution/contribute-transform-v2-guide.md | 18 +++---- docs/en/contribution/new-license.md | 6 +-- docs/en/contribution/setup.md | 26 +++++----- docs/zh/contribution/coding-guide.md | 43 ++++++++--------- .../contribution/contribute-transform-v2-guide.md | 2 +- docs/zh/contribution/setup.md | 2 +- 10 files changed, 83 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index 5fa0d25501..0850d1aedf 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ SeaTunnel addresses common data integration challenges: - **Real-Time Monitoring**: Offers detailed insights during synchronization. -- **Two Job Development Methods**: Supports coding and visual job management with the [SeaTunnel web project](https://github.com/apache/seatunnel-web). +- **Two Job Development Methods**: Supports coding and visual job management with the [SeaTunnel Web Project](https://github.com/apache/seatunnel-web). ## SeaTunnel Workflow @@ -75,7 +75,7 @@ For a list of connectors and their health status, visit the [Connector Status](d ## Getting Started -Download SeaTunnel from the [official website](https://seatunnel.apache.org/download). +Download SeaTunnel from the [Official Website](https://seatunnel.apache.org/download). Choose your runtime execution engine: - [SeaTunnel Zeta Engine](https://seatunnel.apache.org/docs/start-v2/locally/quick-start-seatunnel-engine/) @@ -84,19 +84,19 @@ Choose your runtime execution engine: ## Use Cases -Explore real-world use cases of SeaTunnel, such as Weibo, Tencent Cloud, Sina, Sogou, and Yonghui Superstores. More use cases can be found on the [SeaTunnel blog](https://seatunnel.apache.org/blog). +Explore real-world use cases of SeaTunnel, such as Weibo, Tencent Cloud, Sina, Sogou, and Yonghui Superstores. More use cases can be found on the [SeaTunnel Blog](https://seatunnel.apache.org/blog). ## Code of Conduct -Participate in this project following the Contributor Covenant [Code of Conduct](https://www.apache.org/foundation/policies/conduct). +Participate in this project in accordance with the Contributor Covenant [Code of Conduct](https://www.apache.org/foundation/policies/conduct). ## Contributors -We appreciate all developers for their contributions. See the [list of contributors](https://github.com/apache/seatunnel/graphs/contributors). +We appreciate all developers for their contributions. See the [List Of Contributors](https://github.com/apache/seatunnel/graphs/contributors). ## How to Compile -Refer to this [document](docs/en/contribution/setup.md) for compilation instructions. +Refer to this [Setup](docs/en/contribution/setup.md) for compilation instructions. ## Contact Us @@ -117,7 +117,7 @@ For more information, please refer to [SeaTunnel Web](https://github.com/apache/ ## Our Users -Companies and organizations worldwide use SeaTunnel for research, production, and commercial products. Visit our [user page](https://seatunnel.apache.org/user) for more information. +Companies and organizations worldwide use SeaTunnel for research, production, and commercial products. Visit our [Users](https://seatunnel.apache.org/user) for more information. ## License @@ -127,7 +127,7 @@ Companies and organizations worldwide use SeaTunnel for research, production, an ### 1. How do I install SeaTunnel? -Follow the [installation guide](https://seatunnel.apache.org/docs/2.3.3/start-v2/locally/deployment/) on our website to get started. +Follow the [Installation Guide](https://seatunnel.apache.org/docs/2.3.3/start-v2/locally/deployment/) on our website to get started. ### 2. How can I contribute to SeaTunnel? @@ -135,7 +135,7 @@ We welcome contributions! Please refer to our [Contribution Guidelines](https:// ### 3. How do I report issues or request features? -You can report issues or request features on our [GitHub repository](https://github.com/apache/seatunnel/issues). +You can report issues or request features on our [GitHub Repository](https://github.com/apache/seatunnel/issues). ### 4. Can I use SeaTunnel for commercial purposes? @@ -143,7 +143,7 @@ Yes, SeaTunnel is available under the Apache 2.0 License, allowing commercial us ### 5. Where can I find documentation and tutorials? -Our [official documentation](https://seatunnel.apache.org/docs) includes detailed guides and tutorials to help you get started. +Our [Official Documentation](https://seatunnel.apache.org/docs) includes detailed guides and tutorials to help you get started. ### 7. Is there a community or support channel? diff --git a/docs/en/command/connector-check.md b/docs/en/command/connector-check.md index ab59d11745..8ac35af6d1 100644 --- a/docs/en/command/connector-check.md +++ b/docs/en/command/connector-check.md @@ -1,4 +1,4 @@ -# Connector check command usage +# Connector Check Command Usage ## Command Entrypoint diff --git a/docs/en/command/usage.mdx b/docs/en/command/usage.mdx index d5797e06ac..e3d82519cb 100644 --- a/docs/en/command/usage.mdx +++ b/docs/en/command/usage.mdx @@ -1,7 +1,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Command usage +# Command Usage ## Command Entrypoint diff --git a/docs/en/contribution/coding-guide.md b/docs/en/contribution/coding-guide.md index b603294872..9995c16854 100644 --- a/docs/en/contribution/coding-guide.md +++ b/docs/en/contribution/coding-guide.md @@ -1,51 +1,46 @@ -# Coding guide +# Coding Guide This guide documents an overview of the current Apache SeaTunnel modules and best practices on how to submit a high quality pull request to Apache SeaTunnel. ## Modules Overview -| Module Name | Introduction | -|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| seatunnel-api | SeaTunnel connector V2 API module | -| seatunnel-apis | SeaTunnel connector V1 API module | -| seatunnel-common | SeaTunnel common module | -| seatunnel-connectors | SeaTunnel connector V1 module, currently connector V1 is in a stable state, the community will continue to maintain it, but there will be no major feature updates | -| seatunnel-connectors-v2 | SeaTunnel connector V2 module, currently connector V2 is under development and the community will focus on it | -| seatunnel-core/seatunnel-spark | SeaTunnel core starter module of connector V1 on spark engine | -| seatunnel-core/seatunnel-flink | SeaTunnel core starter module of connector V1 on flink engine | -| seatunnel-core/seatunnel-flink-sql | SeaTunnel core starter module of connector V1 on flink-sql engine | -| seatunnel-core/seatunnel-spark-starter | SeaTunnel core starter module of connector V2 on Spark engine | -| seatunnel-core/seatunnel-flink-starter | SeaTunnel core starter module of connector V2 on Flink engine | -| seatunnel-core/seatunnel-starter | SeaTunnel core starter module of connector V2 on SeaTunnel engine | -| seatunnel-e2e | SeaTunnel end-to-end test module | -| seatunnel-examples | SeaTunnel local examples module, developer can use it to do unit test and integration test | -| seatunnel-engine | SeaTunnel engine module, seatunnel-engine is a new computational engine developed by the SeaTunnel Community that focuses on data synchronization. | -| seatunnel-formats | SeaTunnel formats module, used to offer the ability of formatting data | -| seatunnel-plugin-discovery | SeaTunnel plugin discovery module, used to offer the ability of loading SPI plugins from classpath | -| seatunnel-transforms-v2 | SeaTunnel transform V2 module, currently transform V2 is under development and the community will focus on it | -| seatunnel-translation | SeaTunnel translation module, used to adapt Connector V2 and other computing engines such as Spark Flink etc... | - -## How to submit a high quality pull request +| Module Name | Introduction | +|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------| +| seatunnel-api | SeaTunnel connector V2 API module | +| seatunnel-common | SeaTunnel common module | +| seatunnel-connectors-v2 | SeaTunnel connector V2 module, currently connector V2 is under development and the community will focus on it | +| seatunnel-core/seatunnel-spark-starter | SeaTunnel core starter module of connector V2 on Spark engine | +| seatunnel-core/seatunnel-flink-starter | SeaTunnel core starter module of connector V2 on Flink engine | +| seatunnel-core/seatunnel-starter | SeaTunnel core starter module of connector V2 on SeaTunnel engine | +| seatunnel-e2e | SeaTunnel end-to-end test module | +| seatunnel-examples | SeaTunnel local examples module, developer can use it to do unit test and integration test | +| seatunnel-engine | SeaTunnel engine module, seatunnel-engine is a new computational engine developed by the SeaTunnel Community that focuses on data synchronization. | +| seatunnel-formats | SeaTunnel formats module, used to offer the ability of formatting data | +| seatunnel-plugin-discovery | SeaTunnel plugin discovery module, used to offer the ability of loading SPI plugins from classpath | +| seatunnel-transforms-v2 | SeaTunnel transform V2 module, currently transform V2 is under development and the community will focus on it | +| seatunnel-translation | SeaTunnel translation module, used to adapt Connector V2 and other computing engines such as Spark, Flink etc... | + +## How To Submit A High Quality Pull Request 1. Create entity classes using annotations in the `lombok` plugin (`@Data` `@Getter` `@Setter` `@NonNull` etc...) to reduce the amount of code. It's a good practice to prioritize the use of lombok plugins in your coding process. 2. If you need to use log4j to print logs in a class, preferably use the annotation `@Slf4j` in the `lombok` plugin. -3. SeaTunnel uses issue to track logical issues, including bugs and improvements, and uses Github's pull requests to manage the review and merge of specific code changes. So making a clear issue or pull request helps the community better understand the developer's intent, the best practice of creating issue or pull request as the following shown: +3. SeaTunnel uses issue to track logical issues, including bugs and improvements, and uses Github's pull requests to manage the review and merge of specific code changes. So making a clear issue or pull request helps the community better understand the developer's intent. The best practice of creating issue or pull request is as the following shown: > [purpose] [module name] [sub-module name] Description - 1. Pull request purpose includes: `Hotfix`, `Feature`, `Improve`, `Docs`, `WIP`.Note that if your pull request's purpose is `WIP`, then you need to use github's draft pull request + 1. Pull request purpose includes: `Hotfix`, `Feature`, `Improve`, `Docs`, `WIP`. Note that if your pull request's purpose is `WIP`, then you need to use github's draft pull request 2. Issue purpose includes: `Feature`, `Bug`, `Docs`, `Discuss` 3. Module name: the current pull request or issue involves the name of the module, for example: `Core`, `Connector-V2`, `Connector-V1`, etc. 4. Sub-module name: the current pull request or issue involves the name of the sub-module, for example:`File` `Redis` `Hbase` etc. - 5. Description: highly summarize what the current pull request and issue to do, as far as possible to do the name to know the meaning + 5. Description: provide a brief, clear summary of the current pull request and issue's main goals and aim for a title that conveys the core purpose at a glance. - Tips:**For more details, you can refer to [issue guide](https://seatunnel.apache.org/community/contribution_guide/contribute#issue) and [pull request guide](https://seatunnel.apache.org/community/contribution_guide/contribute#pull-request)** + Tips:**For more details, you can refer to [Issue Guide](https://seatunnel.apache.org/community/contribution_guide/contribute#issue) and [Pull Request Guide](https://seatunnel.apache.org/community/contribution_guide/contribute#pull-request)** 4. Code segments are never repeated. If a code segment is used multiple times, define it multiple times is not a good option, make it a public segment for other modules to use is a best practice. -5. When throwing an exception, throw the exception along with a hint message and the exception should be smaller in scope.Throwing overly broad exceptions promotes complex error handling code that is more likely to contain security vulnerabilities.For example, if your connector encounters an `IOException` while reading data, a reasonable approach would be to the following: +5. When throwing an exception, throw it along with a hint message and the exception should be smaller in scope. Throwing overly broad exceptions promotes complex error handling code that is more likely to contain security vulnerabilities. For example, if your connector encounters an `IOException` while reading data, a reasonable approach would be to the following: ```java try { @@ -98,7 +93,7 @@ This guide documents an overview of the current Apache SeaTunnel modules and bes 10. If you submit a pull request with a feature that requires updated documentation, always remember to update the documentation. -12. Submit the pull request of connector type can write e2e test to ensure the robustness and robustness of the code, e2e test should include the full data type, and e2e test as little as possible to initialize the docker image, write the test cases of sink and source together to reduce the loss of resources, while using asynchronous features to ensure the stability of the test. A good example can be found at: [MongodbIT.java](https://github.com/apache/seatunnel/blob/dev/seatunnel-e2e/se [...] +11. Submit the pull request of connector type can write e2e test to ensure the robustness and robustness of the code, e2e test should include the full data type, and e2e test as little as possible to initialize the docker image, write the test cases of sink and source together to reduce the loss of resources, while using asynchronous features to ensure the stability of the test. A good example can be found at: [MongodbIT.java](https://github.com/apache/seatunnel/blob/dev/seatunnel-e2e/se [...] 12. The priority of property permission in the class is set to `private`, and mutability is set to `final`, which can be changed reasonably if special circumstances are encountered. @@ -108,7 +103,7 @@ This guide documents an overview of the current Apache SeaTunnel modules and bes 15. If there are multiple `if` process judgments in the code flow, try to simplify the flow to multiple ifs instead of if-else-if. -16. Pull request has the characteristic of single responsibility, not allowed to include irrelevant code of the feature in pull request, once this situation deal with their own branch before submitting pull request, otherwise the Apache SeaTunnel community will actively close pull request +16. Pull request has the characteristic of single responsibility, not allowed to include irrelevant code of the feature in pull request, once this situation deal with their own branch before submitting pull request, otherwise the Apache SeaTunnel community will actively close pull request. 17. Contributors should be responsible for their own pull request. If your pull request contains new features or modifies old features, add test cases or e2e tests to prove the reasonableness and functional integrity of your pull request is a good practice. diff --git a/docs/en/contribution/contribute-transform-v2-guide.md b/docs/en/contribution/contribute-transform-v2-guide.md index 1ec2493a1b..37837f9eeb 100644 --- a/docs/en/contribution/contribute-transform-v2-guide.md +++ b/docs/en/contribution/contribute-transform-v2-guide.md @@ -2,7 +2,7 @@ This document describes how to understand, develop and contribute a transform. -We also provide the [transform e2e test](../../../seatunnel-e2e/seatunnel-transforms-v2-e2e) +We also provide the [Transform E2E Test](../../../seatunnel-e2e/seatunnel-transforms-v2-e2e) to verify the data input and output by the transform. ## Concepts @@ -13,7 +13,7 @@ process your data after reading or before writing, then need to use transform. Use transform to make simple edits to your data rows or fields, such as split field, change field values, add or remove field. -### DataType transform +### DataType Transform Transform receives datatype input from upstream(source or transform) and outputs new datatype to downstream(sink or transform), this process is datatype transform. @@ -68,16 +68,16 @@ Example 4:Add new fields | STRING | INT | BOOLEAN | DOUBLE | ``` -### Data transform +### Data Transform -After datatype transformed, Transform will receives data-row input from upstream(source or transform), -edit into data-row with [new datatype](#DataType transform) and outputs to downstream (sink or transform). -This process is data transform. +After datatype transformed, Transform will receive data-row input from upstream(source or transform), +edit into data-row with [New Datatype](#DataType transform) and output to downstream (sink or transform). +This process is called data transform. ### Translation Transform is decoupled from the execution engine, any transform implement can run into all engines -without change the code & config, which requires the translation layer to adapt transform and execution engine. +without changing the code & config, which requires the translation layer to adapt transform and execution engine. Example:Translation datatype & data @@ -245,7 +245,7 @@ protected abstract SeaTunnelRowType transformRowType(SeaTunnelRowType inputRowTy protected abstract SeaTunnelRow transformRow(SeaTunnelRow inputRow); ``` -## Develop a Transform +## Develop A Transform It must implement one of the following APIs: - SeaTunnelTransform @@ -325,5 +325,5 @@ public class TestCopyFieldTransformIT extends TestSuiteBase { ``` Once your testcase implements the `TestSuiteBase` interface and use `@TestTemplate` annotation startup, -it will running job to all engines, and you just need to execute the executeJob method with your SeaTunnel configuration file, +it will run job to all engines, and you just need to execute the executeJob method with your SeaTunnel configuration file, it will submit the SeaTunnel job. diff --git a/docs/en/contribution/new-license.md b/docs/en/contribution/new-license.md index 7eed078ce4..631b00404b 100644 --- a/docs/en/contribution/new-license.md +++ b/docs/en/contribution/new-license.md @@ -6,9 +6,9 @@ You have to pay attention to the following open-source software protocols which [ASF 3RD PARTY LICENSE POLICY](https://apache.org/legal/resolved.html) -If the 3rd party software is not present at the above policy, we could't that accept your code. +If the 3rd party software is not present at the above policy, we wouldn't accept your code. -### How to Legally Use 3rd Party Open-source Software in the SeaTunnel +### How to Legally Use 3rd Party Open-source Software In The SeaTunnel Moreover, when we intend to refer a new software ( not limited to 3rd party jar, text, CSS, js, pics, icons, audios etc and modifications based on 3rd party files) to our project, we need to use them legally in addition to the permission of ASF. Refer to the following article: @@ -27,7 +27,7 @@ We need to follow the following steps when we need to add new jars or external r * Add the name and the version of the jar file in the known-dependencies.txt * Add relevant maven repository address under 'seatunnel-dist/release-docs/LICENSE' directory * Append relevant NOTICE files under 'seatunnel-dist/release-docs/NOTICE' directory and make sure they are no different to the original repository -* Add relevant source code protocols under 'seatunnel-dist/release-docs/licenses' directory and the file name should be named as license+filename.txt. Eg: license-zk.txt +* Add relevant source code protocols under 'seatunnel-dist/release-docs/licenses' directory and the file name should be named as license+filename.txt. e.g.: license-zk.txt * check dependency license fail ``` diff --git a/docs/en/contribution/setup.md b/docs/en/contribution/setup.md index d99ae746a9..094799e6f5 100644 --- a/docs/en/contribution/setup.md +++ b/docs/en/contribution/setup.md @@ -4,7 +4,7 @@ In this section, we are going to show you how to set up your development environ example in your JetBrains IntelliJ IDEA. > You can develop or test SeaTunnel code in any development environment that > you like, but here we use -> [JetBrains IDEA](https://www.jetbrains.com/idea/) as an example to teach you to step by step environment. +> [JetBrains IDEA](https://www.jetbrains.com/idea/) as an example to teach you to step by step. ## Prepare @@ -35,17 +35,17 @@ Otherwise, your code could not start in JetBrains IntelliJ IDEA correctly. ./mvnw install -Dmaven.test.skip ``` -### Building seaTunnel from source +### Building SeaTunnel From Source -After you install the maven, you can use the follow command to compile and package. +After you install the maven, you can use the following command to compile and package. ``` mvn clean package -pl seatunnel-dist -am -Dmaven.test.skip=true ``` -### Building sub module +### Building Sub Module -If you want to build submodules separately,you can use the follow command to compile and package. +If you want to build submodules separately, you can use the following command to compile and package. ```ssh # This is an example of building the redis connector separately @@ -55,9 +55,9 @@ If you want to build submodules separately,you can use the follow command to com ### Install JetBrains IDEA Scala Plugin -Now, you can open your JetBrains IntelliJ IDEA and explore the source code, but allow building Scala code in IDEA, -you should also install JetBrains IntelliJ IDEA's [Scala plugin](https://plugins.jetbrains.com/plugin/1347-scala). -See [install plugins for IDEA](https://www.jetbrains.com/help/idea/managing-plugins.html#install-plugins) if you want to. +Now, you can open your JetBrains IntelliJ IDEA and explore the source code. But before building Scala code in IDEA, +you should also install JetBrains IntelliJ IDEA's [Scala Plugin](https://plugins.jetbrains.com/plugin/1347-scala). +See [Install Plugins For IDEA](https://www.jetbrains.com/help/idea/managing-plugins.html#install-plugins) if you want to. ### Install JetBrains IDEA Lombok Plugin @@ -66,7 +66,7 @@ See [install plugins for IDEA](https://www.jetbrains.com/help/idea/managing-plug ### Code Style -Apache SeaTunnel uses `Spotless` for code style and formatting checks. You could run the following command and `Spotless` will automatically fix the code style and formatting errors for you: +Apache SeaTunnel uses `Spotless` for code style and format checks. You can run the following command and `Spotless` will automatically fix the code style and formatting errors for you: ```shell ./mvnw spotless:apply @@ -77,11 +77,11 @@ You could copy the `pre-commit hook` file `/tools/spotless_check/pre-commit.sh` ## Run Simple Example After all the above things are done, you just finish the environment setup and can run an example we provide to you out -of box. All examples are in module `seatunnel-examples`, you could pick one you are interested in, [running or debugging -it in IDEA](https://www.jetbrains.com/help/idea/run-debug-configuration.html) as you wish. +of box. All examples are in module `seatunnel-examples`, you could pick one you are interested in, [Running Or Debugging +It In IDEA](https://www.jetbrains.com/help/idea/run-debug-configuration.html) as you wish. Here we use `seatunnel-examples/seatunnel-flink-connector-v2-example/src/main/java/org/apache/seatunnel/example/flink/v2/SeaTunnelApiExample.java` -as an example, when you run it successfully you could see the output as below: +as an example, when you run it successfully you can see the output as below: ```log +I[Ricky Huo, 71] @@ -95,7 +95,7 @@ as an example, when you run it successfully you could see the output as below: ## What's More All our examples use simple source and sink to make it less dependent and easy to run. You can change the example configuration -in `resources/examples`. You could change your configuration as below, if you want to use PostgreSQL as the source and +in `resources/examples`. You can change your configuration as below, if you want to use PostgreSQL as the source and sink to console. ```conf diff --git a/docs/zh/contribution/coding-guide.md b/docs/zh/contribution/coding-guide.md index f102eb6855..8ee04d4374 100644 --- a/docs/zh/contribution/coding-guide.md +++ b/docs/zh/contribution/coding-guide.md @@ -4,28 +4,23 @@ ## 模块概述 -| 模块名 | 介绍 | -|----------------------------------------|---------------------------------------------------------------------------------------------------| -| seatunnel-api | SeaTunnel connector V2 API 模块 | -| seatunnel-apis | SeaTunnel connector V1 API 模块 | -| seatunnel-common | SeaTunnel 通用模块 | -| seatunnel-connectors | SeaTunnel connector V1 模块, 当前 connector V1 处在稳定状态, 社区会持续维护,但不会有大的特性更新 | -| seatunnel-connectors-v2 | SeaTunnel connector V2 模块, connector V2 处于社区重点开发中 | -| seatunnel-core/seatunnel-spark | SeaTunnel connector V1 的 spark 引擎核心启动模块 | -| seatunnel-core/seatunnel-flink | SeaTunnel connector V1 的 flink 引擎核心启动模块 | -| seatunnel-core/seatunnel-flink-sql | SeaTunnel connector V1 的 flink-sql 引擎核心启动模块 | -| seatunnel-core/seatunnel-spark-starter | SeaTunnel connector V2 的 Spark 引擎核心启动模块 | -| seatunnel-core/seatunnel-flink-starter | SeaTunnel connector V2 的 Flink 引擎核心启动模块 | -| seatunnel-core/seatunnel-starter | SeaTunnel connector V2 的 SeaTunnel 引擎核心启动模块 | -| seatunnel-e2e | SeaTunnel 端到端测试模块 | -| seatunnel-examples | SeaTunnel 本地案例模块, 开发者可以用来单元测试和集成测试 | -| seatunnel-engine | SeaTunnel 引擎模块, seatunnel-engine 是 SeaTunnel 社区新开发的计算引擎,用来实现数据同步 | -| seatunnel-formats | SeaTunnel 格式化模块,用来提供格式化数据的能力 | -| seatunnel-plugin-discovery | SeaTunnel 插件发现模块,用来加载类路径中的SPI插件 | -| seatunnel-transforms-v2 | SeaTunnel transform V2 模块, transform V2 处于社区重点开发中 | -| seatunnel-translation | SeaTunnel translation 模块, 用来适配Connector V2 和其他计算引擎, 例如Spark、Flink等 | - -## 如何提交一个高质量的 pull request +| 模块名 | 介绍 | +|----------------------------------------|--------------------------------------------------------------------| +| seatunnel-api | SeaTunnel connector V2 API 模块 | +| seatunnel-common | SeaTunnel 通用模块 | +| seatunnel-connectors-v2 | SeaTunnel connector V2 模块, connector V2 处于社区重点开发中 | +| seatunnel-core/seatunnel-spark-starter | SeaTunnel connector V2 的 Spark 引擎核心启动模块 | +| seatunnel-core/seatunnel-flink-starter | SeaTunnel connector V2 的 Flink 引擎核心启动模块 | +| seatunnel-core/seatunnel-starter | SeaTunnel connector V2 的 SeaTunnel 引擎核心启动模块 | +| seatunnel-e2e | SeaTunnel 端到端测试模块 | +| seatunnel-examples | SeaTunnel 本地案例模块, 开发者可以用来单元测试和集成测试 | +| seatunnel-engine | SeaTunnel 引擎模块, seatunnel-engine 是 SeaTunnel 社区新开发的计算引擎,用来实现数据同步 | +| seatunnel-formats | SeaTunnel 格式化模块,用来提供格式化数据的能力 | +| seatunnel-plugin-discovery | SeaTunnel 插件发现模块,用来加载类路径中的SPI插件 | +| seatunnel-transforms-v2 | SeaTunnel transform V2 模块, transform V2 处于社区重点开发中 | +| seatunnel-translation | SeaTunnel translation 模块, 用来适配Connector V2 和其他计算引擎, 例如Spark、Flink等 | + +## 如何提交一个高质量的Pull Request 1. 创建实体类的时候使用 `lombok` 插件的注解(`@Data` `@Getter` `@Setter` `@NonNull` 等)来减少代码量。在编码过程中优先使用 lombok 插件是一个很好的习惯。 @@ -41,7 +36,7 @@ 4. 子模块名称: 当前 pull request 或 issue 所涉及的子模块名称, 例如:`File` `Redis` `Hbase`等。 5. 描述: 高度概括下当前 pull request 和 issue 要做的事情,尽量见名知意。 - 提示:**更多内容, 可以参考 [issue guide](https://seatunnel.apache.org/community/contribution_guide/contribute#issue) 和 [pull request guide](https://seatunnel.apache.org/community/contribution_guide/contribute#pull-request)** + 提示:**更多内容, 可以参考 [Issue Guide](https://seatunnel.apache.org/community/contribution_guide/contribute#issue) 和 [Pull Request Guide](https://seatunnel.apache.org/community/contribution_guide/contribute#pull-request)** 4. 代码片段不要重复。 如果一段代码被使用多次,定义多次不是好的选择,最佳实践是把它公共独立出来让其他模块使用。 @@ -98,7 +93,7 @@ 10. 如果提交的 pull request 是一个新的特性, 请记得更新文档。 -12. 提交 connector 相关的 pull request, 可以通过写 e2e 测试保证鲁棒性,e2e 测试需要包含所有的数据类型,并且初始化尽可能小的 docker 镜像,sink 和 source 的测试用例可以写在一起减少资源的损耗。 可以参考这个不错的例子: [MongodbIT.java](https://github.com/apache/seatunnel/blob/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-mongodb-e2e/src/test/java/org/apache/seatunnel/e2e/connector/v2/mongodb/MongodbIT.java) +11. 提交 connector 相关的 pull request, 可以通过写 e2e 测试保证鲁棒性,e2e 测试需要包含所有的数据类型,并且初始化尽可能小的 docker 镜像,sink 和 source 的测试用例可以写在一起减少资源的损耗。 可以参考这个不错的例子: [MongodbIT.java](https://github.com/apache/seatunnel/blob/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-mongodb-e2e/src/test/java/org/apache/seatunnel/e2e/connector/v2/mongodb/MongodbIT.java) 12. 类中默认的权限需要使用 `private`, 不可修改的需要设置 `final`, 特殊场景除外。 diff --git a/docs/zh/contribution/contribute-transform-v2-guide.md b/docs/zh/contribution/contribute-transform-v2-guide.md index b9abe5da49..ad02b9e977 100644 --- a/docs/zh/contribution/contribute-transform-v2-guide.md +++ b/docs/zh/contribution/contribute-transform-v2-guide.md @@ -2,7 +2,7 @@ 本文描述了如何理解、开发和贡献一个 transform。 -我们也提供了 [transform e2e test](../../../seatunnel-e2e/seatunnel-transforms-v2-e2e) +我们也提供了 [Transform E2E Test](../../../seatunnel-e2e/seatunnel-transforms-v2-e2e) 来验证 transform 的数据输入和输出。 ## 概念 diff --git a/docs/zh/contribution/setup.md b/docs/zh/contribution/setup.md index b94c971d75..3527f72c1d 100644 --- a/docs/zh/contribution/setup.md +++ b/docs/zh/contribution/setup.md @@ -3,7 +3,7 @@ 在这个章节, 我们会向你展示如何搭建 SeaTunnel 的开发环境, 然后用 JetBrains IntelliJ IDEA 跑一个简单的示例。 > 你可以用任何你喜欢的开发环境进行开发和测试,我们只是用 [JetBrains IDEA](https://www.jetbrains.com/idea/) -> 作为示例来展示如何一步步设置环境。 +> 作为示例来展示如何一步步完成设置。 ## 准备