|
|
|
@ -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 |
|
|
|
|