You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zh...@apache.org on 2022/09/17 14:13:23 UTC

[dolphinscheduler] branch 3.0.1-prepare updated (8fefb9ecfd -> 257187c521)

This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a change to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


    from 8fefb9ecfd Add dependent task instance log (#11541) (#12014)
     new 82a8956e7b [doc] Improve the document introduction of complement (#11275)
     new b9cc2639d0 [Fix-11217] [Doc] add postgresql config in doc: datasource-setting (#11326)
     new be37dd4886 [doc] Refine the deployment documentation (#11361)
     new 82deeab2fb [python] Add multiple version of document (#11391)
     new f7fb1acef9 feat: Modifying Slack Links (#11416)
     new 059b66b64f [Doc][Resources] Instruct users to use local storage if they have remote storage mounted to local (#11435)
     new 3447e6765c [Doc][DSIP] Move DSIP docs to the right place (#11442) (#11443)
     new 3d69e9edb1 [Doc][Security] Update instructions on worker groups (#11483)
     new 90cc1284a4 [Improvement-11550] [Doc]Document content update (#11577)
     new 7723f5bcae feat: update slack (#11578)
     new c8f0a66b37 [Doc][Bug] Fix resource center docs for standalone mode (#11600)
     new 6797ae2d97 [DOC] should notice that need setting the full path when call the resource file #11620 (#11621)
     new 11b78a871c Fix homepage email subscription link (#11622)
     new f41af79ef6  [doc] Correct E2E Doc, fix WorkerGroupPage typo (#11629)
     new 85b96ddc15 [improvement-#11630]fix document about common.properties (#11653)
     new 59e745be0a [fix][python] Sql pattern add truncate. (#11666)
     new 1f88c5a637 [bug][python] Fix task switch error when default branch not defined last (#11606)
     new 8a12ae746d update PyDolphinScheduler documentation link. (#11474)
     new 9f0b2ca550 [python] Add support interpreter version 310 and 311-dev (#11170)
     new 257187c521 [python] Refactor structure to avoid cycle import (#11167)

The 20 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/py-ci.yml                        |  30 ++++---
 docs/configs/site.js                               |  60 ++++++--------
 docs/docs/en/DSIP.md                               |  84 ++++++++++----------
 docs/docs/en/architecture/configuration.md         |   2 +
 docs/docs/en/contribute/e2e-test.md                |   2 +-
 docs/docs/en/contribute/have-questions.md          |  49 ++----------
 docs/docs/en/guide/howto/datasource-setting.md     |  39 +++++++++-
 docs/docs/en/guide/installation/pseudo-cluster.md  |   3 +-
 docs/docs/en/guide/project/workflow-definition.md  |  61 ++++++++++-----
 docs/docs/en/guide/resource/configuration.md       |  29 ++++---
 docs/docs/en/guide/resource/file-manage.md         |   2 +
 docs/docs/en/guide/security.md                     |  23 ++++--
 docs/docs/en/guide/start/docker.md                 |   2 +-
 docs/docs/en/guide/start/quick-start.md            |  13 +---
 docs/docs/zh/DSIP.md                               |  86 ++++++++++-----------
 docs/docs/zh/architecture/configuration.md         |   2 +
 docs/docs/zh/contribute/e2e-test.md                |   2 +-
 docs/docs/zh/contribute/have-questions.md          |  51 ++----------
 docs/docs/zh/guide/howto/datasource-setting.md     |  37 ++++++++-
 docs/docs/zh/guide/installation/pseudo-cluster.md  |   5 +-
 docs/docs/zh/guide/project/workflow-definition.md  |  54 +++++++++----
 docs/docs/zh/guide/resource/configuration.md       |  32 ++++----
 docs/docs/zh/guide/resource/file-manage.md         |   2 +
 docs/docs/zh/guide/security.md                     |  21 +++--
 docs/docs/zh/guide/start/docker.md                 |   2 +-
 docs/docs/zh/guide/start/quick-start.md            |   9 +--
 docs/img/dag1.png                                  | Bin 110306 -> 0 bytes
 docs/img/log_en.png                                | Bin 101272 -> 0 bytes
 .../dev/project/workflow-concurrency-from.png      | Bin 0 -> 52048 bytes
 .../new_ui/dev/project/workflow-concurrency.png    | Bin 0 -> 69050 bytes
 .../dev/project/workflow-configuredTiming.png      | Bin 0 -> 51860 bytes
 .../project/workflow-configuredTimingResult.png    | Bin 0 -> 52048 bytes
 docs/img/new_ui/dev/project/workflow-date.png      | Bin 1182739 -> 0 bytes
 .../img/new_ui/dev/project/workflow-dependency.png | Bin 0 -> 47150 bytes
 docs/img/new_ui/dev/project/workflow-input.png     | Bin 0 -> 54766 bytes
 .../new_ui/dev/project/workflow-pageSelection.png  | Bin 0 -> 67199 bytes
 docs/img/new_ui/dev/project/workflow-parallel.png  | Bin 0 -> 53845 bytes
 docs/img/new_ui/dev/project/workflow-serial.png    | Bin 0 -> 54577 bytes
 .../project/workflow-unconfiguredTimingResult.png  | Bin 0 -> 64994 bytes
 .../new_ui/dev/project/workflow_date_manual.png    | Bin 25415 -> 0 bytes
 docs/img/new_ui/dev/quick-start/log.png            | Bin 0 -> 288672 bytes
 .../new_ui/dev/quick-start/workflow-definition.png | Bin 0 -> 146786 bytes
 docs/img/process_definition_en.png                 | Bin 102514 -> 0 bytes
 docs/img/task-log.png                              | Bin 104454 -> 0 bytes
 .../pydolphinscheduler/DEVELOP.md                  |  25 +++++-
 .../pydolphinscheduler/README.md                   |   5 +-
 .../pydolphinscheduler/docs/Makefile               |   5 ++
 .../docs/source/_templates/versioning.html         |  27 +++++++
 .../docs/source/_templates/versions.html           |  46 +++++++++++
 .../pydolphinscheduler/docs/source/api.rst         |   6 +-
 .../pydolphinscheduler/docs/source/conf.py         |  38 +++++++--
 .../pydolphinscheduler/docs/source/config.rst      |   2 +-
 .../pydolphinscheduler/setup.py                    |  14 +++-
 .../src/pydolphinscheduler/cli/commands.py         |   8 +-
 .../pydolphinscheduler/{core => }/configuration.py |   0
 .../src/pydolphinscheduler/core/__init__.py        |   2 +-
 .../pydolphinscheduler/core/process_definition.py  |  13 ++--
 .../src/pydolphinscheduler/core/resource.py        |   2 +-
 .../src/pydolphinscheduler/core/task.py            |   4 +-
 .../{core => }/default_config.yaml                 |   2 +-
 .../examples/task_dependent_example.py             |   2 +-
 .../src/pydolphinscheduler/java_gateway.py         |   2 +-
 .../{side => models}/__init__.py                   |  16 ++--
 .../pydolphinscheduler/{core => models}/base.py    |   2 +-
 .../{core => models}/base_side.py                  |   8 +-
 .../pydolphinscheduler/{side => models}/project.py |   4 +-
 .../pydolphinscheduler/{side => models}/queue.py   |   4 +-
 .../pydolphinscheduler/{side => models}/tenant.py  |   4 +-
 .../pydolphinscheduler/{side => models}/user.py    |   5 +-
 .../{side => models}/worker_group.py               |   2 +-
 .../src/pydolphinscheduler/tasks/condition.py      |   2 +-
 .../src/pydolphinscheduler/tasks/dependent.py      |   6 +-
 .../src/pydolphinscheduler/tasks/sql.py            |   2 +-
 .../src/pydolphinscheduler/tasks/switch.py         |  27 ++++---
 .../pydolphinscheduler/tests/cli/test_config.py    |   2 +-
 .../pydolphinscheduler/tests/cli/test_version.py   |  24 ++++--
 .../tests/core/test_configuration.py               |   4 +-
 .../tests/core/test_process_definition.py          |   4 +-
 .../pydolphinscheduler/tests/tasks/test_sql.py     |   1 +
 .../pydolphinscheduler/tests/testing/path.py       |   2 +-
 dolphinscheduler-python/pydolphinscheduler/tox.ini |  18 ++++-
 .../src/main/resources/application.yaml            |   6 +-
 82 files changed, 632 insertions(+), 416 deletions(-)
 delete mode 100644 docs/img/dag1.png
 delete mode 100644 docs/img/log_en.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-concurrency-from.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-concurrency.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-configuredTiming.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-configuredTimingResult.png
 delete mode 100644 docs/img/new_ui/dev/project/workflow-date.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-dependency.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-input.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-pageSelection.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-parallel.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-serial.png
 create mode 100644 docs/img/new_ui/dev/project/workflow-unconfiguredTimingResult.png
 delete mode 100644 docs/img/new_ui/dev/project/workflow_date_manual.png
 create mode 100644 docs/img/new_ui/dev/quick-start/log.png
 create mode 100644 docs/img/new_ui/dev/quick-start/workflow-definition.png
 delete mode 100644 docs/img/process_definition_en.png
 delete mode 100644 docs/img/task-log.png
 create mode 100644 dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versioning.html
 create mode 100644 dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versions.html
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{core => }/configuration.py (100%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{core => }/default_config.yaml (99%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{side => models}/__init__.py (63%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{core => models}/base.py (98%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{core => models}/base_side.py (86%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{side => models}/project.py (93%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{side => models}/queue.py (93%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{side => models}/tenant.py (93%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{side => models}/user.py (94%)
 rename dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/{side => models}/worker_group.py (95%)


[dolphinscheduler] 01/20: [doc] Improve the document introduction of complement (#11275)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 82a8956e7b4e00de38c5b22e723ad13687f2bff5
Author: insist777 <84...@users.noreply.github.com>
AuthorDate: Tue Aug 9 19:35:25 2022 +0800

    [doc] Improve the document introduction of complement (#11275)
    
    (cherry picked from commit 8ad6e10da536bb7dcbbd43774fd0f29dd05f0ece)
---
 docs/docs/en/guide/project/workflow-definition.md  |  59 ++++++++++++++-------
 docs/docs/zh/guide/project/workflow-definition.md  |  52 +++++++++++++-----
 .../dev/project/workflow-concurrency-from.png      | Bin 0 -> 52048 bytes
 .../new_ui/dev/project/workflow-concurrency.png    | Bin 0 -> 69050 bytes
 .../dev/project/workflow-configuredTiming.png      | Bin 0 -> 51860 bytes
 .../project/workflow-configuredTimingResult.png    | Bin 0 -> 52048 bytes
 docs/img/new_ui/dev/project/workflow-date.png      | Bin 1182739 -> 0 bytes
 .../img/new_ui/dev/project/workflow-dependency.png | Bin 0 -> 47150 bytes
 docs/img/new_ui/dev/project/workflow-input.png     | Bin 0 -> 54766 bytes
 .../new_ui/dev/project/workflow-pageSelection.png  | Bin 0 -> 67199 bytes
 docs/img/new_ui/dev/project/workflow-parallel.png  | Bin 0 -> 53845 bytes
 docs/img/new_ui/dev/project/workflow-serial.png    | Bin 0 -> 54577 bytes
 .../project/workflow-unconfiguredTimingResult.png  | Bin 0 -> 64994 bytes
 .../new_ui/dev/project/workflow_date_manual.png    | Bin 25415 -> 0 bytes
 14 files changed, 79 insertions(+), 32 deletions(-)

diff --git a/docs/docs/en/guide/project/workflow-definition.md b/docs/docs/en/guide/project/workflow-definition.md
index 2348488ebc..2137d3df38 100644
--- a/docs/docs/en/guide/project/workflow-definition.md
+++ b/docs/docs/en/guide/project/workflow-definition.md
@@ -97,24 +97,47 @@ The following are the operation functions of the workflow definition list:
   * Recipient: select notification policy||timeout alarm||when fault tolerance occurs, process result information or alarm email will be sent to the recipient list.
   * Cc: select notification policy||timeout alarm||when fault tolerance occurs, the process result information or warning email will be copied to the CC list.
   * Startup parameter: Set or overwrite global parameter values when starting a new process instance.
-  * Complement: includes serial complement and parallel complement and supports manual date input and date selection. Serial complement defines, within the specified time range, executes the complements from the start date to the end date by sequential and N process instances are generated in sequence. Parallel complement defines executing the complement concurrently in the multiple days to generate N process instances within the specified time range. Manual date input defines: manually  [...]
-    * Dependent Mode: Trigger the complement of workflow instances that the downstream dependent node depends on the current workflow(It is required that the scheduled status of the workflow instance of the current replenishment is online, and only the downstream supplement directly dependent on the current workflow will be triggered).
-    * You can select complement time range (When the scheduled configuration is not online, the daily complement will be performed by default according to the selected time range.If the timing configuration is online, it will be complemented according to the selected time range in combination with the timing configuration) when executing a timing workflow definition. For example, need to fill in the data from 1st May to 10th May, as shown in the figure below:
-
-    ![workflow-date](../../../../img/new_ui/dev/project/workflow-date.png)
-
-    > Serial mode: the complement execute sequentially from 9th May to 10th May, and the process instance page generates 2 process instances;
-
-    > Parallel mode: The tasks from 9th May to 10th May execute simultaneously, and the process instance page generates 2 process instances;
- 
-    * You can manually enter the complement dates (independent from the timing configuration) to execute the complement data to workflow definitions. The figure below is an example to make complement data from 9th May to 10th May:
- 
-    ![workflow-date](../../../../img/new_ui/dev/project/workflow_date_manual.png)
-
-    > Serial mode: the complement execute sequentially from 9th May to 10th May, and the process instance page generates 2 process instances;
-
-    > Parallel mode: The tasks from 9th May to 10th May execute simultaneously, and the process instance page generates 2 process instances;
-
+  * Complement: refers to running the workflow definition within the specified date range and generating the corresponding workflow instance according to the complement policy. The complement policy includes two modes: **serial complement** and **parallel complement**. The date can be selected on the page or entered manually.
+  
+    * Serial complement: within the specified time range, complement is executed from the start date to the end date, and multiple process instances are generated in turn; Click Run workflow and select the serial complement mode: for example, from July 9 to July 10, execute in sequence, and generate two process instances in sequence on the process instance page.
+        
+        ![workflow-serial](../../../../img/new_ui/dev/project/workflow-serial.png)
+    
+    * Parallel Replenishment: within the specified time range, replenishment is performed simultaneously for multiple days, and multiple process instances are generated at the same time. Enter date manually: manually enter a date in the comma separated date format of 'yyyy MM DD hh:mm:ss'.Click Run workflow and select the parallel complement mode: for example, execute the workflow definition from July 9 to July 10 at the same time, and generate two process instances on the process instan [...]
+       
+        ![workflow-parallel](../../../../img/new_ui/dev/project/workflow-parallel.png)
+    
+    * Concurrency: refers to the maximum number of instances executed in parallel in the parallel complement mode.For example, if tasks from July 6 to July 10 are executed at the same time, and the concurrency is 2, then the process instance is:
+       
+        ![workflow-concurrency-from](../../../../img/new_ui/dev/project/workflow-concurrency-from.png)
+        
+        ![workflow-concurrency](../../../../img/new_ui/dev/project/workflow-concurrency.png)
+    
+    * Dependency mode: whether to trigger the replenishment of workflow instances that downstream dependent nodes depend on the current workflow (the timing status of workflow instances that require the current replenishment is online, which will only trigger the replenishment of downstream directly dependent on the current workflow).
+       
+        ![workflow-dependency](../../../../img/new_ui/dev/project/workflow-dependency.png)
+    
+    * Date selection:
+  
+         1. Select the date through the page:
+        
+         ![workflow-pageSelection](../../../../img/new_ui/dev/project/workflow-pageSelection.png)
+         
+         2. Manual input:
+         
+         ![workflow-input](../../../../img/new_ui/dev/project/workflow-input.png)
+    
+    * Relationship between complement and timing configuration:
+  
+         1. Unconfigured timing: When there is no timing configuration, the daily replenishment will be performed by default according to the selected time range. For example, the workflow scheduling date is July 7 to July 10. If timing is not configured, the process instance is:
+        
+         ![workflow-unconfiguredTimingResult](../../../../img/new_ui/dev/project/workflow-unconfiguredTimingResult.png)
+         
+         2. Configured timing: If there is a timing configuration, it will be supplemented according to the selected time range in combination with the timing configuration. For example, the workflow scheduling date is July 7 to July 10, and the timing is configured (running every 5 a.m.). The process example is:
+         
+         ![workflow-configuredTiming](../../../../img/new_ui/dev/project/workflow-configuredTiming.png)
+         
+         ![workflow-configuredTimingResult](../../../../img/new_ui/dev/project/workflow-configuredTimingResult.png)
 ## Run the task alone
 
 - Right-click the task and click the `Start` button (only online tasks can be clicked to run).
diff --git a/docs/docs/zh/guide/project/workflow-definition.md b/docs/docs/zh/guide/project/workflow-definition.md
index 5d110b6554..65fbbdebf9 100644
--- a/docs/docs/zh/guide/project/workflow-definition.md
+++ b/docs/docs/zh/guide/project/workflow-definition.md
@@ -75,23 +75,47 @@
   * 收件人:选择通知策略||超时报警||发生容错时,会发送流程信息或告警邮件到收件人列表。
   * 抄送人:选择通知策略||超时报警||发生容错时,会抄送流程信息或告警邮件到抄送人列表。
   * 启动参数: 在启动新的流程实例时,设置或覆盖全局参数的值。
-  * 补数:包括串行补数、并行补数 2 种模式,日期可以通过选择或者手动进行输入。串行补数:指定时间范围内,从开始日期至结束日期依次执行补数,依次生成N条流程实例;并行补数:指定时间范围内,多天同时进行补数,同时生成 N 条流程实例。手动输入日期:手动输入以逗号分割日期格式为 `yyyy-MM-dd HH:mm:ss` 的日期。日期选择:通过前端选择日期。
+  * 补数:指运行指定日期范围内的工作流定义,根据补数策略生成对应的工作流实例,补数策略包括串行补数、并行补数 2 种模式,日期可以通过页面选择或者手动输入。
+   
+    * 串行补数:指定时间范围内,从开始日期至结束日期依次执行补数,依次生成多条流程实例;点击运行工作流,选择串行补数模式:例如从7月 9号到7月10号依次执行,依次在流程实例页面生成两条流程实例。
+  
+    ![workflow-serial](../../../../img/new_ui/dev/project/workflow-serial.png)
+    
+    * 并行补数: 指定时间范围内,同时进行多天的补数,同时生成多条流程实例。手动输入日期:手动输入以逗号分割日期格式为 `yyyy-MM-dd HH:mm:ss` 的日期。点击运行工作流,选择并行补数模式:例如同时执行7月9号到7月10号的工作流定义,同时在流程实例页面生成两条流程实例(执行策略为串行时流程实例按照策略执行)。
+    
+    ![workflow-parallel](../../../../img/new_ui/dev/project/workflow-parallel.png)
+  
+        * 并行度:是指在并行补数的模式下,最多并行执行的实例数。例如同时执行7月6号到7月10号的工作流定义,并行度为2,那么流程实例为:
+    ![workflow-concurrency-from](../../../../img/new_ui/dev/project/workflow-concurrency-from.png)
+    
+    ![workflow-concurrency](../../../../img/new_ui/dev/project/workflow-concurrency.png)
+   
     * 依赖模式:是否触发下游依赖节点依赖到当前工作流的工作流实例的补数(要求当前补数的工作流实例的定时状态为已上线,只会触发下游直接依赖到当前工作流的补数)。
-    * 补数: 执行指定日期的工作流定义,可以选择补数时间范围(当定时配置未上线时默认会根据所选时间范围进行每天一次的补数,如果定时配置已上线则会根据所选的时间范围结合定时配置进行补数),比如需要补 5 月 9 号到 5 月 10 号的数据,如下图所示: 
-
-    ![workflow-date](../../../../img/new_ui/dev/project/workflow-date.png)
-
-    > 串行模式:补数从 5 月 9 号到 5 月 10 号依次执行,依次在流程实例页面生成两条流程实例;
-
-    > 并行模式:同时执行 5 月 9 号到 5 月 10 号的任务,同时在流程实例页面生成两条流程实例。
-
-    * 补数: 通过手动输入补数时间(不依赖定时配置)完成工作流定义的补数。比如需要补 5 月 9 号到 5 月 10 号的数据,如下图所示:
-
-    ![workflow-date](../../../../img/new_ui/dev/project/workflow_date_manual.png)    
+    
+    ![workflow-dependency](../../../../img/new_ui/dev/project/workflow-dependency.png)
+    
+    * 日期选择:
+        1. 通过页面选择日期:
+        
+        ![workflow-pageSelection](../../../../img/new_ui/dev/project/workflow-pageSelection.png)
+        
+        2. 手动输入:
+        
+        ![workflow-input](../../../../img/new_ui/dev/project/workflow-input.png)
+     
+     * 补数与定时配置的关系:
+       
+        1. 未配置定时:当没有定时配置时默认会根据所选时间范围进行每天一次的补数,比如该工作流调度日期为7月 7号到7月10号,未配置定时,流程实例为:
+        
+        ![workflow-unconfiguredTimingResult](../../../../img/new_ui/dev/project/workflow-unconfiguredTimingResult.png)
 
-    > 串行模式:补数从 5 月 9 号到 5 月 10 号依次执行,依次在流程实例页面生成两条流程实例;
+        2. 已配置定时:如果有定时配置则会根据所选的时间范围结合定时配置进行补数,比如该工作流调度日期为7月 7号到7月10号,配置了定时(每日凌晨5点运行),流程实例为:
+        
+        ![workflow-configuredTiming](../../../../img/new_ui/dev/project/workflow-configuredTiming.png)
+        
+        ![workflow-configuredTimingResult](../../../../img/new_ui/dev/project/workflow-configuredTimingResult.png)
+    
 
-    > 并行模式:同时执行 5 月 9 号到 5 月 10 号的任务,同时在流程实例页面生成两条流程实例。
 
 ## 单独运行任务
 
diff --git a/docs/img/new_ui/dev/project/workflow-concurrency-from.png b/docs/img/new_ui/dev/project/workflow-concurrency-from.png
new file mode 100644
index 0000000000..e16f9710cc
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-concurrency-from.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-concurrency.png b/docs/img/new_ui/dev/project/workflow-concurrency.png
new file mode 100644
index 0000000000..af90317c9d
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-concurrency.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-configuredTiming.png b/docs/img/new_ui/dev/project/workflow-configuredTiming.png
new file mode 100644
index 0000000000..c7c4be64f3
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-configuredTiming.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-configuredTimingResult.png b/docs/img/new_ui/dev/project/workflow-configuredTimingResult.png
new file mode 100644
index 0000000000..658d32af19
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-configuredTimingResult.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-date.png b/docs/img/new_ui/dev/project/workflow-date.png
deleted file mode 100644
index 629274ef8a..0000000000
Binary files a/docs/img/new_ui/dev/project/workflow-date.png and /dev/null differ
diff --git a/docs/img/new_ui/dev/project/workflow-dependency.png b/docs/img/new_ui/dev/project/workflow-dependency.png
new file mode 100644
index 0000000000..d2cd8a0a77
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-dependency.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-input.png b/docs/img/new_ui/dev/project/workflow-input.png
new file mode 100644
index 0000000000..f1d04882ef
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-input.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-pageSelection.png b/docs/img/new_ui/dev/project/workflow-pageSelection.png
new file mode 100644
index 0000000000..30975df65d
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-pageSelection.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-parallel.png b/docs/img/new_ui/dev/project/workflow-parallel.png
new file mode 100644
index 0000000000..e11634b0ea
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-parallel.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-serial.png b/docs/img/new_ui/dev/project/workflow-serial.png
new file mode 100644
index 0000000000..f9731965d6
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-serial.png differ
diff --git a/docs/img/new_ui/dev/project/workflow-unconfiguredTimingResult.png b/docs/img/new_ui/dev/project/workflow-unconfiguredTimingResult.png
new file mode 100644
index 0000000000..f7c16af46e
Binary files /dev/null and b/docs/img/new_ui/dev/project/workflow-unconfiguredTimingResult.png differ
diff --git a/docs/img/new_ui/dev/project/workflow_date_manual.png b/docs/img/new_ui/dev/project/workflow_date_manual.png
deleted file mode 100644
index 70d03372f9..0000000000
Binary files a/docs/img/new_ui/dev/project/workflow_date_manual.png and /dev/null differ


[dolphinscheduler] 11/20: [Doc][Bug] Fix resource center docs for standalone mode (#11600)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit c8f0a66b37d965878f3d6aa3c967b0fd7a8b9a3b
Author: Eric Gao <er...@gmail.com>
AuthorDate: Tue Aug 23 09:46:01 2022 +0800

    [Doc][Bug] Fix resource center docs for standalone mode (#11600)
    
    * Fix resource center docs for standalone mode
    
    * Remove useless images
    
    (cherry picked from commit ff4d2c9460d36e0cf7523927072c0772782a512b)
---
 docs/docs/en/guide/resource/configuration.md |   6 ++++--
 docs/docs/zh/guide/resource/configuration.md |  14 ++++++++------
 docs/img/dag1.png                            | Bin 110306 -> 0 bytes
 docs/img/log_en.png                          | Bin 101272 -> 0 bytes
 docs/img/process_definition_en.png           | Bin 102514 -> 0 bytes
 docs/img/task-log.png                        | Bin 104454 -> 0 bytes
 6 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/docs/docs/en/guide/resource/configuration.md b/docs/docs/en/guide/resource/configuration.md
index 219f603e14..132747b711 100644
--- a/docs/docs/en/guide/resource/configuration.md
+++ b/docs/docs/en/guide/resource/configuration.md
@@ -9,7 +9,8 @@
 
 ### Configure `common.properties`
 
-Configure `api-server/conf/common.properties` and `worker-server/conf/common.properties` as follows:
+If you deploy DolphinScheduler in `Cluster` or `Pseudo-Cluster` mode, you need to configure `api-server/conf/common.properties` and `worker-server/conf/common.properties`.
+If you deploy DolphinScheduler in `Standalone` mode, you only need to configure `standalone-server/conf/common.properties` as follows:
 
 - Change `resource.storage.upload.base.path` to your local directory path. Please make sure the `tenant resource.hdfs.root.user` has read and write permissions for `resource.storage.upload.base.path`, e,g. `/tmp/dolphinscheduler`. `DolphinScheduler` will create the directory you configure if it does not exist.
 - Modify `resource.storage.type=HDFS` and `resource.hdfs.fs.defaultFS=file:///`.
@@ -136,6 +137,7 @@ task.resource.limit.state=false
 
 > **Note:**
 >
-> *  If only the `api-server/conf/common.properties` file is configured, then resource uploading is enabled, but you can not use resources in task. If you want to use or execute the files in the workflow you need to configure `worker-server/conf/common.properties` too.
+> * If only the `api-server/conf/common.properties` file is configured, then resource uploading is enabled, but you can not use resources in task. If you want to use or execute the files in the workflow you need to configure `worker-server/conf/common.properties` too.
 > * If you want to use the resource upload function, the deployment user in [installation and deployment](../installation/standalone.md) must have relevant operation authority.
 > * If you using a Hadoop cluster with HA, you need to enable HDFS resource upload, and you need to copy the `core-site.xml` and `hdfs-site.xml` under the Hadoop cluster to `worker-server/conf` and `api-server/conf`, otherwise skip this copy step.
+
diff --git a/docs/docs/zh/guide/resource/configuration.md b/docs/docs/zh/guide/resource/configuration.md
index b77a1286a4..a54bd4abd0 100644
--- a/docs/docs/zh/guide/resource/configuration.md
+++ b/docs/docs/zh/guide/resource/configuration.md
@@ -9,12 +9,13 @@
 
 ### 配置 `common.properties` 文件
 
-对以下路径的文件进行配置:`api-server/conf/common.properties` 和 `worker-server/conf/common.properties`
+如果您以 `集群` 模式或者 `伪集群` 模式部署DolphinScheduler,您需要对以下路径的文件进行配置:`api-server/conf/common.properties` 和 `worker-server/conf/common.properties`;
+若您以 `单机` 模式部署DolphinScheduler,您只需要配置 `standalone-server/conf/common.properties`,具体配置如下:
 
 - 将 `resource.storage.upload.base.path` 改为本地存储路径,请确保部署 DolphinScheduler 的用户拥有读写权限,例如:`resource.storage.upload.base.path=/tmp/dolphinscheduler`。当路径不存在时会自动创建文件夹
 - 修改 `resource.storage.type=HDFS` 和 `resource.hdfs.fs.defaultFS=file:///`。
 
->    **注意**:如果您不想用默认值作为资源中心的基础路径,请修改`resource.storage.upload.base.path`的值。
+> **注意**:如果您不想用默认值作为资源中心的基础路径,请修改`resource.storage.upload.base.path`的值。
 
 ## 对接分布式或远端对象存储
 
@@ -123,8 +124,9 @@ development.state=false
 alert.rpc.port=50052
 ```
 
->    **注意**:
+> **注意**:
 >
->    * 如果只配置了 `api-server/conf/common.properties` 的文件,则只是开启了资源上传的操作,并不能满足正常使用。如果想要在工作流中执行相关文件则需要额外配置 `worker-server/conf/common.properties`。
->    * 如果用到资源上传的功能,那么[安装部署](../installation/standalone.md)中,部署用户需要有这部分的操作权限。
->    * 如果 Hadoop 集群的 NameNode 配置了 HA 的话,需要开启 HDFS 类型的资源上传,同时需要将 Hadoop 集群下的 `core-site.xml` 和 `hdfs-site.xml` 复制到 `worker-server/conf` 以及 `api-server/conf`,非 NameNode HA 跳过次步骤。
+> * 如果只配置了 `api-server/conf/common.properties` 的文件,则只是开启了资源上传的操作,并不能满足正常使用。如果想要在工作流中执行相关文件则需要额外配置 `worker-server/conf/common.properties`。
+> * 如果用到资源上传的功能,那么[安装部署](../installation/standalone.md)中,部署用户需要有这部分的操作权限。
+> * 如果 Hadoop 集群的 NameNode 配置了 HA 的话,需要开启 HDFS 类型的资源上传,同时需要将 Hadoop 集群下的 `core-site.xml` 和 `hdfs-site.xml` 复制到 `worker-server/conf` 以及 `api-server/conf`,非 NameNode HA 跳过次步骤。
+
diff --git a/docs/img/dag1.png b/docs/img/dag1.png
deleted file mode 100644
index 9b06e4b9c3..0000000000
Binary files a/docs/img/dag1.png and /dev/null differ
diff --git a/docs/img/log_en.png b/docs/img/log_en.png
deleted file mode 100644
index d0c1948c2f..0000000000
Binary files a/docs/img/log_en.png and /dev/null differ
diff --git a/docs/img/process_definition_en.png b/docs/img/process_definition_en.png
deleted file mode 100644
index 73707f4278..0000000000
Binary files a/docs/img/process_definition_en.png and /dev/null differ
diff --git a/docs/img/task-log.png b/docs/img/task-log.png
deleted file mode 100644
index 13fb0afd49..0000000000
Binary files a/docs/img/task-log.png and /dev/null differ


[dolphinscheduler] 14/20: [doc] Correct E2E Doc, fix WorkerGroupPage typo (#11629)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit f41af79ef68f9f45283b90b0a164a343d053d629
Author: 旺阳 <qi...@cisco.com>
AuthorDate: Sun Aug 28 17:44:06 2022 +0800

     [doc] Correct E2E Doc, fix WorkerGroupPage typo (#11629)
    
    (cherry picked from commit 6e4d974b91a38047d0073a36944817a0cd21a6fd)
---
 docs/docs/en/contribute/e2e-test.md | 2 +-
 docs/docs/zh/contribute/e2e-test.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/docs/en/contribute/e2e-test.md b/docs/docs/en/contribute/e2e-test.md
index 2fd853db93..82affec552 100644
--- a/docs/docs/en/contribute/e2e-test.md
+++ b/docs/docs/en/contribute/e2e-test.md
@@ -74,7 +74,7 @@ During the test process, we only test the elements we need to focus on, not all
 
 In addition, during the testing process, the elements are not manipulated directly. The general choice is to package the corresponding methods to achieve the effect of reuse. For example, if you want to log in, you input your username and password through the `public TenantPage login()` method to manipulate the elements you pass in to achieve the effect of logging in. That is, when the user finishes logging in, he or she jumps to the Security Centre (which goes to the Tenant Management p [...]
 
-The goToTab method is provided in SecurityPage to test the corresponding sidebar jumps, which include TenantPage, UserPage and WorkerGroupPge and QueuePage. These pages are implemented in the same way, to test that the form's input, add and delete buttons return the corresponding pages.
+The SecurityPage provides goToTab methods to test the corresponding sidebar jumps, mainly including TenantPage, UserPage, WorkerGroupPage and QueuePage. These pages are implemented in the same way, mainly to test whether the input, add and delete buttons of the form can return to the corresponding page.
 
 ```java
  public <T extends SecurityPage.Tab> T goToTab(Class<T> tab) {
diff --git a/docs/docs/zh/contribute/e2e-test.md b/docs/docs/zh/contribute/e2e-test.md
index 69535536e9..13b8d4ab1e 100644
--- a/docs/docs/zh/contribute/e2e-test.md
+++ b/docs/docs/zh/contribute/e2e-test.md
@@ -73,7 +73,7 @@ public final class LoginPage extends NavBarPage {
 
 此外,在测试过程中,并不会直接去操作元素,一般选择封装对应的方法,以达到复用的效果。例如想要登录的话,直接传入用户名和密码,通过 `public TenantPage login()` 方法去操作所传入的元素,从而达到实现登录的效果,即当用户完成登录之后,跳转到安全中心(默认进入到租户管理页面)。
 
-在安全中心页面(SecurityPage)提供了 goToTab 方法,用于测试对应侧栏的跳转,主要包括:租户管理(TenantPage)、用户管理(UserPage)、工作组管理(WorkerGroupPge)和队列管理(QueuePage)。这些页面的实现方式同理,主要测试表单的输入、增加和删除按钮是否能够返回出对应的页面。
+在安全中心页面(SecurityPage)提供了 goToTab 方法,用于测试对应侧栏的跳转,主要包括:租户管理(TenantPage)、用户管理(UserPage)、工作组管理(WorkerGroupPage)和队列管理(QueuePage)。这些页面的实现方式同理,主要测试表单的输入、增加和删除按钮是否能够返回出对应的页面。
 
 ```java
  public <T extends SecurityPage.Tab> T goToTab(Class<T> tab) {


[dolphinscheduler] 17/20: [bug][python] Fix task switch error when default branch not defined last (#11606)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 1f88c5a637655fefca11cbc4053d1e59e8803c92
Author: JieguangZhou <ji...@163.com>
AuthorDate: Sat Aug 27 18:48:09 2022 +0800

    [bug][python] Fix task switch error when default branch not defined last (#11606)
    
    Co-authored-by: Jiajie Zhong <zh...@gmail.com>
    (cherry picked from commit 635fde19817800221903034c58c858df86e54714)
---
 .../src/pydolphinscheduler/tasks/switch.py         | 25 +++++++++++-----------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py
index 0c9a2b82b3..05ac9c1329 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py
@@ -99,23 +99,22 @@ class SwitchCondition(Base):
         result = []
         num_branch_default = 0
         for condition in self.args:
-            if isinstance(condition, SwitchBranch):
-                if num_branch_default < 1:
-                    if isinstance(condition, Default):
-                        self._DEFINE_ATTR.add("next_node")
-                        setattr(self, "next_node", condition.next_node)
-                        num_branch_default += 1
-                    elif isinstance(condition, Branch):
-                        result.append(condition.get_define())
-                else:
-                    raise PyDSParamException(
-                        "Task Switch's parameter only support exactly one default branch."
-                    )
-            else:
+            if not isinstance(condition, SwitchBranch):
                 raise PyDSParamException(
                     "Task Switch's parameter only support SwitchBranch but got %s.",
                     type(condition),
                 )
+            # Default number branch checker
+            if num_branch_default >= 1 and isinstance(condition, Default):
+                raise PyDSParamException(
+                    "Task Switch's parameter only support exactly one default branch."
+                )
+            if isinstance(condition, Default):
+                self._DEFINE_ATTR.add("next_node")
+                setattr(self, "next_node", condition.next_node)
+                num_branch_default += 1
+            elif isinstance(condition, Branch):
+                result.append(condition.get_define())
         # Handle switch default branch, default value is `""` if not provide.
         if num_branch_default == 0:
             self._DEFINE_ATTR.add("next_node")


[dolphinscheduler] 04/20: [python] Add multiple version of document (#11391)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 82deeab2fb37813754bbfe9f00ef8327eca03723
Author: Jiajie Zhong <zh...@gmail.com>
AuthorDate: Thu Aug 11 12:02:29 2022 +0800

    [python] Add multiple version of document (#11391)
    
    * Using sphinx-multiversion to support multiple version
    of python api document
    * change python api sidebar link
    * fix whitelist_externals deprecated and add git
    
    close: #8227
    
    (cherry picked from commit 26afd655cb26226aa5853355937e00880f259ee1)
---
 .github/workflows/py-ci.yml                        |  8 +++-
 .../pydolphinscheduler/DEVELOP.md                  | 23 +++++++++--
 .../pydolphinscheduler/docs/Makefile               |  5 +++
 .../docs/source/_templates/versioning.html         | 27 +++++++++++++
 .../docs/source/_templates/versions.html           | 46 ++++++++++++++++++++++
 .../pydolphinscheduler/docs/source/api.rst         |  4 +-
 .../pydolphinscheduler/docs/source/conf.py         | 38 +++++++++++++++---
 .../pydolphinscheduler/setup.py                    |  4 ++
 .../src/pydolphinscheduler/side/__init__.py        |  2 +-
 dolphinscheduler-python/pydolphinscheduler/tox.ini | 18 +++++++--
 10 files changed, 158 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/py-ci.yml b/.github/workflows/py-ci.yml
index 2c8e578a7a..b0e042c4e7 100644
--- a/.github/workflows/py-ci.yml
+++ b/.github/workflows/py-ci.yml
@@ -97,6 +97,10 @@ jobs:
     timeout-minutes: 15
     needs: lint
     runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        env-list: [doc-build, doc-build-multi]
     steps:
       - uses: actions/checkout@v2
       - name: Set up Python 3.7
@@ -106,9 +110,9 @@ jobs:
       - name: Install Dependences
         run: |
           python -m pip install --upgrade ${{ env.DEPENDENCES }}
-      - name: Run Tests Build Docs
+      - name: Run Build Docs Tests ${{ matrix.env-list }}
         run: |
-          python -m tox -vv -e doc-build-test
+          python -m tox -vv -e ${{ matrix.env-list }}
   local-ci:
     name: Local CI
     timeout-minutes: 15
diff --git a/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md b/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
index bdd0416675..926a467282 100644
--- a/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
+++ b/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
@@ -146,10 +146,24 @@ python -m flake8
 
 #### Testing
 
-## Build Docs
+## Build Document
 
 We use [sphinx][sphinx] to build docs. Dolphinscheduler Python API CI would automatically build docs when you submit pull request in 
-GitHub. You may locally ensure docs could be built suceessfully in case the failure blocks CI.
+GitHub. You may locally ensure docs could be built successfully in case the failure blocks CI, you can build by tox or manual.
+
+### Build Document Automatically with tox
+
+We integrated document build process into tox, you can build the latest document and all document(including history documents) via
+single command
+
+```shell
+# Build the latest document in dev branch
+tox -e doc-build
+# Build all documents, which including the latest and all history documents
+tox -e doc-build-multi
+```
+
+### Build Document Manually
 
 To build docs locally, install sphinx and related python modules first via:
 
@@ -157,13 +171,16 @@ To build docs locally, install sphinx and related python modules first via:
 python -m pip install '.[doc]'
 ``` 
 
-Then 
+Then go to document directory and execute the build command
 
 ```shell
 cd pydolphinscheduler/docs/
 make clean && make html
 ```
 
+> NOTE: We support build multiple versions of documents with [sphinx-multiversion](https://holzhaus.github.io/sphinx-multiversion/master/index.html),
+> you can build with command `git fetch --tags && make clean && make multiversion`
+
 ## Testing
 
 pydolphinscheduler using [pytest][pytest] to test our codebase. GitHub Action will run our test when you create
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/Makefile b/dolphinscheduler-python/pydolphinscheduler/docs/Makefile
index 985198a779..ff2c4ebb44 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/Makefile
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/Makefile
@@ -24,6 +24,7 @@
 # Add opts `turn warnings into errors` strict sphinx-build behavior
 SPHINXOPTS    ?= -W
 SPHINXBUILD   ?= sphinx-build
+SPHINXMULTIVERSION   ?= sphinx-multiversion
 SOURCEDIR     = source
 BUILDDIR      = build
 
@@ -37,3 +38,7 @@ help:
 # "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
 %: Makefile
 	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+# Create multiple version of docs
+multiversion:
+	@$(SPHINXMULTIVERSION) "$(SOURCEDIR)" "$(BUILDDIR)/html"
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versioning.html b/dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versioning.html
new file mode 100644
index 0000000000..47136c45cf
--- /dev/null
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versioning.html
@@ -0,0 +1,27 @@
+{#
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+#}
+
+{% if versions %}
+<h3>{{ _('Versions') }}</h3>
+<ul>
+  {%- for item in versions %}
+  <li><a href="{{ item.url }}">{{ item.name }}</a></li>
+  {%- endfor %}
+</ul>
+{% endif %}
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versions.html b/dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versions.html
new file mode 100644
index 0000000000..51b7271e9c
--- /dev/null
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/_templates/versions.html
@@ -0,0 +1,46 @@
+{#
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+#}
+
+{%- if current_version %}
+<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> Other Versions</span>
+    v: {{ current_version.name }}
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+    {%- if versions.tags %}
+    <dl>
+      <dt>Tags</dt>
+      {%- for item in versions.tags %}
+      <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
+      {%- endfor %}
+    </dl>
+    {%- endif %}
+    {%- if versions.branches %}
+    <dl>
+      <dt>Branches</dt>
+      {%- for item in versions.branches %}
+      <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
+      {%- endfor %}
+    </dl>
+    {%- endif %}
+  </div>
+</div>
+{%- endif %}
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst b/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst
index 8e55ea5583..f2dd4e5c57 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst
@@ -24,8 +24,8 @@ Core
 .. automodule:: pydolphinscheduler.core
   :inherited-members:
 
-Sides
------
+Models
+------
 
 .. automodule:: pydolphinscheduler.side
   :inherited-members:
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/conf.py b/dolphinscheduler-python/pydolphinscheduler/docs/source/conf.py
index b162e0cc50..23fc117fb7 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/conf.py
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/conf.py
@@ -26,17 +26,31 @@
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
+
+import os
+import sys
+from pathlib import Path
+
+# For sphinx-multiversion, we need to build API docs of the corresponding package version, related issue:
+# https://github.com/Holzhaus/sphinx-multiversion/issues/42
+pkg_src_dir = (
+    Path(os.environ.get("SPHINX_MULTIVERSION_SOURCEDIR", default="."))
+    .joinpath("../../src")
+    .resolve()
+)
+sys.path.insert(0, str(pkg_src_dir))
+# Debug to uncomment this to see the source path
+# print("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=")
+# print(pkg_src_dir)
+# [print(p) for p in sys.path]
+# print("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=")
 
 
 # -- Project information -----------------------------------------------------
 
 project = "pydolphinscheduler"
 copyright = "2022, apache"
-author = "apache"
+author = "apache dolphinscheduler contributors"
 
 # The full version, including alpha/beta/rc tags
 release = "0.0.1"
@@ -60,11 +74,25 @@ extensions = [
     # Add inline tabbed content
     "sphinx_inline_tabs",
     "sphinx_copybutton",
+    "sphinx_multiversion",
 ]
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ["_templates"]
 
+# sphinx_multiversion configuration
+html_sidebars = {
+    "**": [
+        "versioning.html",
+    ],
+}
+# Match all exists tag for pydolphinscheduler expect version 2.0.4(not release apache dolphinscheduler)
+smv_tag_whitelist = r"^(?!2.0.4)\d+\.\d+\.\d+$"
+smv_branch_whitelist = "dev"
+smv_remote_whitelist = r"^(origin|upstream)$"
+smv_released_pattern = "^refs/tags/.*$"
+smv_outputdir_format = "versions/{ref.name}"
+
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # This pattern also affects html_static_path and html_extra_path.
diff --git a/dolphinscheduler-python/pydolphinscheduler/setup.py b/dolphinscheduler-python/pydolphinscheduler/setup.py
index b1e3742310..fe36fa1018 100644
--- a/dolphinscheduler-python/pydolphinscheduler/setup.py
+++ b/dolphinscheduler-python/pydolphinscheduler/setup.py
@@ -53,6 +53,10 @@ doc = [
     "sphinx-click>=3.0",
     "sphinx-inline-tabs",
     "sphinx-copybutton>=0.4.0",
+    # Unreleased package have a feature we want(use correct version package for API ref), so we install from
+    # GitHub directly, see also:
+    # https://github.com/Holzhaus/sphinx-multiversion/issues/42#issuecomment-1210539786
+    "sphinx-multiversion @ git+https://github.com/Holzhaus/sphinx-multiversion#egg=sphinx-multiversion",
 ]
 
 test = [
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py
index c4479ddf24..014da11b84 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-"""Init Side package, Side package keep object related to DolphinScheduler but not in the Core part."""
+"""Init Models package, keeping object related to DolphinScheduler covert from Java Gateway Service."""
 
 from pydolphinscheduler.side.project import Project
 from pydolphinscheduler.side.queue import Queue
diff --git a/dolphinscheduler-python/pydolphinscheduler/tox.ini b/dolphinscheduler-python/pydolphinscheduler/tox.ini
index 8e9280f057..186fe456d4 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tox.ini
+++ b/dolphinscheduler-python/pydolphinscheduler/tox.ini
@@ -16,10 +16,12 @@
 # under the License.
 
 [tox]
-envlist = local-ci, auto-lint, lint, doc-build-test, code-test, integrate-test, py{36,37,38,39}
+envlist = local-ci, auto-lint, lint, doc-build, doc-build-multi, code-test, integrate-test, local-integrate-test, py{36,37,38,39}
 
 [testenv]
-whitelist_externals = make
+allowlist_externals =
+    make
+    git
 
 [testenv:auto-lint]
 extras = style
@@ -42,12 +44,20 @@ extras = test
 commands =
     python -m pytest --cov=pydolphinscheduler --cov-config={toxinidir}/.coveragerc tests/
 
-[testenv:doc-build-test]
+[testenv:doc-build]
 extras = doc
 commands =
     make -C {toxinidir}/docs clean
     make -C {toxinidir}/docs html
 
+[testenv:doc-build-multi]
+extras = doc
+commands =
+    # Get all tags for `multiversion` subcommand
+    git fetch --tags
+    make -C {toxinidir}/docs clean
+    make -C {toxinidir}/docs multiversion
+
 [testenv:integrate-test]
 extras = test
 commands =
@@ -58,4 +68,4 @@ extras = dev
 commands =
     {[testenv:lint]commands}
     {[testenv:code-test]commands}
-    {[testenv:doc-build-test]commands}
+    {[testenv:doc-build]commands}


[dolphinscheduler] 03/20: [doc] Refine the deployment documentation (#11361)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit be37dd4886e4b17f8cc26542dcd6749975915ed9
Author: insist777 <84...@users.noreply.github.com>
AuthorDate: Tue Aug 9 19:35:49 2022 +0800

    [doc] Refine the deployment documentation (#11361)
    
    (cherry picked from commit e9ccaffbe07158c68e999e65186ea37d6ed33ab0)
---
 docs/docs/en/guide/installation/pseudo-cluster.md | 3 ++-
 docs/docs/en/guide/start/docker.md                | 2 +-
 docs/docs/zh/guide/installation/pseudo-cluster.md | 3 ++-
 docs/docs/zh/guide/start/docker.md                | 2 +-
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/docs/docs/en/guide/installation/pseudo-cluster.md b/docs/docs/en/guide/installation/pseudo-cluster.md
index bd13bb2734..b01602e1dd 100644
--- a/docs/docs/en/guide/installation/pseudo-cluster.md
+++ b/docs/docs/en/guide/installation/pseudo-cluster.md
@@ -70,7 +70,7 @@ Go to the ZooKeeper installation directory, copy configure file `zoo_sample.cfg`
 ## Modify Configuration
 
 After completing the preparation of the basic environment, you need to modify the configuration file according to the
-environment you used. The configuration files are both in directory `bin/env` and named `install_env.sh` and `dolphinscheduler_env.sh`.
+environment you used. Change the environment configurations via `export <ENV_NAME>=<VALUE>`. The configuration files are located in directory `bin/env` as `install_env.sh` and `dolphinscheduler_env.sh`.
 
 ### Modify `install_env.sh`
 
@@ -83,6 +83,7 @@ each machine. You could find this file in the path `bin/env/install_env.sh` and
 # ---------------------------------------------------------
 # Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
 ips="localhost"
+sshPort="22"
 masters="localhost"
 workers="localhost:default"
 alertServer="localhost"
diff --git a/docs/docs/en/guide/start/docker.md b/docs/docs/en/guide/start/docker.md
index ed7a51b59d..5d5a189a78 100644
--- a/docs/docs/en/guide/start/docker.md
+++ b/docs/docs/en/guide/start/docker.md
@@ -38,7 +38,7 @@ DolphinScheduler in a long term. You have to install [docker-compose](https://do
 start servers.
 
 After installed docker-compose, it is recommended to modify some configurations for better experience. We highly recommended
-modify docker-compose's memory up to 4 GB.
+modify docker-compose's free memory up to 4 GB.
 
 - Mac:Click `Docker Desktop -> Preferences -> Resources -> Memory` modified it
 - Windows Docker Desktop:
diff --git a/docs/docs/zh/guide/installation/pseudo-cluster.md b/docs/docs/zh/guide/installation/pseudo-cluster.md
index 870a851a7d..3856f884c7 100644
--- a/docs/docs/zh/guide/installation/pseudo-cluster.md
+++ b/docs/docs/zh/guide/installation/pseudo-cluster.md
@@ -73,7 +73,7 @@ chmod 600 ~/.ssh/authorized_keys
 
 ### 修改 `install_env.sh` 文件
 
-文件 `install_env.sh` 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 `bin/env/install_env.sh` 中找到此文件,配置详情如下。
+文件 `install_env.sh` 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 `bin/env/install_env.sh` 中找到此文件,可通过以下方式更改env变量,export <ENV_NAME>=<VALUE>,配置详情如下。
 
 ```shell
 # ---------------------------------------------------------
@@ -81,6 +81,7 @@ chmod 600 ~/.ssh/authorized_keys
 # ---------------------------------------------------------
 # Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
 ips="localhost"
+sshPort="22"
 masters="localhost"
 workers="localhost:default"
 alertServer="localhost"
diff --git a/docs/docs/zh/guide/start/docker.md b/docs/docs/zh/guide/start/docker.md
index f3e0ac8efc..cedee18007 100644
--- a/docs/docs/zh/guide/start/docker.md
+++ b/docs/docs/zh/guide/start/docker.md
@@ -32,7 +32,7 @@ $ docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:2
 服务重启的时候保留元数据(如需要挂载到本地路径需要做指定)。他更健壮,能保证用户体验更加完整的 DolphinScheduler 服务。这种方式需要先安装
 [docker-compose](https://docs.docker.com/compose/install/),链接适用于 Mac,Linux,Windows。
 
-安装完成 docker-compose 后我们需要修改部分配置以便能更好体验 DolphinScheduler 服务,我们需要配置不少于 4GB 的内存:
+安装完成 docker-compose 后我们需要修改部分配置以便能更好体验 DolphinScheduler 服务,我们需要配置不少于 4GB 的空闲内存:
 
 - Mac:点击 `Docker Desktop -> Preferences -> Resources -> Memory` 调整内存大小
 - Windows Docker Desktop:


[dolphinscheduler] 09/20: [Improvement-11550] [Doc]Document content update (#11577)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 90cc1284a44ea7f8255213dd203749463f8a7916
Author: monster <60...@users.noreply.github.com>
AuthorDate: Mon Aug 22 00:00:42 2022 +0800

    [Improvement-11550] [Doc]Document content update (#11577)
    
    * [Improvement-11550] [Doc]Document content update
    
    * Update pictures
    
    * fix
    
    * Update Process word to Workflow
    
    Co-authored-by: David <da...@gmail.com>
    (cherry picked from commit 3e360a8ecb3c364b2b9b5e473491da3d50350af9)
---
 docs/docs/en/guide/start/quick-start.md                |  13 ++++---------
 docs/docs/zh/guide/start/quick-start.md                |   9 +++------
 docs/img/new_ui/dev/quick-start/log.png                | Bin 0 -> 288672 bytes
 .../img/new_ui/dev/quick-start/workflow-definition.png | Bin 0 -> 146786 bytes
 4 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/docs/docs/en/guide/start/quick-start.md b/docs/docs/en/guide/start/quick-start.md
index d777431054..ff6c19749f 100644
--- a/docs/docs/en/guide/start/quick-start.md
+++ b/docs/docs/en/guide/start/quick-start.md
@@ -53,14 +53,9 @@ Click on the user name in the upper right corner to "exit" and re-use the normal
 
 ![project](../../../../img/new_ui/dev/quick-start/project.png)
 
-* `Click Workflow Definition -> Create Workflow Definition-> Online Process Definition`
+* `Click Workflow Definition -> Create Workflow Definition-> Online Workflow Definition`
 
-<p align="center">
-   <img src="../../../../img/process_definition_en.png" width="60%" />
- </p>
+![workflow-definition](../../../../img/new_ui/dev/quick-start/workflow-definition.png)
+* `Running Workflow Definition -> Click Workflow Instance -> Click Workflow Instance Name -> Double-click Task Node -> View Task Execution Log`
 
-* `Running Process Definition -> Click Workflow Instance -> Click Process Instance Name -> Double-click Task Node -> View Task Execution Log`
-
- <p align="center">
-   <img src="../../../../img/log_en.png" width="60%" />
-</p>
+![log](../../../../img/new_ui/dev/quick-start/log.png)
diff --git a/docs/docs/zh/guide/start/quick-start.md b/docs/docs/zh/guide/start/quick-start.md
index 1b960b1b9e..fb78d0120c 100644
--- a/docs/docs/zh/guide/start/quick-start.md
+++ b/docs/docs/zh/guide/start/quick-start.md
@@ -49,12 +49,9 @@
 
   * 点击工作流定义->创建工作流定义->上线工作流定义
 
-<p align="center">
-   <img src="../../../../img/dag1.png" width="60%" />
- </p>
+![workflow-definition](../../../../img/new_ui/dev/quick-start/workflow-definition.png)
 
   * 运行工作流定义->点击工作流实例->点击工作流实例名称->双击任务节点->查看任务执行日志
 
- <p align="center">
-   <img src="../../../../img/task-log.png" width="60%" />
-</p>
+![log](../../../../img/new_ui/dev/quick-start/log.png)
+
diff --git a/docs/img/new_ui/dev/quick-start/log.png b/docs/img/new_ui/dev/quick-start/log.png
new file mode 100644
index 0000000000..02658ffaa5
Binary files /dev/null and b/docs/img/new_ui/dev/quick-start/log.png differ
diff --git a/docs/img/new_ui/dev/quick-start/workflow-definition.png b/docs/img/new_ui/dev/quick-start/workflow-definition.png
new file mode 100644
index 0000000000..6406aa4bf2
Binary files /dev/null and b/docs/img/new_ui/dev/quick-start/workflow-definition.png differ


[dolphinscheduler] 20/20: [python] Refactor structure to avoid cycle import (#11167)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 257187c5211c792793a5c49a75ce71bc622f1a8a
Author: Jiajie Zhong <zh...@gmail.com>
AuthorDate: Thu Jul 28 19:02:13 2022 +0800

    [python] Refactor structure to avoid cycle import (#11167)
    
    Currently, our core and side module dependent on each others. and will cause
    cycle import in our codebase, especially in issue #10905, we try to refactor
    to solve this problem.
    
    This patch do the following change:
    
    * Rename module `side` to `models`
    * Move `core/base` and `core/sidebase` to dir `modules`
    * Move `configuration` and `default_config.yaml` to the root of pydolphinscheduler
    
    (cherry picked from commit 7a766cbcf2de82ea401ede11051b1059ef97919a)
---
 dolphinscheduler-python/pydolphinscheduler/DEVELOP.md      |  2 +-
 .../pydolphinscheduler/docs/source/api.rst                 |  2 +-
 .../pydolphinscheduler/docs/source/config.rst              |  2 +-
 dolphinscheduler-python/pydolphinscheduler/setup.py        |  2 +-
 .../src/pydolphinscheduler/cli/commands.py                 |  2 +-
 .../src/pydolphinscheduler/{core => }/configuration.py     |  0
 .../src/pydolphinscheduler/core/__init__.py                |  2 +-
 .../src/pydolphinscheduler/core/process_definition.py      | 13 ++++++-------
 .../src/pydolphinscheduler/core/resource.py                |  2 +-
 .../pydolphinscheduler/src/pydolphinscheduler/core/task.py |  4 ++--
 .../src/pydolphinscheduler/{core => }/default_config.yaml  |  2 +-
 .../pydolphinscheduler/examples/task_dependent_example.py  |  2 +-
 .../src/pydolphinscheduler/java_gateway.py                 |  2 +-
 .../src/pydolphinscheduler/{side => models}/__init__.py    | 14 +++++++++-----
 .../src/pydolphinscheduler/{core => models}/base.py        |  2 +-
 .../src/pydolphinscheduler/{core => models}/base_side.py   |  8 ++++----
 .../src/pydolphinscheduler/{side => models}/project.py     |  4 ++--
 .../src/pydolphinscheduler/{side => models}/queue.py       |  4 ++--
 .../src/pydolphinscheduler/{side => models}/tenant.py      |  4 ++--
 .../src/pydolphinscheduler/{side => models}/user.py        |  5 ++---
 .../pydolphinscheduler/{side => models}/worker_group.py    |  2 +-
 .../src/pydolphinscheduler/tasks/condition.py              |  2 +-
 .../src/pydolphinscheduler/tasks/dependent.py              |  6 +++---
 .../src/pydolphinscheduler/tasks/switch.py                 |  2 +-
 .../pydolphinscheduler/tests/cli/test_config.py            |  2 +-
 .../pydolphinscheduler/tests/core/test_configuration.py    |  4 ++--
 .../tests/core/test_process_definition.py                  |  4 ++--
 .../pydolphinscheduler/tests/testing/path.py               |  2 +-
 28 files changed, 52 insertions(+), 50 deletions(-)

diff --git a/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md b/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
index 926a467282..9972094d60 100644
--- a/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
+++ b/dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
@@ -34,7 +34,7 @@ Now, we should install all dependence to make sure we could run test or check co
 
 ```shell
 cd dolphinscheduler/dolphinscheduler-python/pydolphinscheduler
-python -m pip install .[dev]
+python -m pip install -e '.[dev]'
 ```
 
 Next, we have to open pydolphinscheduler project in you editor. We recommend you use [pycharm][pycharm]
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst b/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst
index f2dd4e5c57..b170b6f870 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/api.rst
@@ -27,7 +27,7 @@ Core
 Models
 ------
 
-.. automodule:: pydolphinscheduler.side
+.. automodule:: pydolphinscheduler.models
   :inherited-members:
 
 Tasks
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst b/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst
index feb147a92e..29a143d713 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst
@@ -200,7 +200,7 @@ All Configurations in File
 
 Here are all our configurations for pydolphinscheduler.
 
-.. literalinclude:: ../../src/pydolphinscheduler/core/default_config.yaml
+.. literalinclude:: ../../src/pydolphinscheduler/default_config.yaml
    :language: yaml
    :lines: 18-
 
diff --git a/dolphinscheduler-python/pydolphinscheduler/setup.py b/dolphinscheduler-python/pydolphinscheduler/setup.py
index 651dfba5b0..2a1291548f 100644
--- a/dolphinscheduler-python/pydolphinscheduler/setup.py
+++ b/dolphinscheduler-python/pydolphinscheduler/setup.py
@@ -151,7 +151,7 @@ setup(
     package_dir={"": "src"},
     include_package_data=True,
     package_data={
-        "pydolphinscheduler": ["core/default_config.yaml"],
+        "pydolphinscheduler": ["default_config.yaml"],
     },
     platforms=["any"],
     classifiers=[
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py
index f1d59dbbd7..d78e503dbb 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py
@@ -21,7 +21,7 @@ import click
 from click import echo
 
 import pydolphinscheduler
-from pydolphinscheduler.core.configuration import (
+from pydolphinscheduler.configuration import (
     get_single_config,
     init_config_file,
     set_single_config,
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/configuration.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/configuration.py
similarity index 100%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/configuration.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/configuration.py
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/__init__.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/__init__.py
index 7497d1f289..b997c3e9de 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/__init__.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/__init__.py
@@ -23,8 +23,8 @@ from pydolphinscheduler.core.process_definition import ProcessDefinition
 from pydolphinscheduler.core.task import Task
 
 __all__ = [
+    "Database",
     "Engine",
     "ProcessDefinition",
     "Task",
-    "Database",
 ]
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/process_definition.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/process_definition.py
index 63e080899d..69dcbc145d 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/process_definition.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/process_definition.py
@@ -21,12 +21,11 @@ import json
 from datetime import datetime
 from typing import Any, Dict, List, Optional, Set
 
+from pydolphinscheduler import configuration
 from pydolphinscheduler.constants import TaskType
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base import Base
 from pydolphinscheduler.exceptions import PyDSParamException, PyDSTaskNoFoundException
 from pydolphinscheduler.java_gateway import launch_gateway
-from pydolphinscheduler.side import Project, Tenant, User
+from pydolphinscheduler.models import Base, Project, Tenant, User
 from pydolphinscheduler.utils.date import MAX_DATETIME, conv_from_str, conv_to_schedule
 
 
@@ -170,7 +169,7 @@ class ProcessDefinition(Base):
     def user(self) -> User:
         """Get user object.
 
-        For now we just get from python side but not from java gateway side, so it may not correct.
+        For now we just get from python models but not from java gateway models, so it may not correct.
         """
         return User(name=self._user, tenant=self._tenant)
 
@@ -358,10 +357,10 @@ class ProcessDefinition(Base):
         self.start()
 
     def _ensure_side_model_exists(self):
-        """Ensure process definition side model exists.
+        """Ensure process definition models model exists.
 
-        For now, side object including :class:`pydolphinscheduler.side.project.Project`,
-        :class:`pydolphinscheduler.side.tenant.Tenant`, :class:`pydolphinscheduler.side.user.User`.
+        For now, models object including :class:`pydolphinscheduler.models.project.Project`,
+        :class:`pydolphinscheduler.models.tenant.Tenant`, :class:`pydolphinscheduler.models.user.User`.
         If these model not exists, would create default value in
         :class:`pydolphinscheduler.constants.ProcessDefinitionDefault`.
         """
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/resource.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/resource.py
index bd4ffd4bd7..a3aab81d17 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/resource.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/resource.py
@@ -19,7 +19,7 @@
 
 from typing import Optional
 
-from pydolphinscheduler.core.base import Base
+from pydolphinscheduler.models import Base
 
 
 class Resource(Base):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/task.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/task.py
index 90c0e89087..4d4e67e323 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/task.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/task.py
@@ -20,6 +20,7 @@
 from logging import getLogger
 from typing import Dict, List, Optional, Sequence, Set, Tuple, Union
 
+from pydolphinscheduler import configuration
 from pydolphinscheduler.constants import (
     Delimiter,
     ResourceKey,
@@ -27,13 +28,12 @@ from pydolphinscheduler.constants import (
     TaskPriority,
     TaskTimeoutFlag,
 )
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base import Base
 from pydolphinscheduler.core.process_definition import (
     ProcessDefinition,
     ProcessDefinitionContext,
 )
 from pydolphinscheduler.java_gateway import launch_gateway
+from pydolphinscheduler.models import Base
 
 logger = getLogger(__name__)
 
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/default_config.yaml b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/default_config.yaml
similarity index 99%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/default_config.yaml
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/default_config.yaml
index 5541af7b79..98d7b99fdc 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/default_config.yaml
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/default_config.yaml
@@ -22,7 +22,7 @@ java_gateway:
   address: 127.0.0.1
 
   # The port of Python gateway server start. Define which port you could connect to Python gateway server from
-  # Python API side.
+  # Python API models.
   port: 25333
 
   # Whether automatically convert Python objects to Java Objects. Default value is ``True``. There is some
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/task_dependent_example.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/task_dependent_example.py
index 88d6ea2322..db53bcc9f3 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/task_dependent_example.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/task_dependent_example.py
@@ -35,7 +35,7 @@ task_dependent:
 
 task_dependent(this task dependent on task_dependent_external.task_1 and task_dependent_external.task_2).
 """
-from pydolphinscheduler.core import configuration
+from pydolphinscheduler import configuration
 from pydolphinscheduler.core.process_definition import ProcessDefinition
 from pydolphinscheduler.tasks.dependent import And, Dependent, DependentItem, Or
 from pydolphinscheduler.tasks.shell import Shell
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/java_gateway.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/java_gateway.py
index 85606382dd..7b85902f9a 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/java_gateway.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/java_gateway.py
@@ -22,8 +22,8 @@ from typing import Any, Optional
 from py4j.java_collections import JavaMap
 from py4j.java_gateway import GatewayParameters, JavaGateway
 
+from pydolphinscheduler import configuration
 from pydolphinscheduler.constants import JavaGatewayDefault
-from pydolphinscheduler.core import configuration
 from pydolphinscheduler.exceptions import PyDSJavaGatewayException
 
 
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/__init__.py
similarity index 70%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/__init__.py
index 014da11b84..b289954caa 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/__init__.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/__init__.py
@@ -17,13 +17,17 @@
 
 """Init Models package, keeping object related to DolphinScheduler covert from Java Gateway Service."""
 
-from pydolphinscheduler.side.project import Project
-from pydolphinscheduler.side.queue import Queue
-from pydolphinscheduler.side.tenant import Tenant
-from pydolphinscheduler.side.user import User
-from pydolphinscheduler.side.worker_group import WorkerGroup
+from pydolphinscheduler.models.base import Base
+from pydolphinscheduler.models.base_side import BaseSide
+from pydolphinscheduler.models.project import Project
+from pydolphinscheduler.models.queue import Queue
+from pydolphinscheduler.models.tenant import Tenant
+from pydolphinscheduler.models.user import User
+from pydolphinscheduler.models.worker_group import WorkerGroup
 
 __all__ = [
+    "Base",
+    "BaseSide",
     "Project",
     "Tenant",
     "User",
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/base.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/base.py
similarity index 98%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/base.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/base.py
index 690351ab2f..2647714af0 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/base.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/base.py
@@ -19,7 +19,7 @@
 
 from typing import Dict, Optional
 
-# from pydolphinscheduler.side.user import User
+# from pydolphinscheduler.models.user import User
 from pydolphinscheduler.utils.string import attr2camel
 
 
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/base_side.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/base_side.py
similarity index 86%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/base_side.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/base_side.py
index dca1f12c6c..67ac88d96b 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/core/base_side.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/base_side.py
@@ -15,16 +15,16 @@
 # specific language governing permissions and limitations
 # under the License.
 
-"""Module for side object."""
+"""Module for models object."""
 
 from typing import Optional
 
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base import Base
+from pydolphinscheduler import configuration
+from pydolphinscheduler.models import Base
 
 
 class BaseSide(Base):
-    """Base class for side object, it declare base behavior for them."""
+    """Base class for models object, it declare base behavior for them."""
 
     def __init__(self, name: str, description: Optional[str] = None):
         super().__init__(name, description)
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/project.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/project.py
similarity index 93%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/project.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/project.py
index 750e3b8793..ad7221108a 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/project.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/project.py
@@ -19,9 +19,9 @@
 
 from typing import Optional
 
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base_side import BaseSide
+from pydolphinscheduler import configuration
 from pydolphinscheduler.java_gateway import launch_gateway
+from pydolphinscheduler.models import BaseSide
 
 
 class Project(BaseSide):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/queue.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/queue.py
similarity index 93%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/queue.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/queue.py
index e7c68e15fd..3f8f81d126 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/queue.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/queue.py
@@ -19,9 +19,9 @@
 
 from typing import Optional
 
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base_side import BaseSide
+from pydolphinscheduler import configuration
 from pydolphinscheduler.java_gateway import gateway_result_checker, launch_gateway
+from pydolphinscheduler.models import BaseSide
 
 
 class Queue(BaseSide):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/tenant.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/tenant.py
similarity index 93%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/tenant.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/tenant.py
index 6aaabfe129..148a8f6521 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/tenant.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/tenant.py
@@ -19,9 +19,9 @@
 
 from typing import Optional
 
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base_side import BaseSide
+from pydolphinscheduler import configuration
 from pydolphinscheduler.java_gateway import launch_gateway
+from pydolphinscheduler.models import BaseSide
 
 
 class Tenant(BaseSide):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/user.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/user.py
similarity index 94%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/user.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/user.py
index 510e3a8b36..de2d8b159a 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/user.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/user.py
@@ -19,10 +19,9 @@
 
 from typing import Optional
 
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.base_side import BaseSide
+from pydolphinscheduler import configuration
 from pydolphinscheduler.java_gateway import launch_gateway
-from pydolphinscheduler.side.tenant import Tenant
+from pydolphinscheduler.models import BaseSide, Tenant
 
 
 class User(BaseSide):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/worker_group.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/worker_group.py
similarity index 95%
rename from dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/worker_group.py
rename to dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/worker_group.py
index ed50ec6630..bc55eafc34 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/side/worker_group.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/models/worker_group.py
@@ -19,7 +19,7 @@
 
 from typing import Optional
 
-from pydolphinscheduler.core.base_side import BaseSide
+from pydolphinscheduler.models import BaseSide
 
 
 class WorkerGroup(BaseSide):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/condition.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/condition.py
index 50aac251d8..cb139f1587 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/condition.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/condition.py
@@ -20,9 +20,9 @@
 from typing import Dict, List
 
 from pydolphinscheduler.constants import TaskType
-from pydolphinscheduler.core.base import Base
 from pydolphinscheduler.core.task import Task
 from pydolphinscheduler.exceptions import PyDSParamException
+from pydolphinscheduler.models.base import Base
 
 
 class Status(Base):
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/dependent.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/dependent.py
index 7cff24c841..cc6d25b0a2 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/dependent.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/dependent.py
@@ -20,10 +20,10 @@
 from typing import Dict, Optional, Tuple
 
 from pydolphinscheduler.constants import TaskType
-from pydolphinscheduler.core.base import Base
 from pydolphinscheduler.core.task import Task
 from pydolphinscheduler.exceptions import PyDSJavaGatewayException, PyDSParamException
 from pydolphinscheduler.java_gateway import launch_gateway
+from pydolphinscheduler.models.base import Base
 
 DEPENDENT_ALL_TASK_IN_WORKFLOW = "0"
 
@@ -31,8 +31,8 @@ DEPENDENT_ALL_TASK_IN_WORKFLOW = "0"
 class DependentDate(str):
     """Constant of Dependent date value.
 
-    These values set according to Java server side, if you want to add and change it,
-    please change Java server side first.
+    These values set according to Java server models, if you want to add and change it,
+    please change Java server models first.
     """
 
     # TODO Maybe we should add parent level to DependentDate for easy to use, such as
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py
index 05ac9c1329..35eece89b6 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/switch.py
@@ -20,9 +20,9 @@
 from typing import Dict, Optional
 
 from pydolphinscheduler.constants import TaskType
-from pydolphinscheduler.core.base import Base
 from pydolphinscheduler.core.task import Task
 from pydolphinscheduler.exceptions import PyDSParamException
+from pydolphinscheduler.models.base import Base
 
 
 class SwitchBranch(Base):
diff --git a/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_config.py b/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_config.py
index d913277b2e..516ad754a2 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_config.py
+++ b/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_config.py
@@ -23,7 +23,7 @@ from pathlib import Path
 import pytest
 
 from pydolphinscheduler.cli.commands import cli
-from pydolphinscheduler.core.configuration import BUILD_IN_CONFIG_PATH, config_path
+from pydolphinscheduler.configuration import BUILD_IN_CONFIG_PATH, config_path
 from tests.testing.cli import CliTestWrapper
 from tests.testing.constants import DEV_MODE, ENV_PYDS_HOME
 from tests.testing.file import get_file_content
diff --git a/dolphinscheduler-python/pydolphinscheduler/tests/core/test_configuration.py b/dolphinscheduler-python/pydolphinscheduler/tests/core/test_configuration.py
index c7e217a46f..b9dc8cb656 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tests/core/test_configuration.py
+++ b/dolphinscheduler-python/pydolphinscheduler/tests/core/test_configuration.py
@@ -24,8 +24,8 @@ from typing import Any
 
 import pytest
 
-from pydolphinscheduler.core import configuration
-from pydolphinscheduler.core.configuration import (
+from pydolphinscheduler import configuration
+from pydolphinscheduler.configuration import (
     BUILD_IN_CONFIG_PATH,
     config_path,
     get_single_config,
diff --git a/dolphinscheduler-python/pydolphinscheduler/tests/core/test_process_definition.py b/dolphinscheduler-python/pydolphinscheduler/tests/core/test_process_definition.py
index 5cb6dabdc0..30445bfbf3 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tests/core/test_process_definition.py
+++ b/dolphinscheduler-python/pydolphinscheduler/tests/core/test_process_definition.py
@@ -24,11 +24,11 @@ from unittest.mock import patch
 import pytest
 from freezegun import freeze_time
 
-from pydolphinscheduler.core import configuration
+from pydolphinscheduler import configuration
 from pydolphinscheduler.core.process_definition import ProcessDefinition
 from pydolphinscheduler.core.resource import Resource
 from pydolphinscheduler.exceptions import PyDSParamException
-from pydolphinscheduler.side import Project, Tenant, User
+from pydolphinscheduler.models import Project, Tenant, User
 from pydolphinscheduler.tasks.switch import Branch, Default, Switch, SwitchCondition
 from pydolphinscheduler.utils.date import conv_to_schedule
 from tests.testing.task import Task
diff --git a/dolphinscheduler-python/pydolphinscheduler/tests/testing/path.py b/dolphinscheduler-python/pydolphinscheduler/tests/testing/path.py
index d1e520b3bd..68d93c404b 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tests/testing/path.py
+++ b/dolphinscheduler-python/pydolphinscheduler/tests/testing/path.py
@@ -26,7 +26,7 @@ path_code_tasks = project_root.joinpath("src", "pydolphinscheduler", "tasks")
 path_example = project_root.joinpath("src", "pydolphinscheduler", "examples")
 path_doc_tasks = project_root.joinpath("docs", "source", "tasks")
 path_default_config_yaml = project_root.joinpath(
-    "src", "pydolphinscheduler", "core", "default_config.yaml"
+    "src", "pydolphinscheduler", "default_config.yaml"
 )
 
 


[dolphinscheduler] 13/20: Fix homepage email subscription link (#11622)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 11b78a871c0947845e1fe427201bfd4688214335
Author: Eric Gao <er...@gmail.com>
AuthorDate: Wed Aug 24 09:25:23 2022 +0800

    Fix homepage email subscription link (#11622)
    
    * Fix homepage email link bug
    
    * Replace dev with latest
    
    (cherry picked from commit 3e73829924a423757a88a712a6e72d09c949ef98)
---
 docs/configs/site.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/configs/site.js b/docs/configs/site.js
index 67fa399740..427f07528c 100644
--- a/docs/configs/site.js
+++ b/docs/configs/site.js
@@ -138,7 +138,7 @@ export default {
           name: 'Email List',
           img1: '/img/emailgray.png',
           img2: '/img/emailblue.png',
-          link: '/en-us/community/development/subscribe.html',
+          link: '/en-us/docs/latest/user_doc/contribute/join/subscribe.html',
         },
         {
           name: 'Twitter',
@@ -263,7 +263,7 @@ export default {
           name: '邮件列表',
           img1: '/img/emailgray.png',
           img2: '/img/emailblue.png',
-          link: '/zh-cn/community/development/subscribe.html',
+          link: '/zh-cn/docs/latest/user_doc/contribute/join/subscribe.html',
         },
         {
           name: 'Twitter',


[dolphinscheduler] 06/20: [Doc][Resources] Instruct users to use local storage if they have remote storage mounted to local (#11435)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 059b66b64f4d764959f662e1103aca37710a40a0
Author: Eric Gao <er...@gmail.com>
AuthorDate: Fri Aug 12 00:18:43 2022 +0800

    [Doc][Resources] Instruct users to use local storage if they have remote storage mounted to local (#11435)
    
    * [Doc][Resources] Instruct users to use local storage if they have remote storage mounted to local (#11427)
    
    * Remove dead link in pyds README
    
    * Add hyperlinks for docs
    
    Co-authored-by: Jiajie Zhong <zh...@hotmail.com>
    
    (cherry picked from commit 9d6fc92af9ba5e2a0c822eb78dd6371fe72d02d7)
---
 docs/docs/en/guide/resource/configuration.md | 25 ++++++++++++++-----------
 docs/docs/zh/guide/resource/configuration.md | 22 ++++++++++++----------
 2 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/docs/docs/en/guide/resource/configuration.md b/docs/docs/en/guide/resource/configuration.md
index 42dbd28340..219f603e14 100644
--- a/docs/docs/en/guide/resource/configuration.md
+++ b/docs/docs/en/guide/resource/configuration.md
@@ -1,21 +1,24 @@
-# HDFS Resource Configuration
+# Resource Center Configuration
 
-When it is necessary to use the Resource Center to create or upload relevant files, all files and resources will be stored on HDFS. Therefore the following configuration is required.
+- You could use `Resource Center` to upload text files, UDFs and other task-related files.
+- You could configure `Resource Center` to use distributed file system like [Hadoop](https://hadoop.apache.org/docs/r2.7.0/) (2.6+), [MinIO](https://github.com/minio/minio) cluster or remote storage products like [AWS S3](https://aws.amazon.com/s3/), [Alibaba Cloud OSS](https://www.aliyun.com/product/oss), etc.
+- You could configure `Resource Center` to use local file system. If you deploy `DolphinScheduler` in `Standalone` mode, you could configure it to use local file system for `Resouce Center` without the need of an external `HDFS` system or `S3`.
+- Furthermore, if you deploy `DolphinScheduler` in `Cluster` mode, you could use [S3FS-FUSE](https://github.com/s3fs-fuse/s3fs-fuse) to mount `S3` or [JINDO-FUSE](https://help.aliyun.com/document_detail/187410.html) to mount `OSS` to your machines and use the local file system for `Resouce Center`. In this way, you could operate remote files as if on your local machines.
 
-## Local File Resource Configuration
+## Use Local File System
 
-For a single machine, you can choose to use local file directory as the upload directory (no need to deploy Hadoop) by making the following configuration.
+### Configure `common.properties`
 
-### Configuring the `common.properties`
+Configure `api-server/conf/common.properties` and `worker-server/conf/common.properties` as follows:
 
-Configure the file in the following paths: `api-server/conf/common.properties` and `worker-server/conf/common.properties`.
+- Change `resource.storage.upload.base.path` to your local directory path. Please make sure the `tenant resource.hdfs.root.user` has read and write permissions for `resource.storage.upload.base.path`, e,g. `/tmp/dolphinscheduler`. `DolphinScheduler` will create the directory you configure if it does not exist.
+- Modify `resource.storage.type=HDFS` and `resource.hdfs.fs.defaultFS=file:///`.
 
-- Change `data.basedir.path` to the local directory path. Please make sure the user who deploy dolphinscheduler have read and write permissions, such as: `data.basedir.path=/tmp/dolphinscheduler`. And the directory you configured will be auto-created if it does not exists.
-- Modify the following two parameters, `resource.storage.type=HDFS` and `resource.hdfs.fs.defaultFS=file:///`.
+> NOTE: Please modify the value of `resource.storage.upload.base.path` if you do not want to use the default value as the base path.
 
-## Configuring the common.properties
+## Use HDFS or Remote Object Storage
 
-After version 3.0.0, if you want to upload resources using HDFS or S3 from the Resource Center, you will need to configure the following paths The following paths need to be configured: `api-server/conf/common.properties` and `worker-server/conf/common.properties`. This can be found as follows.
+After version 3.0.0-alpha, if you want to upload resources to `Resource Center` connected to `HDFS` or `S3`, you need to configure `api-server/conf/common.properties` and `worker-server/conf/common.properties`.
 
 ```properties
 #
@@ -44,7 +47,7 @@ data.basedir.path=/tmp/dolphinscheduler
 # resource storage type: HDFS, S3, NONE
 resource.storage.type=NONE
 # resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
-resource.storage.upload.base.path=/dolphinscheduler
+resource.storage.upload.base.path=/tmp/dolphinscheduler
 
 # The AWS access key. if resource.storage.type=S3 or use EMR-Task, This configuration is required
 resource.aws.access.key.id=minioadmin
diff --git a/docs/docs/zh/guide/resource/configuration.md b/docs/docs/zh/guide/resource/configuration.md
index a12184a9db..b77a1286a4 100644
--- a/docs/docs/zh/guide/resource/configuration.md
+++ b/docs/docs/zh/guide/resource/configuration.md
@@ -1,21 +1,24 @@
 # 资源中心配置详情
 
-资源中心通常用于上传文件、 UDF 函数,以及任务组管理等操作。针对单机环境可以选择本地文件目录作为上传文件夹(此操作不需要部署 Hadoop)。当然也可以选择上传到 Hadoop or MinIO 集群上,此时则需要有 Hadoop(2.6+)或者 MinIOn 等相关环境。
+- 资源中心通常用于上传文件、UDF 函数,以及任务组管理等操作。
+- 资源中心可以对接分布式的文件存储系统,如[Hadoop](https://hadoop.apache.org/docs/r2.7.0/)(2.6+)或者[MinIO](https://github.com/minio/minio)集群,也可以对接远端的对象存储,如[AWS S3](https://aws.amazon.com/s3/)或者[阿里云 OSS](https://www.aliyun.com/product/oss)等。
+- 资源中心也可以直接对接本地文件系统。在单机模式下,您无需依赖`Hadoop`或`S3`一类的外部存储系统,可以方便地对接本地文件系统进行体验。
+- 除此之外,对于集群模式下的部署,您可以通过使用[S3FS-FUSE](https://github.com/s3fs-fuse/s3fs-fuse)将`S3`挂载到本地,或者使用[JINDO-FUSE](https://help.aliyun.com/document_detail/187410.html)将`OSS`挂载到本地等,再用资源中心对接本地文件系统方式来操作远端对象存储中的文件。
 
-## 本地资源配置
-
-在单机环境下,可以选择使用本地文件目录作为上传文件夹(无需部署Hadoop),此时需要进行如下配置:
+## 对接本地文件系统
 
 ### 配置 `common.properties` 文件
 
 对以下路径的文件进行配置:`api-server/conf/common.properties` 和 `worker-server/conf/common.properties`
 
-- 将 `data.basedir.path` 改为本地存储路径,请确保部署 DolphinScheduler 的用户拥有读写权限,例如:`data.basedir.path=/tmp/dolphinscheduler`。当路径不存在时会自动创建文件夹
-- 修改下列两个参数,分别是 `resource.storage.type=HDFS` 和 `fs.defaultFS=file:///`。
+- 将 `resource.storage.upload.base.path` 改为本地存储路径,请确保部署 DolphinScheduler 的用户拥有读写权限,例如:`resource.storage.upload.base.path=/tmp/dolphinscheduler`。当路径不存在时会自动创建文件夹
+- 修改 `resource.storage.type=HDFS` 和 `resource.hdfs.fs.defaultFS=file:///`。
+
+>    **注意**:如果您不想用默认值作为资源中心的基础路径,请修改`resource.storage.upload.base.path`的值。
 
-## HDFS 资源配置
+## 对接分布式或远端对象存储
 
-当需要使用资源中心进行相关文件的创建或者上传操作时,所有的文件和资源都会被存储在 HDFS 上。所以需要进行以下配置:
+当需要使用资源中心进行相关文件的创建或者上传操作时,所有的文件和资源都会被存储在分布式文件系统`HDFS`或者远端的对象存储,如`S3`上。所以需要进行以下配置:
 
 ### 配置 common.properties 文件
 
@@ -124,5 +127,4 @@ alert.rpc.port=50052
 >
 >    * 如果只配置了 `api-server/conf/common.properties` 的文件,则只是开启了资源上传的操作,并不能满足正常使用。如果想要在工作流中执行相关文件则需要额外配置 `worker-server/conf/common.properties`。
 >    * 如果用到资源上传的功能,那么[安装部署](../installation/standalone.md)中,部署用户需要有这部分的操作权限。
->    * 如果 Hadoop 集群的 NameNode 配置了 HA 的话,需要开启 HDFS 类型的资源上传,同时需要将 Hadoop 集群下的 `core-site.xml` 和 `hdfs-site.xml` 复制到 `/opt/dolphinscheduler/conf`,非 NameNode HA 跳过次步骤。
->
+>    * 如果 Hadoop 集群的 NameNode 配置了 HA 的话,需要开启 HDFS 类型的资源上传,同时需要将 Hadoop 集群下的 `core-site.xml` 和 `hdfs-site.xml` 复制到 `worker-server/conf` 以及 `api-server/conf`,非 NameNode HA 跳过次步骤。


[dolphinscheduler] 08/20: [Doc][Security] Update instructions on worker groups (#11483)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 3d69e9edb155924efde041c74f484d878f2a84e0
Author: Eric Gao <er...@gmail.com>
AuthorDate: Mon Aug 15 17:44:00 2022 +0800

    [Doc][Security] Update instructions on worker groups (#11483)
    
    * Update instructions on worker groups
    
    (cherry picked from commit 9330d6cfcd48910d8add52d1f05ae60d7af9bf68)
---
 docs/docs/en/guide/security.md                     | 23 ++++++++++++++--------
 docs/docs/zh/guide/security.md                     | 21 ++++++++++++--------
 .../src/main/resources/application.yaml            |  6 +++++-
 3 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/docs/docs/en/guide/security.md b/docs/docs/en/guide/security.md
index c5a150f448..4470d8f4a6 100644
--- a/docs/docs/en/guide/security.md
+++ b/docs/docs/en/guide/security.md
@@ -118,21 +118,28 @@ public  void doPOSTParam()throws Exception{
 
 ## Worker Grouping
 
-Each worker node will belong to its own worker group, and the default group is "default".
+Each worker node belongs to some worker groups, and the default group is `default`.
 
-When the task is executed, the task can be assigned to the specified worker group, and finally the worker node in the group will execute the task.
+When DolphinScheduler executes a task, it will assign the task to the configured worker group and the worker nodes in the group will execute the task.
 
-### Add or update worker group
+### Add or Update Worker Groups
 
-- Open the `conf/worker.properties` configuration file on the worker node where you want to configure the groups and modify the `worker.groups` parameter.
-- The `worker.groups` parameter is followed by the name of the group corresponding to the worker node, which is `default`.
-- If the worker node corresponds to multiple groups, separate them with commas. Example:
+- Open the `worker-server/conf/application.yaml` on the worker node where you want to configure the groups and modify the `groups` parameter in `worker` section.
+- The values of the `groups` parameter are the names of the groups where the worker node belong. The default value is `default`.
+- If the worker node belongs to multiple groups, list them with hyphens, e.g.
 
 ```conf
-worker.groups=default,test
+worker:
+......
+  groups:
+    - default
+    - group-1
+    - group-2
+......
 ```
 
-- You can also change the worker group for the worker during execution, and if the modification is successful, the worker will use the new group and ignore the configuration in `worker.properties`. The step to modify work group as below: `Security Center -> Worker Group Management -> click 'New Worker Group' -> click 'New Worker Group' ->  enter 'Group Name' -> Select Exists Worker -> Click Submit`. 
+- You can add new worker groups for the workers during runtime regardless of the configurations in `application.yaml` as below: 
+`Security Center` -> `Worker Group Manage` -> `Create Worker Group` -> fill in `Group Name` and `Worker Addresses` -> click `confirm`. 
 
 ## Environmental Management
 
diff --git a/docs/docs/zh/guide/security.md b/docs/docs/zh/guide/security.md
index 0c61672c5b..7c9fc8c797 100644
--- a/docs/docs/zh/guide/security.md
+++ b/docs/docs/zh/guide/security.md
@@ -112,22 +112,27 @@
 
 ## Worker 分组
 
-每个 worker 节点都会归属于自己的 worker 分组,默认分组为 default。
+每个 worker 节点都会归属于自己的 worker 分组,默认分组为 `default`。
 
 在任务执行时,可以将任务分配给指定 worker 分组,最终由该组中的 worker 节点执行该任务。
 
-> 新增/更新 worker 分组
+### 新增 / 更新 worker 分组
 
-- 打开要设置分组的 worker 节点上的 `conf/worker.properties` 配置文件. 修改 worker.groups 参数. 
-- worker.groups 参数后面对应的为该 worker 节点对应的分组名称,默认为 default。
-- 如果该 worker 节点对应多个分组,则以逗号隔开。
+- 打开要设置分组的 worker 节点上的 `worker-server/conf/application.yaml` 配置文件. 修改 `worker` 配置下的 `groups` 参数. 
+- `groups` 参数的值为 worker 节点对应的分组名称,默认为 `default`。
+- 如果该 worker 节点对应多个分组,则用连字符列出,示范如下:
 
 ```conf
-示例: 
-worker.groups=default,test
+worker:
+......
+  groups:
+    - default
+    - group1
+    - group2
+......
 ```
 
-- 也可以在运行中修改 worker 所属的 worker 分组,如果修改成功,worker 就会使用这个新建的分组,忽略 `worker.properties` 中的配置。修改步骤为"安全中心 -> worker分组管理 -> 点击 '新建worker分组' -> 输入'组名称' -> 选择已有worker -> 点击'提交'"
+- 也可以在运行中添加 worker 所属的 worker 分组而忽略 `application.yaml` 中的配置。修改步骤为 `安全中心` -> `worker分组管理` -> 点击 `创建worker分组` -> 输入`分组名称`和`worker地址` -> 点击`确定`
 
 ## 环境管理
 
diff --git a/dolphinscheduler-worker/src/main/resources/application.yaml b/dolphinscheduler-worker/src/main/resources/application.yaml
index 0442057ff4..ee4a56fbc9 100644
--- a/dolphinscheduler-worker/src/main/resources/application.yaml
+++ b/dolphinscheduler-worker/src/main/resources/application.yaml
@@ -70,7 +70,11 @@ worker:
   max-cpu-load-avg: -1
   # worker reserved memory, only lower than system available memory, worker server can be dispatched tasks. default value 0.3, the unit is G
   reserved-memory: 0.3
-  # default worker groups separated by comma, like 'worker.groups=default,test'
+  # for multiple worker groups, use hyphen before group name, e.g.
+  # groups:
+  #   - default
+  #   - group1
+  #   - group2
   groups:
     - default
   # alert server listen host


[dolphinscheduler] 02/20: [Fix-11217] [Doc] add postgresql config in doc: datasource-setting (#11326)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit b9cc2639d06b19a808cb59c33a281d9ccbff44ba
Author: 阿福Chris <yu...@126.com>
AuthorDate: Mon Sep 5 10:54:01 2022 +0800

    [Fix-11217] [Doc] add postgresql config in doc: datasource-setting (#11326)
    
    * add postgresql config for datasoruce-setting
    
    * Update docs/docs/en/guide/howto/datasource-setting.md
    
    Co-authored-by: Eric Gao <er...@gmail.com>
    (cherry picked from commit c76301ab51735a79d6bfd3c00288ce7d5fe60e54)
---
 docs/docs/en/guide/howto/datasource-setting.md    | 39 +++++++++++++++++++++--
 docs/docs/zh/guide/howto/datasource-setting.md    | 37 +++++++++++++++++++--
 docs/docs/zh/guide/installation/pseudo-cluster.md |  2 +-
 3 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/docs/docs/en/guide/howto/datasource-setting.md b/docs/docs/en/guide/howto/datasource-setting.md
index 7db7662523..4dddb9a7a2 100644
--- a/docs/docs/en/guide/howto/datasource-setting.md
+++ b/docs/docs/en/guide/howto/datasource-setting.md
@@ -4,6 +4,9 @@
 
 We here use MySQL as an example to illustrate how to configure an external database:
 
+> NOTE: If you use MySQL, you need to manually download [mysql-connector-java driver][mysql] (8.0.16) and move it to the libs directory of DolphinScheduler
+which is `api-server/libs` and `alert-server/libs` and `master-server/libs` and `worker-server/libs`.
+
 * First of all, follow the instructions in [datasource-setting](datasource-setting.md) `Pseudo-Cluster/Cluster Initialize the Database` section to create and initialize database
 * Set the following environment variables in your terminal or modify the `bin/env/dolphinscheduler_env.sh` with your database username and password for `{user}` and `{password}`:
 
@@ -19,8 +22,10 @@ export SPRING_DATASOURCE_PASSWORD={password}
 
 ## Pseudo-Cluster/Cluster Initialize the Database
 
-DolphinScheduler metadata is stored in the relational database. Currently, supports PostgreSQL and MySQL. If you use MySQL, you need to manually download [mysql-connector-java driver][mysql] (8.0.16) and move it to the libs directory of DolphinScheduler
-which is `api-server/libs/` and `alert-server/libs` and `master-server/libs` and `worker-server/libs` and `tools/libs`. Let's take MySQL as an example for how to initialize the database:
+DolphinScheduler stores metadata in `relational database`. Currently, we support `PostgreSQL` and `MySQL`. Let's walk through how to initialize the database in `MySQL` and `PostgreSQL` :
+
+> If you use MySQL, you need to manually download [mysql-connector-java driver][mysql] (8.0.16) and move it to the libs directory of DolphinScheduler which is `api-server/libs` and `alert-server/libs` and `master-server/libs` and `worker-server/libs`.
+
 
 For mysql 5.6 / 5.7
 
@@ -51,9 +56,27 @@ mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost';
 mysql> FLUSH PRIVILEGES;
 ``` 
 
-Then, modify `./bin/env/dolphinscheduler_env.sh` to use mysql, change {user} and {password} to what you set in the previous step.
+For PostgreSQL: 
+```shell
+# Use psql-tools to login PostgreSQL
+psql
+# Create a database
+postgres=# CREATE DATABASE dolphinscheduler;
+# Replace {user} and {password} with your username and password
+postgres=# CREATE USER {user} PASSWORD {password};
+postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
+# Logout PostgreSQL
+postgres=#\q
+# Exec cmd below in terminal, add config to pg_hba.conf and reload PostgreSQL config, replace {ip} to DS cluster ip addresses
+echo "host    dolphinscheduler   {user}    {ip}     md5" >> $PGDATA/pg_hba.conf
+pg_ctl reload
+```
+
+Then, modify `./bin/env/dolphinscheduler_env.sh`, change {user} and {password} to what you set in the previous step.
 
+For MySQL:
 ```shell
+# for mysql
 export DATABASE=${DATABASE:-mysql}
 export SPRING_PROFILES_ACTIVE=${DATABASE}
 export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
@@ -61,6 +84,16 @@ export SPRING_DATASOURCE_USERNAME={user}
 export SPRING_DATASOURCE_PASSWORD={password}
 ```
 
+For PostgreSQL:
+```shell
+# for postgresql
+export DATABASE=${DATABASE:-postgresql}
+export SPRING_PROFILES_ACTIVE=${DATABASE}
+export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
+export SPRING_DATASOURCE_USERNAME={user}
+export SPRING_DATASOURCE_PASSWORD={password}
+```
+
 After the above steps done you would create a new database for DolphinScheduler, then run the Shell script to init database:
 
 ```shell
diff --git a/docs/docs/zh/guide/howto/datasource-setting.md b/docs/docs/zh/guide/howto/datasource-setting.md
index 97154659b2..f9a223ee84 100644
--- a/docs/docs/zh/guide/howto/datasource-setting.md
+++ b/docs/docs/zh/guide/howto/datasource-setting.md
@@ -4,6 +4,8 @@
 
 我们这里以 MySQL 为例来说明如何配置外部数据库:
 
+> 如果使用 MySQL 需要手动下载 [mysql-connector-java 驱动][mysql] (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 `api-server/libs` 和 `alert-server/libs` 和 `master-server/libs` 和 `worker-server/libs`。
+
 * 首先,参照 [数据源配置](datasource-setting.md) `伪分布式/分布式安装初始化数据库` 创建并初始化数据库
 * 在你的命令行或者修改 bin/env/dolphinscheduler_env.sh 设定下列环境变量,将 `{user}` 和 `{password}` 改为你数据库的用户名和密码
 
@@ -19,8 +21,10 @@ export SPRING_DATASOURCE_PASSWORD={password}
 
 ## 伪分布式/分布式安装初始化数据库
 
-DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL,如果使用 MySQL 则需要手动下载 [mysql-connector-java 驱动][mysql] (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下
-其中包括 `api-server/libs/` 和 `alert-server/libs` 和 `master-server/libs` 和 `worker-server/libs` 和 `tools/libs`。下面以 MySQL 为例,说明如何初始化数据库
+DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL。下面分别介绍如何使用 MySQL 和 PostgresQL 初始化数据库。
+
+> 如果使用 MySQL 需要手动下载 [mysql-connector-java 驱动][mysql] (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 `api-server/libs` 和 `alert-server/libs` 和 `master-server/libs` 和 `worker-server/libs`。
+
 
 对于mysql 5.6 / 5.7:
 
@@ -51,9 +55,28 @@ mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost';
 mysql> FLUSH PRIVILEGES;
 ```
 
+对于 PostgreSQL:
+
+```shell
+# 采用命令行工具登陆 PostgreSQL
+psql
+# 创建数据库
+postgres=# CREATE DATABASE dolphinscheduler;
+# 修改 {user} 和 {password} 为你希望的用户名和密码
+postgres=# CREATE USER {user} PASSWORD {password};
+postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
+# 退出 PostgreSQL
+postgres=#\q
+# 在终端执行如下命令,向配置文件新增登陆权限,并重载 PostgreSQL 配置,替换 {ip} 为对应的 DS 集群服务器 IP 地址段
+echo "host    dolphinscheduler   {user}    {ip}     md5" >> $PGDATA/pg_hba.conf
+pg_ctl reload
+```
+
 然后修改`./bin/env/dolphinscheduler_env.sh`,将username和password改成你在上一步中设置的用户名{user}和密码{password}
 
+对于 MySQL:
 ```shell
+# for mysql
 export DATABASE=${DATABASE:-mysql}
 export SPRING_PROFILES_ACTIVE=${DATABASE}
 export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
@@ -61,6 +84,16 @@ export SPRING_DATASOURCE_USERNAME={user}
 export SPRING_DATASOURCE_PASSWORD={password}
 ```  
 
+对于 PostgreSQL:
+```shell
+# for postgresql
+export DATABASE=${DATABASE:-postgresql}
+export SPRING_PROFILES_ACTIVE=${DATABASE}
+export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
+export SPRING_DATASOURCE_USERNAME={user}
+export SPRING_DATASOURCE_PASSWORD={password}
+```
+
 完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库
 
 ```shell
diff --git a/docs/docs/zh/guide/installation/pseudo-cluster.md b/docs/docs/zh/guide/installation/pseudo-cluster.md
index 09a419e63c..870a851a7d 100644
--- a/docs/docs/zh/guide/installation/pseudo-cluster.md
+++ b/docs/docs/zh/guide/installation/pseudo-cluster.md
@@ -149,7 +149,7 @@ export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:
 bash ./bin/install.sh
 ```
 
-> **_注意:_** 第一次部署的话,可能出现 5 次`sh: bin/dolphinscheduler-daemon.sh: No such file or directory`相关信息,次为非重要信息直接忽略即可
+> **_注意:_** 第一次部署的话,可能出现 5 次`sh: bin/dolphinscheduler-daemon.sh: No such file or directory`相关信息,此为非重要信息直接忽略即可
 
 ## 登录 DolphinScheduler
 


[dolphinscheduler] 18/20: update PyDolphinScheduler documentation link. (#11474)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 8a12ae746df2c9c9b1c8c2e999571e6bf87fdedb
Author: Kerwin <37...@users.noreply.github.com>
AuthorDate: Mon Aug 15 13:33:51 2022 +0800

    update PyDolphinScheduler documentation link. (#11474)
    
    (cherry picked from commit c59a8503f45704b1b22d9dbed1c8b3d0434730e0)
---
 dolphinscheduler-python/pydolphinscheduler/setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dolphinscheduler-python/pydolphinscheduler/setup.py b/dolphinscheduler-python/pydolphinscheduler/setup.py
index fe36fa1018..2e016b7c19 100644
--- a/dolphinscheduler-python/pydolphinscheduler/setup.py
+++ b/dolphinscheduler-python/pydolphinscheduler/setup.py
@@ -139,7 +139,7 @@ setup(
     ],
     project_urls={
         "Homepage": "https://dolphinscheduler.apache.org",
-        "Documentation": "https://dolphinscheduler.apache.org/python/index.html",
+        "Documentation": "https://dolphinscheduler.apache.org/python/dev/index.html",
         "Source": "https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-python/"
         "pydolphinscheduler",
         "Issue Tracker": "https://github.com/apache/dolphinscheduler/issues?"


[dolphinscheduler] 16/20: [fix][python] Sql pattern add truncate. (#11666)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 59e745be0a485855f9fdf60275670b8d1a14a463
Author: 陈家名 <13...@163.com>
AuthorDate: Sat Aug 27 12:17:06 2022 +0800

    [fix][python] Sql pattern add truncate. (#11666)
    
    (cherry picked from commit 564a815d218f06a6b55dd9da790bdbf87bd36a50)
---
 .../pydolphinscheduler/src/pydolphinscheduler/tasks/sql.py              | 2 +-
 dolphinscheduler-python/pydolphinscheduler/tests/tasks/test_sql.py      | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/sql.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/sql.py
index a1259824f1..716a024daf 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/sql.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/tasks/sql.py
@@ -98,7 +98,7 @@ class Sql(Task):
             return self.param_sql_type
         pattern_select_str = (
             "^(?!(.* |)insert |(.* |)delete |(.* |)drop "
-            "|(.* |)update |(.* |)alter |(.* |)create ).*"
+            "|(.* |)update |(.* |)truncate |(.* |)alter |(.* |)create ).*"
         )
         pattern_select = re.compile(pattern_select_str, re.IGNORECASE)
         if pattern_select.match(self.sql) is None:
diff --git a/dolphinscheduler-python/pydolphinscheduler/tests/tasks/test_sql.py b/dolphinscheduler-python/pydolphinscheduler/tests/tasks/test_sql.py
index ee0acc442e..50ccd946a9 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tests/tasks/test_sql.py
+++ b/dolphinscheduler-python/pydolphinscheduler/tests/tasks/test_sql.py
@@ -54,6 +54,7 @@ from pydolphinscheduler.tasks.sql import Sql, SqlType
         ("delete from table_name where id < 10", None, SqlType.NOT_SELECT),
         ("alter table table_name add column col1 int", None, SqlType.NOT_SELECT),
         ("create table table_name2 (col1 int)", None, SqlType.NOT_SELECT),
+        ("truncate table  table_name", None, SqlType.NOT_SELECT),
         ("create table table_name2 (col1 int)", SqlType.SELECT, SqlType.SELECT),
         ("select 1", SqlType.NOT_SELECT, SqlType.NOT_SELECT),
         ("create table table_name2 (col1 int)", SqlType.NOT_SELECT, SqlType.NOT_SELECT),


[dolphinscheduler] 07/20: [Doc][DSIP] Move DSIP docs to the right place (#11442) (#11443)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 3447e6765c337783c32284c28eb3bc4914283429
Author: Eric Gao <er...@gmail.com>
AuthorDate: Fri Aug 12 11:20:12 2022 +0800

    [Doc][DSIP] Move DSIP docs to the right place (#11442) (#11443)
    
    (cherry picked from commit e3c6ace81d08a3421187af283c077d1683f1016b)
---
 docs/docs/en/DSIP.md | 84 ++++++++++++++++++++++++++------------------------
 docs/docs/zh/DSIP.md | 86 ++++++++++++++++++++++++----------------------------
 2 files changed, 85 insertions(+), 85 deletions(-)

diff --git a/docs/docs/en/DSIP.md b/docs/docs/en/DSIP.md
index 520ffc11b4..07d617875e 100644
--- a/docs/docs/en/DSIP.md
+++ b/docs/docs/en/DSIP.md
@@ -1,54 +1,57 @@
 # DSIP
 
-DolphinScheduler Improvement Proposal (DSIP) 是对 Apache DolphinScheduler 代码库进行的重大改进。它不是为了小修小补存在的,
-DSIP 的目的是通知社区完成或即将完成的重大变更。
+DolphinScheduler Improvement Proposal(DSIP) introduce major improvements to the Apache DolphinScheduler codebase. It is
+not for small incremental improvements, and the purpose of DSIP is to notice and inform community the finished or coming
+big feature for Apache DolphinScheduler.
 
-## 怎样的修改应该被认定为 DSIP
+## What is considered as DSIP
 
-- 任何重大的新功能、重大改进、引入或删除组件
-- 任何公共接口的任何重大变化,例如 API接口、web ui 巨大变化
+- Any major new feature, major improvement, introduce or remove components
+- Any major change of public interfaces, such as API endpoints, web ui huge change
 
-当一个 PR 或者 Issue 是否应该被认定为 DSIP 存疑时,如果有 committer 认为他应该纳入 DAIP 的范畴,那它就应该是 DSIP。
+When the change in doubt and any committer thinks it should be DSIP, it does.
 
-我们使用 GitHub Issue 和 Apache 邮件列表来记录和保存 DSIP,想要了解更多相关信息,您可以跳转到 当前的 DSIPs 以及 past DSIPs
+We use GitHub Issue and Apache mail thread to record and hold DSIP, for more detail you could go to section
+[current DSIPs](#current-dsips) and [past DSIPs](#past-dsips).
 
-作为 DSIP,它应该包含如下部分:
+As a DSIP, it should:
 
-- 在 [dev@dolphinscheduler.apache.org][mail-to-dev] 中有一个以 `[DISCUSS][DSIP` 为开头的邮件。
-- 有一个打了 "DSIP" 标签的 GitHub Issue,并在描述中包含邮链接。
+- Have a mail thread title started with `[DISCUSS]` in [dev@dolphinscheduler.apache.org][mail-to-dev]
+- Have a GitHub Issue labeled with `DSIP`, and including the mail thread link in the description.
 
-### 当前的 DSIPs
+### Current DSIPs
 
-当前的 DSIP 包括所有仍在进行中的 DSIP,您可以在 [当前的 DSIPs][current-DSIPs] 中找到他们
+Current DSIPs including all DSIP still work-in-progress, you could see in [current DSIPs][current-DSIPs]
 
-### 完结的 DSIPs
+### Past DSIPs
 
-完结的 DSIP,包括所有已完成或因某种原因终止的 DSIP,您可以在 [完结的 DSIPs][past-DSIPs] 中找到他们
+Past DSIPs including all DSIP already done or retired for some reason, you could see in [past DSIPs][past-DSIPs]
 
-## DSIP 的步骤
+## DSIP Process
 
-### 创建 GitHub Issue
+### Create GitHub Issue
 
-所有 DSIP 都应该起源于 GitHub Issue
+All DSIP should start with GitHub Issue
 
-- 如果您确定你的问题是 DSIP,你可以在 [GitHub Issue][github-issue-choose] 中点击并选择 "DSIP"
-- 如果您不确定您的问题是否是 DSIP,您可以在 [GitHub Issue][github-issue-choose] 单击并选择 "Feature request"。当DolphinScheduler
-  维护团队在查看 Issue 时认为他是 DSIP 时,会为 Issue 增加标签 "DSIP"。
+- If you pretty sure your issue is DSIP, you could click and choose "DSIP" in
+  [GitHub Issue][github-issue-choose]
+- If you not sure about your issue is DSIP or not, you could click and choose "Feature request" in
+  [GitHub Issue][github-issue-choose]. DolphinScheduler maintainer team would add label `DSIP`, mention you in the
+  issue and lead you to this document when they think it should be DSIP.
 
-You should and special prefix `[DSIP-XXX]`, `XXX` stand for the id DSIP. It's auto increment, and you could find the next
+You should add special prefix `[DSIP-XXX]`, `XXX` stand for the id DSIP. It's auto increment, and you could find the next
 integer in [All DSIPs][all-DSIPs] issues.
-在您的问题被标记成 DSIP 后,您应该特殊前缀 `[DSIP-XXX]`,其中`XXX` 代表 id DSIP。它是自动递增的,你可以在 [All DSIPs][all-DSIPs]
-找到下一个 DSIP 的整数编号。
 
-### 发送讨论邮件
+### Send Discuss Mail
 
-在您的问题被标记为 "DSIP" 后,您应该发送电子邮件至 [dev@dolphinscheduler.apache.org][mail-to-dev] 描述提案的目的,以及设计草案。
+After issue labeled with "DSIP", you should send an email to [dev@dolphinscheduler.apache.org][mail-to-dev].
+Describe the purpose, and the draft design about your idea.
 
-下面是邮件的模板
+Here is the template for mail
 
-- 标题: `[DISCUSS][DSIP-XXX] <CHANGE-TO-YOUR-LOVELY-PROPOSAL-TITLE>`, 将 `XXX` 修改为 to special integer you just change in
-  GitHub Issue, and also change proposal title.
-- 内容:
+- Title: `[DISCUSS][DSIP-XXX] <CHANGE-TO-YOUR-LOVELY-PROPOSAL-TITLE>`, change `XXX` to special integer you just change in
+  [GitHub Issue](#create-github-issue), and also change proposal title.
+- Content:
 
   ```text
   Hi community,
@@ -60,22 +63,25 @@ integer in [All DSIPs][all-DSIPs] issues.
   Looking forward any feedback for this thread.
   ```
 
-在社区讨论并且所有人都认为它值得作为 DSIP 之后,您可以去到下节正式开始工作。但是如果社区认为它不应该是 DSIP,维护者需要终止邮件讨论并
-删除 GitHub Issue 中的 "DSIP" 标签。如果当这个修改不应该合并到 DolphinScheduler 中时,维护者除了除了移除标签外,还要关闭 GitHub Issue。
+After community discuss and all of them think it worth as DSIP, you could [work on it](#work-on-it-or-create-subtask-for-it).
+But if community think it should not be DSIP or even this change should not be included to DolphinScheduler, maintainers
+terminate mail thread and remove label "DSIP" for GitHub Issue, or even close issue if it should not change.
 
-### 开始开发或者为他创建子任务
+### Work On It, Or Create Subtask For It
 
-当您的提案通过邮件讨论时,您可以开始工作。你可以提交一个相关的 pull requests 如果更改应该在一次提交中进行。如果提案太大,已经超过了单次
-提交的范畴,你可以在 GitHub Issue 中创建子任务,如 [DSIP-1][DSIP-1],并分成多个 pull requests 提交任务。
+When your proposal pass in the mail thread, you could make your hand dirty and start the work. You could submit related
+pull requests in GitHub if change should in one single commit. What's more, if proposal is too huge in single commit, you
+could create subtasks in GitHub Issue like [DSIP-1][DSIP-1], and separate into multiple commit.
 
-### 关闭 DSIP
+### Close After It Done
 
-当 DSIP 完成并合并所有相关 PR 后,您应该回复您在第二步创建的邮件讨论,通知社区 DSIP 的结果。在这之后,这个 DSIP GitHub Issue 将会被
-关闭,并从 [当前的 DSIPs][current-DSIPs] 转移到 [完结的 DSIPs][past-DSIPs],但您仍然可以在 [All DSIPs][all-DSIPs] 中找到它
+When DSIP is finished and all related PR were merged, you should reply the mail thread you created in
+[step two](#send-discuss-mail) to notice community the result of the DSIP. After that, this DSIP GitHub Issue would be
+closed and transfer from [current DSIPs][current-DSIPs] to [past DSIPs][past-DSIPs], but you could still find it in [All DSIPs][all-DSIPs]
 
-## DSIP的例子
+## An Example For DSIP
 
-* [[DSIP-1][Feature][Parent] Add Python API for DolphinScheduler][DSIP-1]: 有多个子任务和项目。
+* [[DSIP-1][Feature][Parent] Add Python API for DolphinScheduler][DSIP-1]: Have multiple subtasks and Projects on it.
 
 [all-DSIPs]: https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue+label%3A%22DSIP%22+
 [current-DSIPs]: https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue+is%3Aopen+label%3A%22DSIP%22
diff --git a/docs/docs/zh/DSIP.md b/docs/docs/zh/DSIP.md
index c4284784d6..520ffc11b4 100644
--- a/docs/docs/zh/DSIP.md
+++ b/docs/docs/zh/DSIP.md
@@ -1,57 +1,54 @@
 # DSIP
 
-DolphinScheduler Improvement Proposal(DSIP) introduce major improvements to the Apache DolphinScheduler codebase. It is
-not for small incremental improvements, and the purpose of DSIP is to notice and inform community the finished or coming
-big feature for Apache DolphinScheduler.
+DolphinScheduler Improvement Proposal (DSIP) 是对 Apache DolphinScheduler 代码库进行的重大改进。它不是为了小修小补存在的,
+DSIP 的目的是通知社区完成或即将完成的重大变更。
 
-## What is considered as DSIP
+## 怎样的修改应该被认定为 DSIP
 
-- Any major new feature, major improvement, introduce or remove components
-- Any major change of public interfaces, such as API endpoints, web ui huge change
+- 任何重大的新功能、重大改进、引入或删除组件
+- 任何公共接口的任何重大变化,例如 API接口、web ui 巨大变化
 
-When the change in doubt and any committer thinks it should be DSIP, it does.
+当一个 PR 或者 Issue 是否应该被认定为 DSIP 存疑时,如果有 committer 认为他应该纳入 DAIP 的范畴,那它就应该是 DSIP。
 
-We use GitHub Issue and Apache mail thread to record and hold DSIP, for more detail you could go to section
-[current DSIPs](#current-dsips) and [past DSIPs](#past-dsips).
+我们使用 GitHub Issue 和 Apache 邮件列表来记录和保存 DSIP,想要了解更多相关信息,您可以跳转到 当前的 DSIPs 以及 past DSIPs
 
-As a DSIP, it should:
+作为 DSIP,它应该包含如下部分:
 
-- Have a mail thread title started with `[DISCUSS]` in [dev@dolphinscheduler.apache.org][mail-to-dev]
-- Have a GitHub Issue labeled with `DSIP`, and including the mail thread link in the description.
+- 在 [dev@dolphinscheduler.apache.org][mail-to-dev] 中有一个以 `[DISCUSS][DSIP` 为开头的邮件。
+- 有一个打了 "DSIP" 标签的 GitHub Issue,并在描述中包含邮链接。
 
-### Current DSIPs
+### 当前的 DSIPs
 
-Current DSIPs including all DSIP still work-in-progress, you could see in [current DSIPs][current-DSIPs]
+当前的 DSIP 包括所有仍在进行中的 DSIP,您可以在 [当前的 DSIPs][current-DSIPs] 中找到他们
 
-### Past DSIPs
+### 完结的 DSIPs
 
-Past DSIPs including all DSIP already done or retired for some reason, you could see in [past DSIPs][past-DSIPs]
+完结的 DSIP,包括所有已完成或因某种原因终止的 DSIP,您可以在 [完结的 DSIPs][past-DSIPs] 中找到他们
 
-## DSIP Process
+## DSIP 的步骤
 
-### Create GitHub Issue
+### 创建 GitHub Issue
 
-All DSIP should start with GitHub Issue
+所有 DSIP 都应该起源于 GitHub Issue
 
-- If you pretty sure your issue is DSIP, you could click and choose "DSIP" in
-  [GitHub Issue][github-issue-choose]
-- If you not sure about your issue is DSIP or not, you could click and choose "Feature request" in
-  [GitHub Issue][github-issue-choose]. DolphinScheduler maintainer team would add label `DSIP`, mention you in the
-  issue and lead you to this document when they think it should be DSIP.
+- 如果您确定你的问题是 DSIP,你可以在 [GitHub Issue][github-issue-choose] 中点击并选择 "DSIP"
+- 如果您不确定您的问题是否是 DSIP,您可以在 [GitHub Issue][github-issue-choose] 单击并选择 "Feature request"。当DolphinScheduler
+  维护团队在查看 Issue 时认为他是 DSIP 时,会为 Issue 增加标签 "DSIP"。
 
-You should add special prefix `[DSIP-XXX]`, `XXX` stand for the id DSIP. It's auto increment, and you could find the next
+You should and special prefix `[DSIP-XXX]`, `XXX` stand for the id DSIP. It's auto increment, and you could find the next
 integer in [All DSIPs][all-DSIPs] issues.
+在您的问题被标记成 DSIP 后,您应该特殊前缀 `[DSIP-XXX]`,其中`XXX` 代表 id DSIP。它是自动递增的,你可以在 [All DSIPs][all-DSIPs]
+找到下一个 DSIP 的整数编号。
 
-### Send Discuss Mail
+### 发送讨论邮件
 
-After issue labeled with "DSIP", you should send an email to [dev@dolphinscheduler.apache.org][mail-to-dev].
-Describe the purpose, and the draft design about your idea.
+在您的问题被标记为 "DSIP" 后,您应该发送电子邮件至 [dev@dolphinscheduler.apache.org][mail-to-dev] 描述提案的目的,以及设计草案。
 
-Here is the template for mail
+下面是邮件的模板
 
-- Title: `[DISCUSS][DSIP-XXX] <CHANGE-TO-YOUR-LOVELY-PROPOSAL-TITLE>`, change `XXX` to special integer you just change in
-  [GitHub Issue](#create-github-issue), and also change proposal title.
-- Content:
+- 标题: `[DISCUSS][DSIP-XXX] <CHANGE-TO-YOUR-LOVELY-PROPOSAL-TITLE>`, 将 `XXX` 修改为 to special integer you just change in
+  GitHub Issue, and also change proposal title.
+- 内容:
 
   ```text
   Hi community,
@@ -63,29 +60,26 @@ Here is the template for mail
   Looking forward any feedback for this thread.
   ```
 
-After community discuss and all of them think it worth as DSIP, you could [work on it](#work-on-it-or-create-subtask-for-it).
-But if community think it should not be DSIP or even this change should not be included to DolphinScheduler, maintainers
-terminate mail thread and remove label "DSIP" for GitHub Issue, or even close issue if it should not change.
+在社区讨论并且所有人都认为它值得作为 DSIP 之后,您可以去到下节正式开始工作。但是如果社区认为它不应该是 DSIP,维护者需要终止邮件讨论并
+删除 GitHub Issue 中的 "DSIP" 标签。如果当这个修改不应该合并到 DolphinScheduler 中时,维护者除了除了移除标签外,还要关闭 GitHub Issue。
 
-### Work On It, Or Create Subtask For It
+### 开始开发或者为他创建子任务
 
-When your proposal pass in the mail thread, you could make your hand dirty and start the work. You could submit related
-pull requests in GitHub if change should in one single commit. What's more, if proposal is too huge in single commit, you
-could create subtasks in GitHub Issue like [DSIP-1][DSIP-1], and separate into multiple commit.
+当您的提案通过邮件讨论时,您可以开始工作。你可以提交一个相关的 pull requests 如果更改应该在一次提交中进行。如果提案太大,已经超过了单次
+提交的范畴,你可以在 GitHub Issue 中创建子任务,如 [DSIP-1][DSIP-1],并分成多个 pull requests 提交任务。
 
-### Close After It Done
+### 关闭 DSIP
 
-When DSIP is finished and all related PR were merged, you should reply the mail thread you created in
-[step two](#send-discuss-mail) to notice community the result of the DSIP. After that, this DSIP GitHub Issue would be
-closed and transfer from [current DSIPs][current-DSIPs] to [past DSIPs][past-DSIPs], but you could still find it in [All DSIPs][all-DSIPs]
+当 DSIP 完成并合并所有相关 PR 后,您应该回复您在第二步创建的邮件讨论,通知社区 DSIP 的结果。在这之后,这个 DSIP GitHub Issue 将会被
+关闭,并从 [当前的 DSIPs][current-DSIPs] 转移到 [完结的 DSIPs][past-DSIPs],但您仍然可以在 [All DSIPs][all-DSIPs] 中找到它
 
-## An Example For DSIP
+## DSIP的例子
 
-* [[DSIP-1][Feature][Parent] Add Python API for DolphinScheduler][DSIP-1]: Have multiple subtasks and Projects on it.
+* [[DSIP-1][Feature][Parent] Add Python API for DolphinScheduler][DSIP-1]: 有多个子任务和项目。
 
 [all-DSIPs]: https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue+label%3A%22DSIP%22+
 [current-DSIPs]: https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue+is%3Aopen+label%3A%22DSIP%22
 [past-DSIPs]: https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue+is%3Aclosed+label%3A%22DSIP%22+
 [github-issue-choose]: https://github.com/apache/dolphinscheduler/issues/new/choose
 [mail-to-dev]: mailto:dev@dolphinscheduler.apache.org
-[DSIP-1]: https://github.com/apache/dolphinscheduler/issues/6407
\ No newline at end of file
+[DSIP-1]: https://github.com/apache/dolphinscheduler/issues/6407


[dolphinscheduler] 12/20: [DOC] should notice that need setting the full path when call the resource file #11620 (#11621)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 6797ae2d97ebdf1bf0efe58d1e259194e41a08da
Author: Yann Ann <29...@qq.com>
AuthorDate: Fri Aug 26 10:58:56 2022 +0800

    [DOC] should notice that need setting the full path when call the resource file #11620 (#11621)
    
    (cherry picked from commit eda9f3d50cb3ef49faefaf5762794ca0f5ffddfa)
---
 docs/docs/en/guide/project/workflow-definition.md | 2 +-
 docs/docs/en/guide/resource/file-manage.md        | 2 ++
 docs/docs/zh/guide/project/workflow-definition.md | 2 +-
 docs/docs/zh/guide/resource/file-manage.md        | 2 ++
 4 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/docs/docs/en/guide/project/workflow-definition.md b/docs/docs/en/guide/project/workflow-definition.md
index 2137d3df38..1b4c351f26 100644
--- a/docs/docs/en/guide/project/workflow-definition.md
+++ b/docs/docs/en/guide/project/workflow-definition.md
@@ -24,7 +24,7 @@ Drag from the toolbar <img src="../../../../img/tasks/icons/shell.png" width="15
 2. Check `Normal` for `Run Flag`. If `Prohibit Execution` is checked, the task will not execute when the workflow runs.
 3. Select `Task Priority`: when the number of worker threads is insufficient, high priority tasks will execute first in the execution queue, and tasks with the same priority will execute in the order of first in, first out.
 4. Timeout alarm (optional): check the timeout alarm, timeout failure, and fill in the "timeout period". When the task execution time exceeds **timeout period**, an alert email will send and the task timeout fails.
-5. Resources (optional). Resources are files create or upload in the `Resource Center -> File Management` page. For example, the file name is `test.sh`, and the command to call the resource in the script is `sh test.sh`.
+5. Resources (optional). Resources are files created or uploaded in the `Resource Center -> File Management` page. For example, the file name is `test.sh`, and the command to use the resource in the script is `sh test.sh`. Please note that you need to use the full path to the resource files.
 6. Customize parameters (optional).
 7. Click the `Confirm Add` button to save the task settings.
 
diff --git a/docs/docs/en/guide/resource/file-manage.md b/docs/docs/en/guide/resource/file-manage.md
index 8a4ebba466..9d7de7eac9 100644
--- a/docs/docs/en/guide/resource/file-manage.md
+++ b/docs/docs/en/guide/resource/file-manage.md
@@ -59,6 +59,8 @@ In the workflow definition module of project Manage, create a new workflow using
 
 - Script: 'sh hello.sh'
 - Resource: Select 'hello.sh'
+> Notice: When using a resource file in the script, the file name needs to be the same as the full path of the selected resource:
+> For example: if the resource path is `/resource/hello.sh`, you need to use the full path of `/resource/hello.sh` to use it in the script.
 
 ![use-shell](../../../../img/new_ui/dev/resource/demo/file-demo02.png)
 
diff --git a/docs/docs/zh/guide/project/workflow-definition.md b/docs/docs/zh/guide/project/workflow-definition.md
index 65fbbdebf9..3ff31b3ed7 100644
--- a/docs/docs/zh/guide/project/workflow-definition.md
+++ b/docs/docs/zh/guide/project/workflow-definition.md
@@ -16,7 +16,7 @@
   1. “运行标志”勾选“正常”,若勾选“禁止执行”,运行工作流不会执行该任务;
   1. 选择“任务优先级”:当 worker 线程数不足时,级别高的任务在执行队列中会优先执行,相同优先级的任务按照先进先出的顺序执行;
   1. 超时告警(非必选):勾选超时告警、超时失败,填写“超时时长”,当任务执行时间超过**超时时长**,会发送告警邮件并且任务超时失败;
-  1. 资源(非必选):资源文件是资源中心->文件管理页面创建或上传的文件,如文件名为 `test.sh`,脚本中调用资源命令为 `sh test.sh`;
+  1. 资源(非必选):资源文件是资源中心->文件管理页面创建或上传的文件,如文件名为 `test.sh`,脚本中调用资源命令为 `sh test.sh`。注意调用需要使用资源的全路径;
   1. 自定义参数(非必填);
   1. 点击"确认添加"按钮,保存任务设置。
 
diff --git a/docs/docs/zh/guide/resource/file-manage.md b/docs/docs/zh/guide/resource/file-manage.md
index d7bacb5439..be53add9c0 100644
--- a/docs/docs/zh/guide/resource/file-manage.md
+++ b/docs/docs/zh/guide/resource/file-manage.md
@@ -56,6 +56,8 @@
 
 - 脚本:`sh hello.sh`
 - 资源:选择 `hello.sh`
+> 注意:脚本中选择资源文件时文件名称需要保持和所选择资源全路径一致:
+> 例如:资源路径为`/resource/hello.sh` 则脚本中调用需要使用`/resource/hello.sh`全路径
 
 ![use-shell](../../../../img/new_ui/dev/resource/demo/file-demo02.png)
 


[dolphinscheduler] 15/20: [improvement-#11630]fix document about common.properties (#11653)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 85b96ddc1525234132a9eebc9e9471ac4be59595
Author: fuchanghai <33...@users.noreply.github.com>
AuthorDate: Fri Aug 26 10:50:31 2022 +0800

    [improvement-#11630]fix document about common.properties (#11653)
    
    (cherry picked from commit ce8db1c5fb5992093f72491c691014858c35a597)
---
 docs/docs/en/architecture/configuration.md | 2 ++
 docs/docs/zh/architecture/configuration.md | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/docs/docs/en/architecture/configuration.md b/docs/docs/en/architecture/configuration.md
index a13fd012e2..6d37ebb919 100644
--- a/docs/docs/en/architecture/configuration.md
+++ b/docs/docs/en/architecture/configuration.md
@@ -209,6 +209,8 @@ The default configuration is as follows:
 |yarn.resourcemanager.ha.rm.ids | 192.168.xx.xx,192.168.xx.xx | specify the yarn resourcemanager url. if resourcemanager supports HA, input HA IP addresses (separated by comma), or input null for standalone|
 |yarn.application.status.address | http://ds1:8088/ws/v1/cluster/apps/%s | keep default if ResourceManager supports HA or not use ResourceManager, or replace ds1 with corresponding hostname if ResourceManager in standalone mode|
 |development.state | false | specify whether in development state|
+|dolphin.scheduler.network.interface.preferred | NONE | display name of the network card|
+|dolphin.scheduler.network.priority.strategy | default | IP acquisition strategy, give priority to finding the internal network or the external network|
 |resource.manager.httpaddress.port | 8088 | the port of resource manager|
 |yarn.job.history.status.address | http://ds1:19888/ws/v1/history/mapreduce/jobs/%s | job history status url of yarn|
 |datasource.encryption.enable | false | whether to enable datasource encryption|
diff --git a/docs/docs/zh/architecture/configuration.md b/docs/docs/zh/architecture/configuration.md
index 908dfae9cd..4bdbbaa570 100644
--- a/docs/docs/zh/architecture/configuration.md
+++ b/docs/docs/zh/architecture/configuration.md
@@ -199,6 +199,8 @@ common.properties配置文件目前主要是配置hadoop/s3/yarn相关的配置
 |yarn.resourcemanager.ha.rm.ids | 192.168.xx.xx,192.168.xx.xx | yarn resourcemanager 地址, 如果resourcemanager开启了HA, 输入HA的IP地址(以逗号分隔),如果resourcemanager为单节点, 该值为空即可|
 |yarn.application.status.address | http://ds1:8088/ws/v1/cluster/apps/%s | 如果resourcemanager开启了HA或者没有使用resourcemanager,保持默认值即可. 如果resourcemanager为单节点,你需要将ds1 配置为resourcemanager对应的hostname|
 |development.state | false | 是否处于开发模式|
+|dolphin.scheduler.network.interface.preferred | NONE | 网卡名称|
+|dolphin.scheduler.network.priority.strategy | default | ip获取策略 default优先获取内网|
 |resource.manager.httpaddress.port | 8088 | resource manager的端口|
 |yarn.job.history.status.address | http://ds1:19888/ws/v1/history/mapreduce/jobs/%s | yarn的作业历史状态URL|
 |datasource.encryption.enable | false | 是否启用datasource 加密|


[dolphinscheduler] 19/20: [python] Add support interpreter version 310 and 311-dev (#11170)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 9f0b2ca5505355680c22dffb8cb956992db8a7a1
Author: Jiajie Zhong <zh...@gmail.com>
AuthorDate: Thu Aug 11 23:39:44 2022 +0800

    [python] Add support interpreter version 310 and 311-dev (#11170)
    
    * Change version of package
    * Fix tox error
    * Change dev status to beta
    * py4j not work on py{10,11} OS Windows
    
    (cherry picked from commit 4d427ee215427c3793a2f779b2ca69353e995fcd)
---
 .github/workflows/py-ci.yml                        | 22 +++++++++++++-------
 .../pydolphinscheduler/README.md                   |  5 ++++-
 .../pydolphinscheduler/setup.py                    |  6 ++++--
 .../src/pydolphinscheduler/cli/commands.py         |  6 +++---
 .../pydolphinscheduler/tests/cli/test_version.py   | 24 ++++++++++++++--------
 dolphinscheduler-python/pydolphinscheduler/tox.ini |  2 +-
 6 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/py-ci.yml b/.github/workflows/py-ci.yml
index b0e042c4e7..6af2d0073e 100644
--- a/.github/workflows/py-ci.yml
+++ b/.github/workflows/py-ci.yml
@@ -61,7 +61,7 @@ jobs:
     steps:
       - uses: actions/checkout@v2
       - name: Set up Python 3.7
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
           python-version: 3.7
       - name: Install Dependences
@@ -78,12 +78,20 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        python-version: [3.6, 3.7, 3.8, 3.9]
-        os: [ubuntu-18.04, macOS-latest, windows-latest]
+        # YAML parse `3.10` to `3.1`, so we have to add quotes for `'3.10'`, see also:
+        # https://github.com/actions/setup-python/issues/160#issuecomment-724485470
+        python-version: [3.6, 3.7, 3.8, 3.9, '3.10', 3.11-dev]
+        os: [ubuntu-latest, macOS-latest, windows-latest]
+        # Skip because dependence [py4j](https://pypi.org/project/py4j/) not work on those environments
+        exclude:
+          - os: windows-latest
+            python-version: '3.10'
+          - os: windows-latest
+            python-version: 3.11-dev
     steps:
       - uses: actions/checkout@v2
       - name: Set up Python ${{ matrix.python-version }}
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python-version }}
       - name: Install Dependences
@@ -104,7 +112,7 @@ jobs:
     steps:
       - uses: actions/checkout@v2
       - name: Set up Python 3.7
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
           python-version: 3.7
       - name: Install Dependences
@@ -123,7 +131,7 @@ jobs:
     steps:
       - uses: actions/checkout@v2
       - name: Set up Python 3.7
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
           python-version: 3.7
       - name: Install Dependences
@@ -161,7 +169,7 @@ jobs:
           -Pdocker,release -Ddocker.tag=ci \
           -pl dolphinscheduler-standalone-server -am
       - name: Set up Python 3.7
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
           python-version: 3.7
       - name: Install Dependences
diff --git a/dolphinscheduler-python/pydolphinscheduler/README.md b/dolphinscheduler-python/pydolphinscheduler/README.md
index a487d5afb8..71119bdb2a 100644
--- a/dolphinscheduler-python/pydolphinscheduler/README.md
+++ b/dolphinscheduler-python/pydolphinscheduler/README.md
@@ -45,6 +45,9 @@ pydolphinscheduler version
 # 0.1.0
 ```
 
+> NOTE: package apache-dolphinscheduler not work on above Python version 3.10(including itself) in Window operating system
+> due to dependence [py4j](https://pypi.org/project/py4j/) not work on those environments.
+
 Here we show you how to install and run a simple example of pydolphinscheduler
 
 ### Start Server And Run Example
@@ -84,4 +87,4 @@ If you are interested in how to release **PyDolphinScheduler**, you could go and
 
 ## What's more
 
-For more detail information, please go to see **PyDolphinScheduler** [document](https://dolphinscheduler.apache.org/python/index.html)
+For more detail information, please go to see **PyDolphinScheduler** latest(unreleased) [document](https://dolphinscheduler.apache.org/python/dev/index.html)
diff --git a/dolphinscheduler-python/pydolphinscheduler/setup.py b/dolphinscheduler-python/pydolphinscheduler/setup.py
index 2e016b7c19..651dfba5b0 100644
--- a/dolphinscheduler-python/pydolphinscheduler/setup.py
+++ b/dolphinscheduler-python/pydolphinscheduler/setup.py
@@ -32,7 +32,7 @@ if sys.version_info[0] < 3:
 
 logger = logging.getLogger(__name__)
 
-version = "3.0.0"
+version = "dev"
 
 # Start package required
 prod = [
@@ -156,7 +156,7 @@ setup(
     platforms=["any"],
     classifiers=[
         # complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers
-        "Development Status :: 3 - Alpha",
+        "Development Status :: 4 - Beta",
         "Environment :: Console",
         "Intended Audience :: Developers",
         "License :: OSI Approved :: Apache Software License",
@@ -169,6 +169,8 @@ setup(
         "Programming Language :: Python :: 3.7",
         "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
+        "Programming Language :: Python :: 3.10",
+        "Programming Language :: Python :: 3.11",
         "Programming Language :: Python :: Implementation :: CPython",
         "Programming Language :: Python :: Implementation :: PyPy",
         "Topic :: Software Development :: User Interfaces",
diff --git a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py
index e2ca86b573..f1d59dbbd7 100644
--- a/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py
+++ b/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/cli/commands.py
@@ -20,7 +20,7 @@
 import click
 from click import echo
 
-from pydolphinscheduler import __version__
+import pydolphinscheduler
 from pydolphinscheduler.core.configuration import (
     get_single_config,
     init_config_file,
@@ -48,9 +48,9 @@ def version(part: str) -> None:
     """Show current version of pydolphinscheduler."""
     if part:
         idx = version_option_val.index(part)
-        echo(f"{__version__.split('.')[idx]}")
+        echo(f"{pydolphinscheduler.__version__.split('.')[idx]}")
     else:
-        echo(f"{__version__}")
+        echo(f"{pydolphinscheduler.__version__}")
 
 
 @cli.command()
diff --git a/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_version.py b/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_version.py
index f0dcb0e063..b61d26da02 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_version.py
+++ b/dolphinscheduler-python/pydolphinscheduler/tests/cli/test_version.py
@@ -17,9 +17,11 @@
 
 """Test command line interface subcommand `version`."""
 
+from unittest.mock import patch
+
 import pytest
 
-from pydolphinscheduler import __version__
+import pydolphinscheduler
 from pydolphinscheduler.cli.commands import cli
 from tests.testing.cli import CliTestWrapper
 
@@ -27,21 +29,27 @@ from tests.testing.cli import CliTestWrapper
 def test_version():
     """Test whether subcommand `version` correct."""
     cli_test = CliTestWrapper(cli, ["version"])
-    cli_test.assert_success(output=f"{__version__}")
+    cli_test.assert_success(output=f"{pydolphinscheduler.__version__}")
 
 
 @pytest.mark.parametrize(
-    "part, idx",
+    "version, part, idx",
     [
-        ("major", 0),
-        ("minor", 1),
-        ("micro", 2),
+        ("1.2.3", "major", 0),
+        ("0.1.3", "minor", 1),
+        ("3.1.0", "micro", 2),
+        ("1.2.3-beta-1", "micro", 2),
+        ("1.2.3-alpha", "micro", 2),
+        ("1.2.3a2", "micro", 2),
+        ("1.2.3b1", "micro", 2),
     ],
 )
-def test_version_part(part: str, idx: int):
+@patch("pydolphinscheduler.__version__")
+def test_version_part(mock_version, version: str, part: str, idx: int):
     """Test subcommand `version` option `--part`."""
+    mock_version.return_value = version
     cli_test = CliTestWrapper(cli, ["version", "--part", part])
-    cli_test.assert_success(output=f"{__version__.split('.')[idx]}")
+    cli_test.assert_success(output=f"{pydolphinscheduler.__version__.split('.')[idx]}")
 
 
 @pytest.mark.parametrize(
diff --git a/dolphinscheduler-python/pydolphinscheduler/tox.ini b/dolphinscheduler-python/pydolphinscheduler/tox.ini
index 186fe456d4..d90e8a3bcd 100644
--- a/dolphinscheduler-python/pydolphinscheduler/tox.ini
+++ b/dolphinscheduler-python/pydolphinscheduler/tox.ini
@@ -16,7 +16,7 @@
 # under the License.
 
 [tox]
-envlist = local-ci, auto-lint, lint, doc-build, doc-build-multi, code-test, integrate-test, local-integrate-test, py{36,37,38,39}
+envlist = local-ci, auto-lint, lint, doc-build, doc-build-multi, code-test, integrate-test, local-integrate-test, py{36,37,38,39,310,311}
 
 [testenv]
 allowlist_externals =


[dolphinscheduler] 10/20: feat: update slack (#11578)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit 7723f5bcae91798ebcd9aca90b4ea94a58cf5132
Author: labbomb <73...@qq.com>
AuthorDate: Mon Aug 22 11:03:50 2022 +0800

    feat: update slack (#11578)
    
    (cherry picked from commit 5813a61f0927a88b0e8ed20cb87f6e5b14c1a9e1)
---
 docs/configs/site.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/configs/site.js b/docs/configs/site.js
index d50eff8779..67fa399740 100644
--- a/docs/configs/site.js
+++ b/docs/configs/site.js
@@ -30,7 +30,7 @@ export default {
   'en-us': {
     banner: {
       text: '🤔 Have queries regarding Apache DolphinScheduler, Join Slack channel to disscuss them ',
-      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g'
+      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e36toy4n-5n9U2R__FDM05R~MJFFVBg'
     },
     pageMenu: [
       {
@@ -132,7 +132,7 @@ export default {
           name: 'Slack',
           img1: '/img/slack.png',
           img2: '/img/slack-selected.png',
-          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g',
+          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e36toy4n-5n9U2R__FDM05R~MJFFVBg',
         },
         {
           name: 'Email List',
@@ -153,7 +153,7 @@ export default {
   'zh-cn': {
     banner: {
       text: '🤔 有关于 Apache DolphinScheduler 的疑问,加入 Slack 频道来讨论他们 ',
-      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g'
+      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e36toy4n-5n9U2R__FDM05R~MJFFVBg'
     },
     pageMenu: [
       {
@@ -257,7 +257,7 @@ export default {
           name: 'Slack',
           img1: '/img/slack.png',
           img2: '/img/slack-selected.png',
-          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g',
+          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e36toy4n-5n9U2R__FDM05R~MJFFVBg',
         },
         {
           name: '邮件列表',


[dolphinscheduler] 05/20: feat: Modifying Slack Links (#11416)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch 3.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit f7fb1acef967b904eaf445eda13586cfb1cf58f9
Author: labbomb <73...@qq.com>
AuthorDate: Thu Aug 11 13:11:23 2022 +0800

    feat: Modifying Slack Links (#11416)
    
    * feat: Modifying Slack Links
    
    * append
    
    Co-authored-by: Jiajie Zhong <zh...@gmail.com>
    
    (cherry picked from commit de4e4af84436dd557a47176c47d4862af40ffab9)
---
 docs/configs/site.js                      | 56 ++++++++++++-------------------
 docs/docs/en/contribute/have-questions.md | 49 ++++-----------------------
 docs/docs/zh/contribute/have-questions.md | 51 ++++------------------------
 3 files changed, 34 insertions(+), 122 deletions(-)

diff --git a/docs/configs/site.js b/docs/configs/site.js
index 2e6b2ce140..d50eff8779 100644
--- a/docs/configs/site.js
+++ b/docs/configs/site.js
@@ -30,7 +30,7 @@ export default {
   'en-us': {
     banner: {
       text: '🤔 Have queries regarding Apache DolphinScheduler, Join Slack channel to disscuss them ',
-      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-omtdhuio-_JISsxYhiVsltmC5h38yfw'
+      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g'
     },
     pageMenu: [
       {
@@ -45,13 +45,13 @@ export default {
         children: [
           {
             key: 'docs0',
-            text: 'latest(3.0.0-alpha)',
+            text: 'latest(3.0.0)',
             link: '/en-us/docs/latest/user_doc/about/introduction.html',
           },
           {
             key: 'docs1',
-            text: '1.3.9',
-            link: '/en-us/docs/1.3.9/user_doc/quick-start.html',
+            text: '2.0.6',
+            link: '/en-us/docs/2.0.6/user_doc/guide/quick-start.html',
           },
           {
             key: 'docsHistory',
@@ -128,6 +128,12 @@ export default {
       title: 'About us',
       content: 'Do you need feedback? Please contact us through the following ways.',
       list: [
+        {
+          name: 'Slack',
+          img1: '/img/slack.png',
+          img2: '/img/slack-selected.png',
+          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g',
+        },
         {
           name: 'Email List',
           img1: '/img/emailgray.png',
@@ -140,26 +146,14 @@ export default {
           img2: '/img/twitterblue.png',
           link: 'https://twitter.com/dolphinschedule',
         },
-        {
-          name: 'Stack Overflow',
-          img1: '/img/stackoverflow.png',
-          img2: '/img/stackoverflow-selected.png',
-          link: 'https://stackoverflow.com/questions/tagged/apache-dolphinscheduler',
-        },
-        {
-          name: 'Slack',
-          img1: '/img/slack.png',
-          img2: '/img/slack-selected.png',
-          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-omtdhuio-_JISsxYhiVsltmC5h38yfw',
-        },
       ],
     },
-    copyright: 'Copyright © 2019-2021 The Apache Software Foundation. Apache DolphinScheduler, DolphinScheduler, and its feather logo are trademarks of The Apache Software Foundation.',
+    copyright: 'Copyright © 2019-2022 The Apache Software Foundation. Apache DolphinScheduler, DolphinScheduler, and its feather logo are trademarks of The Apache Software Foundation.',
   },
   'zh-cn': {
     banner: {
       text: '🤔 有关于 Apache DolphinScheduler 的疑问,加入 Slack 频道来讨论他们 ',
-      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-omtdhuio-_JISsxYhiVsltmC5h38yfw'
+      link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g'
     },
     pageMenu: [
       {
@@ -174,13 +168,13 @@ export default {
         children: [
           {
             key: 'docs0',
-            text: '最新版本latest(3.0.0-alpha)',
+            text: '最新版本latest(3.0.0)',
             link: '/zh-cn/docs/latest/user_doc/about/introduction.html',
           },
           {
             key: 'docs1',
-            text: '1.3.9',
-            link: '/zh-cn/docs/1.3.9/user_doc/quick-start.html',
+            text: '2.0.6',
+            link: '/zh-cn/docs/2.0.6/user_doc/guide/quick-start.html',
           },
           {
             key: 'docsHistory',
@@ -259,6 +253,12 @@ export default {
       title: '联系我们',
       content: '有问题需要反馈?请通过以下方式联系我们。',
       list: [
+        {
+          name: 'Slack',
+          img1: '/img/slack.png',
+          img2: '/img/slack-selected.png',
+          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g',
+        },
         {
           name: '邮件列表',
           img1: '/img/emailgray.png',
@@ -271,20 +271,8 @@ export default {
           img2: '/img/twitterblue.png',
           link: 'https://twitter.com/dolphinschedule',
         },
-        {
-          name: 'Stack Overflow',
-          img1: '/img/stackoverflow.png',
-          img2: '/img/stackoverflow-selected.png',
-          link: 'https://stackoverflow.com/questions/tagged/apache-dolphinscheduler',
-        },
-        {
-          name: 'Slack',
-          img1: '/img/slack.png',
-          img2: '/img/slack-selected.png',
-          link: 'https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-omtdhuio-_JISsxYhiVsltmC5h38yfw',
-        },
       ],
     },
-    copyright: 'Copyright © 2019-2021 The Apache Software Foundation. Apache DolphinScheduler, DolphinScheduler, and its feather logo are trademarks of The Apache Software Foundation.',
+    copyright: 'Copyright © 2019-2022 The Apache Software Foundation. Apache DolphinScheduler, DolphinScheduler, and its feather logo are trademarks of The Apache Software Foundation.',
   },
 };
diff --git a/docs/docs/en/contribute/have-questions.md b/docs/docs/en/contribute/have-questions.md
index 2d84759982..8497d033cd 100644
--- a/docs/docs/en/contribute/have-questions.md
+++ b/docs/docs/en/contribute/have-questions.md
@@ -1,36 +1,16 @@
 # Have Questions?
 
-## StackOverflow
+## Slack
 
-For usage questions, it is recommended you use the StackOverflow tag [apache-dolphinscheduler](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) as it is an active forum for DolphinScheduler users’ questions and answers.
+Chat rooms are great for quick questions or discussions on specialized topics.
 
-Some quick tips when using StackOverflow:
-
-- Prior to asking submitting questions, please:
-  - Search StackOverflow’s [apache-dolphinscheduler](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) tag to see if your question has already been answered
-- Please follow the StackOverflow [code of conduct](https://stackoverflow.com/help/how-to-ask)
-- Always use the apache-dolphinscheduler tag when asking questions
-- Please do not cross-post between [StackOverflow](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) and [GitHub issues](https://github.com/apache/dolphinscheduler/issues/new/choose)
+The following chat rooms are officially part of Apache DolphinScheduler:
 
-Question template:
+​	The Slack workspace URL: http://asf-dolphinscheduler.slack.com/.
 
-> **Describe the question**
->
-> A clear and concise description of what the question is.
->
-> **Which version of DolphinScheduler:**
->
->  -[1.3.0-preview]
->
-> **Additional context**
->
-> Add any other context about the problem here.
->
-> **Requirement or improvement**
->
-> \- Please describe about your requirements or improvement suggestions.
+​	You can join through invitation url: https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g.
 
-For broad, opinion based, ask for external resources, debug issues, bugs, contributing to the project, and scenarios, it is recommended you use the[ GitHub issues ](https://github.com/apache/dolphinscheduler/issues/new/choose)or dev@dolphinscheduler.apache.org mailing list.
+This chat room is used for questions and discussions related to using DolphinScheduler.
 
 ## Mailing Lists
 
@@ -38,9 +18,6 @@ For broad, opinion based, ask for external resources, debug issues, bugs, contri
 
 Some quick tips when using email:
 
-- Prior to asking submitting questions, please:
-  - Search StackOverflow at [apache-dolphinscheduler](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) to see if your question has already been answered
-
 - Tagging the subject line of your email will help you get a faster response, e.g. [api-server]: How to get open api interface?
 
 - Tags may help identify a topic by:
@@ -49,17 +26,3 @@ Some quick tips when using email:
   - Scenario: Debug, How-to
 
 - For error logs or long code examples, please use [GitHub gist](https://gist.github.com/) and include only a few lines of the pertinent code / log within the email.
-
-## Chat Rooms
-
-Chat rooms are great for quick questions or discussions on specialized topics. 
-
-The following chat rooms are officially part of Apache DolphinScheduler:
-
-​	The Slack workspace URL: http://asf-dolphinscheduler.slack.com/.
-
-​	You can join through invitation url: https://s.apache.org/dolphinscheduler-slack. 
-
-This chat room is used for questions and discussions related to using DolphinScheduler.
-
- 
\ No newline at end of file
diff --git a/docs/docs/zh/contribute/have-questions.md b/docs/docs/zh/contribute/have-questions.md
index 7d9ad9cc94..6eb85aba88 100644
--- a/docs/docs/zh/contribute/have-questions.md
+++ b/docs/docs/zh/contribute/have-questions.md
@@ -1,39 +1,16 @@
 # 当你遇到问题时
 
-## StackOverflow
+## Slack
 
-如果在使用上有疑问,建议你使用StackOverflow标签 [apache-dolphinscheduler](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler),这是一个DolphinScheduler用户问答的活跃论坛。
-
-使用StackOverflow时的快速提示:
-
-- 在提交问题之前:
-  - 在StackOverflow的 [apache-dolphinscheduler](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) 标签下进行搜索,看看你的问题是否已经被回答。
-
-- 请遵守StackOverflow的[行为准则](https://stackoverflow.com/help/how-to-ask)
-
-- 提出问题时,请务必使用apache-dolphinscheduler标签。
+聊天室是快速提问或讨论具体话题的好地方。
 
-- 请不要在 [StackOverflow](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) 和 [GitHub issues](https://github.com/apache/dolphinscheduler/issues/new/choose)之间交叉发帖。
+以下聊天室是Apache DolphinScheduler的正式组成部分:
 
-提问模板:
+​	Slack工作区的网址:http://asf-dolphinscheduler.slack.com/
 
-> **Describe the question**
->
-> 对问题的内容进行清晰、简明的描述。
->
-> **Which version of DolphinScheduler:**
->
->  -[1.3.0-preview]
->
-> **Additional context**
->
-> 在此添加关于该问题的其他背景。
->
-> **Requirement or improvement**
->
-> 在此描述您的要求或改进建议。
+​	你可以通过该邀请链接加入:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1e0s4agia-Ofkxa93zStmqTm9UsQBE8g
 
-如果你的问题较为宽泛、有意见或建议、期望请求外部资源,或是有项目调试、bug提交等相关问题,或者想要对项目做出贡献、对场景进行讨论,建议你提交[ GitHub issues ](https://github.com/apache/dolphinscheduler/issues/new/choose)或使用dev@dolphinscheduler.apache.org 邮件列表进行讨论。
+此聊天室用于与DolphinScheduler使用相关的问题讨论。
 
 ## 邮件列表
 
@@ -41,25 +18,9 @@
 
 使用电子邮件时的一些快速提示:
 
-- 在提出问题之前:
-  - 请在StackOverflow的 [apache-dolphinscheduler](https://stackoverflow.com/questions/tagged/apache-dolphinscheduler) 标签下进行搜索,看看你的问题是否已经被回答。
 - 在你的邮件的主题栏里加上标签会帮助你得到更快的回应,例如:[ApiServer]:如何获得开放的api接口?
 - 可以通过以下标签定义你的主题。
   - 组件相关:MasterServer、ApiServer、WorkerServer、AlertServer等等。
   - 级别:Beginner、Intermediate、Advanced
   - 场景相关:Debug,、How-to
 - 如果内容包括错误日志或长代码,请使用 [GitHub gist](https://gist.github.com/),并在邮件中只附加相关代码/日志的几行。
-
-## Chat Rooms
-
-聊天室是快速提问或讨论具体话题的好地方。
-
-以下聊天室是Apache DolphinScheduler的正式组成部分:
-
-​	Slack工作区的网址:http://asf-dolphinscheduler.slack.com/
-
-​	你可以通过该邀请链接加入:https://s.apache.org/dolphinscheduler-slack 
-
-此聊天室用于与DolphinScheduler使用相关的问题讨论。
-
- 
\ No newline at end of file