You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dolphinscheduler.apache.org by gi...@apache.org on 2019/12/01 16:14:15 UTC

[incubator-dolphinscheduler-website] branch asf-site updated: Automated deployment: Sun Dec 1 16:14:04 UTC 2019 3d2234432863d9174354f718a72aa664c7ea363d

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

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new f929500  Automated deployment: Sun Dec  1 16:14:04 UTC 2019 3d2234432863d9174354f718a72aa664c7ea363d
f929500 is described below

commit f92950089a00497b85fa71bb40d86ca42401b4fe
Author: dailidong <da...@users.noreply.github.com>
AuthorDate: Sun Dec 1 16:14:05 2019 +0000

    Automated deployment: Sun Dec  1 16:14:04 UTC 2019 3d2234432863d9174354f718a72aa664c7ea363d
---
 build/blog.css                                     |  36 ++++-
 build/blog.js                                      |   2 +-
 build/blogDetail.css                               |  36 ++++-
 build/blogDetail.js                                |   2 +-
 build/community.css                                |  36 ++++-
 build/community.js                                 |   2 +-
 build/documentation.css                            |  36 ++++-
 build/documentation.js                             |   6 +-
 build/home.css                                     |  36 ++++-
 build/home.js                                      |   2 +-
 en-us/docs/development/contribute.html             |  23 +--
 en-us/docs/development/contribute.json             |   2 +-
 .../{contribute.html => unit-test.html}            |   6 +-
 .../{contribute.json => unit-test.json}            |   4 +-
 zh-cn/docs/development/contribute.html             | 178 +++++++++++++++++++--
 zh-cn/docs/development/contribute.json             |   2 +-
 .../{contribute.html => submit-bug.html}           |  30 +---
 zh-cn/docs/development/submit-bug.json             |   6 +
 .../{contribute.html => unit-test.html}            |   6 +-
 .../{contribute.json => unit-test.json}            |   4 +-
 20 files changed, 332 insertions(+), 123 deletions(-)

diff --git a/build/blog.css b/build/blog.css
index 3e05a36..5121744 100644
--- a/build/blog.css
+++ b/build/blog.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /*!
  * 
- * antd v3.25.3
+ * antd v3.26.0
  * 
  * Copyright 2015-present, Alipay, Inc.
  * All rights reserved.
@@ -3249,7 +3249,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
   border-right-width: 1px;
   border-radius: 0; }
 
@@ -3258,7 +3259,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus,
@@ -3266,7 +3268,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > *:first-child,
@@ -4412,7 +4415,9 @@ textarea.ant-input {
   shape-rendering: optimizeSpeed; }
 
 .ant-btn.ant-btn-loading {
-  position: relative;
+  position: relative; }
+
+.ant-btn.ant-btn-loading:not([disabled]) {
   pointer-events: none; }
 
 .ant-btn.ant-btn-loading::before {
@@ -15658,6 +15663,9 @@ textarea.ant-time-picker-input {
 form .has-feedback .ant-input {
   padding-right: 24px; }
 
+form .has-feedback .ant-input-affix-wrapper .ant-input-suffix {
+  padding-right: 18px; }
+
 form .has-feedback .ant-input-password-icon {
   margin-right: 18px; }
 
@@ -19460,6 +19468,9 @@ textarea.ant-mentions {
   left: 2px;
   margin-bottom: -4px; }
 
+.ant-slider-tooltip .ant-tooltip-inner {
+  min-width: unset; }
+
 .ant-slider-with-marks {
   margin-bottom: 28px; }
 
@@ -21113,7 +21124,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
     background-clip: padding-box; } }
 
 .ant-table-middle > .ant-table-title,
-.ant-table-middle > .ant-table-footer {
+.ant-table-middle > .ant-table-content > .ant-table-footer {
   padding: 12px 8px; }
 
 .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th,
@@ -21142,13 +21153,20 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   border-radius: 4px; }
 
 .ant-table-small > .ant-table-title,
-.ant-table-small > .ant-table-footer {
+.ant-table-small > .ant-table-content > .ant-table-footer {
   padding: 8px 8px; }
 
 .ant-table-small > .ant-table-title {
   top: 0;
   border-bottom: 1px solid #e8e8e8; }
 
+.ant-table-small > .ant-table-content > .ant-table-footer {
+  background-color: transparent;
+  border-top: 1px solid #e8e8e8; }
+
+.ant-table-small > .ant-table-content > .ant-table-footer::before {
+  background-color: transparent; }
+
 .ant-table-small > .ant-table-content > .ant-table-body {
   margin: 0 8px; }
 
@@ -21219,7 +21237,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   padding: 0; }
 
 .ant-table-small > .ant-table-content .ant-table-header {
-  background-color: #fff;
+  background-color: transparent;
   border-radius: 4px 4px 0 0; }
 
 .ant-table-small > .ant-table-content .ant-table-placeholder,
@@ -23381,6 +23399,8 @@ div.ant-typography-edit-content {
   text-align: center; }
 
 .ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {
+  position: absolute;
+  bottom: 10px;
   display: block; }
 
 .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {
diff --git a/build/blog.js b/build/blog.js
index d524674..f8930f7 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -8,7 +8,7 @@ object-assign
 (c) Sindre Sorhus
 @license MIT
 */
-var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
+var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
  * react-is.production.min.js
  *
  * Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/build/blogDetail.css b/build/blogDetail.css
index e85e4da..52f2ed5 100644
--- a/build/blogDetail.css
+++ b/build/blogDetail.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /*!
  * 
- * antd v3.25.3
+ * antd v3.26.0
  * 
  * Copyright 2015-present, Alipay, Inc.
  * All rights reserved.
@@ -3249,7 +3249,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
   border-right-width: 1px;
   border-radius: 0; }
 
@@ -3258,7 +3259,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus,
@@ -3266,7 +3268,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > *:first-child,
@@ -4412,7 +4415,9 @@ textarea.ant-input {
   shape-rendering: optimizeSpeed; }
 
 .ant-btn.ant-btn-loading {
-  position: relative;
+  position: relative; }
+
+.ant-btn.ant-btn-loading:not([disabled]) {
   pointer-events: none; }
 
 .ant-btn.ant-btn-loading::before {
@@ -15658,6 +15663,9 @@ textarea.ant-time-picker-input {
 form .has-feedback .ant-input {
   padding-right: 24px; }
 
+form .has-feedback .ant-input-affix-wrapper .ant-input-suffix {
+  padding-right: 18px; }
+
 form .has-feedback .ant-input-password-icon {
   margin-right: 18px; }
 
@@ -19460,6 +19468,9 @@ textarea.ant-mentions {
   left: 2px;
   margin-bottom: -4px; }
 
+.ant-slider-tooltip .ant-tooltip-inner {
+  min-width: unset; }
+
 .ant-slider-with-marks {
   margin-bottom: 28px; }
 
@@ -21113,7 +21124,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
     background-clip: padding-box; } }
 
 .ant-table-middle > .ant-table-title,
-.ant-table-middle > .ant-table-footer {
+.ant-table-middle > .ant-table-content > .ant-table-footer {
   padding: 12px 8px; }
 
 .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th,
@@ -21142,13 +21153,20 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   border-radius: 4px; }
 
 .ant-table-small > .ant-table-title,
-.ant-table-small > .ant-table-footer {
+.ant-table-small > .ant-table-content > .ant-table-footer {
   padding: 8px 8px; }
 
 .ant-table-small > .ant-table-title {
   top: 0;
   border-bottom: 1px solid #e8e8e8; }
 
+.ant-table-small > .ant-table-content > .ant-table-footer {
+  background-color: transparent;
+  border-top: 1px solid #e8e8e8; }
+
+.ant-table-small > .ant-table-content > .ant-table-footer::before {
+  background-color: transparent; }
+
 .ant-table-small > .ant-table-content > .ant-table-body {
   margin: 0 8px; }
 
@@ -21219,7 +21237,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   padding: 0; }
 
 .ant-table-small > .ant-table-content .ant-table-header {
-  background-color: #fff;
+  background-color: transparent;
   border-radius: 4px 4px 0 0; }
 
 .ant-table-small > .ant-table-content .ant-table-placeholder,
@@ -23381,6 +23399,8 @@ div.ant-typography-edit-content {
   text-align: center; }
 
 .ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {
+  position: absolute;
+  bottom: 10px;
   display: block; }
 
 .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {
diff --git a/build/blogDetail.js b/build/blogDetail.js
index 6c890cc..418b6bd 100644
--- a/build/blogDetail.js
+++ b/build/blogDetail.js
@@ -8,7 +8,7 @@ object-assign
 (c) Sindre Sorhus
 @license MIT
 */
-var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
+var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
  * react-is.production.min.js
  *
  * Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/build/community.css b/build/community.css
index e6d192a..2e18f96 100644
--- a/build/community.css
+++ b/build/community.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /*!
  * 
- * antd v3.25.3
+ * antd v3.26.0
  * 
  * Copyright 2015-present, Alipay, Inc.
  * All rights reserved.
@@ -3249,7 +3249,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
   border-right-width: 1px;
   border-radius: 0; }
 
@@ -3258,7 +3259,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus,
@@ -3266,7 +3268,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > *:first-child,
@@ -4412,7 +4415,9 @@ textarea.ant-input {
   shape-rendering: optimizeSpeed; }
 
 .ant-btn.ant-btn-loading {
-  position: relative;
+  position: relative; }
+
+.ant-btn.ant-btn-loading:not([disabled]) {
   pointer-events: none; }
 
 .ant-btn.ant-btn-loading::before {
@@ -15658,6 +15663,9 @@ textarea.ant-time-picker-input {
 form .has-feedback .ant-input {
   padding-right: 24px; }
 
+form .has-feedback .ant-input-affix-wrapper .ant-input-suffix {
+  padding-right: 18px; }
+
 form .has-feedback .ant-input-password-icon {
   margin-right: 18px; }
 
@@ -19460,6 +19468,9 @@ textarea.ant-mentions {
   left: 2px;
   margin-bottom: -4px; }
 
+.ant-slider-tooltip .ant-tooltip-inner {
+  min-width: unset; }
+
 .ant-slider-with-marks {
   margin-bottom: 28px; }
 
@@ -21113,7 +21124,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
     background-clip: padding-box; } }
 
 .ant-table-middle > .ant-table-title,
-.ant-table-middle > .ant-table-footer {
+.ant-table-middle > .ant-table-content > .ant-table-footer {
   padding: 12px 8px; }
 
 .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th,
@@ -21142,13 +21153,20 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   border-radius: 4px; }
 
 .ant-table-small > .ant-table-title,
-.ant-table-small > .ant-table-footer {
+.ant-table-small > .ant-table-content > .ant-table-footer {
   padding: 8px 8px; }
 
 .ant-table-small > .ant-table-title {
   top: 0;
   border-bottom: 1px solid #e8e8e8; }
 
+.ant-table-small > .ant-table-content > .ant-table-footer {
+  background-color: transparent;
+  border-top: 1px solid #e8e8e8; }
+
+.ant-table-small > .ant-table-content > .ant-table-footer::before {
+  background-color: transparent; }
+
 .ant-table-small > .ant-table-content > .ant-table-body {
   margin: 0 8px; }
 
@@ -21219,7 +21237,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   padding: 0; }
 
 .ant-table-small > .ant-table-content .ant-table-header {
-  background-color: #fff;
+  background-color: transparent;
   border-radius: 4px 4px 0 0; }
 
 .ant-table-small > .ant-table-content .ant-table-placeholder,
@@ -23381,6 +23399,8 @@ div.ant-typography-edit-content {
   text-align: center; }
 
 .ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {
+  position: absolute;
+  bottom: 10px;
   display: block; }
 
 .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {
diff --git a/build/community.js b/build/community.js
index 748e70d..b7ec32f 100644
--- a/build/community.js
+++ b/build/community.js
@@ -8,7 +8,7 @@ object-assign
 (c) Sindre Sorhus
 @license MIT
 */
-var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
+var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
  * react-is.production.min.js
  *
  * Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/build/documentation.css b/build/documentation.css
index bd68a9a..3787ab5 100644
--- a/build/documentation.css
+++ b/build/documentation.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /*!
  * 
- * antd v3.25.3
+ * antd v3.26.0
  * 
  * Copyright 2015-present, Alipay, Inc.
  * All rights reserved.
@@ -3249,7 +3249,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
   border-right-width: 1px;
   border-radius: 0; }
 
@@ -3258,7 +3259,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus,
@@ -3266,7 +3268,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > *:first-child,
@@ -4412,7 +4415,9 @@ textarea.ant-input {
   shape-rendering: optimizeSpeed; }
 
 .ant-btn.ant-btn-loading {
-  position: relative;
+  position: relative; }
+
+.ant-btn.ant-btn-loading:not([disabled]) {
   pointer-events: none; }
 
 .ant-btn.ant-btn-loading::before {
@@ -15658,6 +15663,9 @@ textarea.ant-time-picker-input {
 form .has-feedback .ant-input {
   padding-right: 24px; }
 
+form .has-feedback .ant-input-affix-wrapper .ant-input-suffix {
+  padding-right: 18px; }
+
 form .has-feedback .ant-input-password-icon {
   margin-right: 18px; }
 
@@ -19460,6 +19468,9 @@ textarea.ant-mentions {
   left: 2px;
   margin-bottom: -4px; }
 
+.ant-slider-tooltip .ant-tooltip-inner {
+  min-width: unset; }
+
 .ant-slider-with-marks {
   margin-bottom: 28px; }
 
@@ -21113,7 +21124,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
     background-clip: padding-box; } }
 
 .ant-table-middle > .ant-table-title,
-.ant-table-middle > .ant-table-footer {
+.ant-table-middle > .ant-table-content > .ant-table-footer {
   padding: 12px 8px; }
 
 .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th,
@@ -21142,13 +21153,20 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   border-radius: 4px; }
 
 .ant-table-small > .ant-table-title,
-.ant-table-small > .ant-table-footer {
+.ant-table-small > .ant-table-content > .ant-table-footer {
   padding: 8px 8px; }
 
 .ant-table-small > .ant-table-title {
   top: 0;
   border-bottom: 1px solid #e8e8e8; }
 
+.ant-table-small > .ant-table-content > .ant-table-footer {
+  background-color: transparent;
+  border-top: 1px solid #e8e8e8; }
+
+.ant-table-small > .ant-table-content > .ant-table-footer::before {
+  background-color: transparent; }
+
 .ant-table-small > .ant-table-content > .ant-table-body {
   margin: 0 8px; }
 
@@ -21219,7 +21237,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   padding: 0; }
 
 .ant-table-small > .ant-table-content .ant-table-header {
-  background-color: #fff;
+  background-color: transparent;
   border-radius: 4px 4px 0 0; }
 
 .ant-table-small > .ant-table-content .ant-table-placeholder,
@@ -23381,6 +23399,8 @@ div.ant-typography-edit-content {
   text-align: center; }
 
 .ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {
+  position: absolute;
+  bottom: 10px;
   display: block; }
 
 .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {
diff --git a/build/documentation.js b/build/documentation.js
index 480cb2e..d763ca7 100644
--- a/build/documentation.js
+++ b/build/documentation.js
@@ -3,12 +3,12 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var c in r)i.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){e.exports=n(993)() [...]
+!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var c in r)i.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){e.exports=n(993)() [...]
 object-assign
 (c) Sindre Sorhus
 @license MIT
 */
-var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
+var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
  * react-is.production.min.js
  *
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -32,4 +32,4 @@ Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol
  * Copyright © 2012-2019 Faisal Salman <f...@faisalman.com>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},h={rgx:function(e,t){for(var n,r,o,i,a,c,s=0;s<t.length&&!a;){var l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof i&&i.length>0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},h={rgx:function(e,t){for(var n,r,o,i,a,c,s=0;s<t.length&&!a;){var l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof i&&i.length>0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/build/home.css b/build/home.css
index 156f5c5..69c6d0c 100644
--- a/build/home.css
+++ b/build/home.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /*!
  * 
- * antd v3.25.3
+ * antd v3.26.0
  * 
  * Copyright 2015-present, Alipay, Inc.
  * All rights reserved.
@@ -3249,7 +3249,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
   border-right-width: 1px;
   border-radius: 0; }
 
@@ -3258,7 +3259,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus,
@@ -3266,7 +3268,8 @@ textarea.ant-input {
 .ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
 .ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus,
-.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus {
+.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus,
+.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
   z-index: 1; }
 
 .ant-input-group.ant-input-group-compact > *:first-child,
@@ -4412,7 +4415,9 @@ textarea.ant-input {
   shape-rendering: optimizeSpeed; }
 
 .ant-btn.ant-btn-loading {
-  position: relative;
+  position: relative; }
+
+.ant-btn.ant-btn-loading:not([disabled]) {
   pointer-events: none; }
 
 .ant-btn.ant-btn-loading::before {
@@ -15658,6 +15663,9 @@ textarea.ant-time-picker-input {
 form .has-feedback .ant-input {
   padding-right: 24px; }
 
+form .has-feedback .ant-input-affix-wrapper .ant-input-suffix {
+  padding-right: 18px; }
+
 form .has-feedback .ant-input-password-icon {
   margin-right: 18px; }
 
@@ -19460,6 +19468,9 @@ textarea.ant-mentions {
   left: 2px;
   margin-bottom: -4px; }
 
+.ant-slider-tooltip .ant-tooltip-inner {
+  min-width: unset; }
+
 .ant-slider-with-marks {
   margin-bottom: 28px; }
 
@@ -21113,7 +21124,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
     background-clip: padding-box; } }
 
 .ant-table-middle > .ant-table-title,
-.ant-table-middle > .ant-table-footer {
+.ant-table-middle > .ant-table-content > .ant-table-footer {
   padding: 12px 8px; }
 
 .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th,
@@ -21142,13 +21153,20 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   border-radius: 4px; }
 
 .ant-table-small > .ant-table-title,
-.ant-table-small > .ant-table-footer {
+.ant-table-small > .ant-table-content > .ant-table-footer {
   padding: 8px 8px; }
 
 .ant-table-small > .ant-table-title {
   top: 0;
   border-bottom: 1px solid #e8e8e8; }
 
+.ant-table-small > .ant-table-content > .ant-table-footer {
+  background-color: transparent;
+  border-top: 1px solid #e8e8e8; }
+
+.ant-table-small > .ant-table-content > .ant-table-footer::before {
+  background-color: transparent; }
+
 .ant-table-small > .ant-table-content > .ant-table-body {
   margin: 0 8px; }
 
@@ -21219,7 +21237,7 @@ tr.ant-table-expanded-row td > .ant-table-wrapper {
   padding: 0; }
 
 .ant-table-small > .ant-table-content .ant-table-header {
-  background-color: #fff;
+  background-color: transparent;
   border-radius: 4px 4px 0 0; }
 
 .ant-table-small > .ant-table-content .ant-table-placeholder,
@@ -23381,6 +23399,8 @@ div.ant-typography-edit-content {
   text-align: center; }
 
 .ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {
+  position: absolute;
+  bottom: 10px;
   display: block; }
 
 .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {
diff --git a/build/home.js b/build/home.js
index effe44e..0898026 100644
--- a/build/home.js
+++ b/build/home.js
@@ -8,7 +8,7 @@ object-assign
 (c) Sindre Sorhus
 @license MIT
 */
-var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
+var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmn [...]
  * react-is.production.min.js
  *
  * Copyright (c) Facebook, Inc. and its affiliates.
diff --git a/en-us/docs/development/contribute.html b/en-us/docs/development/contribute.html
index 8e0cbda..ca2ce36 100644
--- a/en-us/docs/development/contribute.html
+++ b/en-us/docs/development/contribute.html
@@ -12,28 +12,7 @@
 	<link rel="stylesheet" href="/build/documentation.css" />
 </head>
 <body>
-	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/en-us/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">中</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass ant [...]
-<p>Unit test writing reference <a href="https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java">link</a></p>
-<h3>1.The benefits of unit testing</h3>
-<ul>
-<li>Unit test code can help everyone to go into details and understand the function of the code.</li>
-<li>We can find bugs by test case, and then enhance the robustness of the code.</li>
-<li>Test case code is also the demo usage of the core code.</li>
-</ul>
-<h3>2.Some design principle of unit test case</h3>
-<ul>
-<li>Steps, fine-grained and combination conditions should be well designed.</li>
-<li>Attention to boundary condition test</li>
-<li>Test code should also be designed without writing useless code.</li>
-<li>When you find a <code>method</code> that is hard to write unit test, if you can be sure the <code>method</code> is &quot;smelly code&quot;, then  refactor it with the committer.</li>
-<li>The mock framework in DolphinScheduler is: <a href="http://site.mockito.org/">mockito</a>. Some tutorials:<a href="http://www.baeldung.com/bdd-mockito">mockito tutorial</a>,<a href="https://dzone.com/refcardz/mockito">mockito refcard</a></li>
-<li>TDD(optional):When you start a new issue, you can try to write test case at first</li>
-</ul>
-<h3>3.The specified value of the test coverage</h3>
-<ul>
-<li>In the stage, the test coverage specified value of delta changed codes is :&gt;=60%. The higher, the better.</li>
-<li>We can see the coverage report in this page: <a href="https://codecov.io/gh/apache/dolphinscheduler">https://codecov.io/gh/apache/dolphinscheduler</a></li>
-</ul>
+	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/en-us/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">中</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass ant [...]
 </div></section><footer class="footer-container"><div class="footer-body"><img src="/img/ds_gray.svg"/><div class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache DolphinScheduler (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. 
 Incubation is required of all newly accepted projects until a further review indicates 
 that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. 
diff --git a/en-us/docs/development/contribute.json b/en-us/docs/development/contribute.json
index 7f85cf7..8382210 100644
--- a/en-us/docs/development/contribute.json
+++ b/en-us/docs/development/contribute.json
@@ -1,6 +1,6 @@
 {
   "filename": "contribute.md",
-  "__html": "<h2>Unit Test coverage</h2>\n<p>Unit test writing reference <a href=\"https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java\">link</a></p>\n<h3>1.The benefits of unit testing</h3>\n<ul>\n<li>Unit test code can help everyone to go into details and understand the function of the code.</li>\n<li>We can find bugs by test case, and then enhance the robustness of the code.</li>\n<li>Test ca [...]
+  "__html": "<h1>todo</h1>\n",
   "link": "/en-us/docs/development/contribute.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/en-us/docs/development/contribute.html b/en-us/docs/development/unit-test.html
similarity index 98%
copy from en-us/docs/development/contribute.html
copy to en-us/docs/development/unit-test.html
index 8e0cbda..cccfb13 100644
--- a/en-us/docs/development/contribute.html
+++ b/en-us/docs/development/unit-test.html
@@ -4,10 +4,10 @@
 <head>
 	<meta charset="UTF-8">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-	<meta name="keywords" content="contribute" />
-	<meta name="description" content="contribute" />
+	<meta name="keywords" content="unit-test" />
+	<meta name="description" content="unit-test" />
 	<!-- 网页标签标题 -->
-	<title>contribute</title>
+	<title>unit-test</title>
 	<link rel="shortcut icon" href="/img/docsite.ico"/>
 	<link rel="stylesheet" href="/build/documentation.css" />
 </head>
diff --git a/en-us/docs/development/contribute.json b/en-us/docs/development/unit-test.json
similarity index 95%
copy from en-us/docs/development/contribute.json
copy to en-us/docs/development/unit-test.json
index 7f85cf7..e658a4e 100644
--- a/en-us/docs/development/contribute.json
+++ b/en-us/docs/development/unit-test.json
@@ -1,6 +1,6 @@
 {
-  "filename": "contribute.md",
+  "filename": "unit-test.md",
   "__html": "<h2>Unit Test coverage</h2>\n<p>Unit test writing reference <a href=\"https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java\">link</a></p>\n<h3>1.The benefits of unit testing</h3>\n<ul>\n<li>Unit test code can help everyone to go into details and understand the function of the code.</li>\n<li>We can find bugs by test case, and then enhance the robustness of the code.</li>\n<li>Test ca [...]
-  "link": "/en-us/docs/development/contribute.html",
+  "link": "/en-us/docs/development/unit-test.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/zh-cn/docs/development/contribute.html b/zh-cn/docs/development/contribute.html
index 44021e0..ecd82d3 100644
--- a/zh-cn/docs/development/contribute.html
+++ b/zh-cn/docs/development/contribute.html
@@ -12,27 +12,173 @@
 	<link rel="stylesheet" href="/build/documentation.css" />
 </head>
 <body>
-	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/zh-cn/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">En</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass an [...]
-<p>Unit Test编写参考<a href="https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java">链接</a></p>
-<h3>1.写单元测试的收益</h3>
+	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/zh-cn/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">En</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass an [...]
+<p>您可以提交一个bug,一个Feature建议或者直接提交改进。</p>
+<h3>1. 如何提交Bug</h3>
+<p>当您发现一个Bug时,请提交Bug,提交前:</p>
 <ul>
-<li>单元测试能帮助每个人深入代码细节,了解代码的功能。</li>
-<li>通过测试用例我们能发现bug,并提交代码的健壮性。</li>
-<li>测试用例同时也是代码的demo用法。</li>
+<li>请先在issue列表里查找一下是否该bug已经提交,如果已经有此bug,请在此bug下接着回复。</li>
+<li>如果该Bug是可以复现的。请尽量提供完整的重现步骤。</li>
 </ul>
-<h3>2.单元测试用例的一些设计原则</h3>
+<p>请在issues页面中提交Bug。</p>
+<p>一个高质量的Bug通常有以下特征:</p>
 <ul>
-<li>应该精心设计好步骤,颗粒度和组合条件。</li>
-<li>注意边界条件。</li>
-<li>单元测试也应该好好设计,不要写无用的代码。</li>
-<li>当你发现一个<code>方法</code>很难写单元测试时,如果可以确认这个<code>方法</code>是<code>臭代码</code>,那么就和开发者一起重构它。</li>
-<li>DolphinScheduler: <a href="http://site.mockito.org/">mockito</a>. 下面是一些开发向导:<a href="http://www.baeldung.com/bdd-mockito">mockito tutorial</a>,<a href="https://dzone.com/refcardz/mockito">mockito refcard</a></li>
-<li>TDD(可选):当你开始写一个新的功能时,你可以试着先写测试用例。</li>
+<li>使用一个清晰并有描述性的标题来定义Bug。</li>
+<li>详细的描述复现Bug的步骤。包括您的配置情况,预计产生的结果,实际产生的结果。并附加详细的TRACE日志。</li>
+<li>如果程序抛出异常,请附加完整的堆栈日志。</li>
+<li>如有可能,请附上屏幕截图或动态的GIF图,这些图片能帮助演示整个问题的产生过程。</li>
+<li>哪个版本。</li>
+<li>需要修复的优先级(危急、重大、次要、细微)。</li>
 </ul>
-<h3>3.测试覆盖率设定值</h3>
+<p>下面是Bug的Markdown模板,请按照该模板填写issue。</p>
+<pre><code class="language-shell">**标题** 
+标题格式: [BUG][Priority] bug标题
+Priority分为四级: Critical、Major、Minor、Trivial
+
+**问题描述**
+[清晰准确描述遇到的问题]
+
+**问题复现步骤:**
+1. [第一步]
+2. [第二步]
+3. [...]
+
+**期望的表现:**
+[在这里描述期望的表现]
+
+**观察到的表现:**
+[在这里描述观察到的表现]
+
+**屏幕截图和动态GIF图**
+![复现步骤的屏幕截图和动态GIF图](图片的url)
+
+**DolphinScheduler版本:(以1.1.0为例)** 
+ -[1.1.0]
+ 
+**补充的内容:**
+[请描述补充的内容,比如]
+
+**需求或者建议**
+[请描述你的需求或者建议]
+</code></pre>
+<h3>2. 如何提交功能(Feature)建议</h3>
+<p>提交前:</p>
 <ul>
-<li>在现阶段,Delta更改代码的测试覆盖设定值为:&gt;=60%,越高越好。</li>
-<li>我们可以在这个页面中看到测试报告: <a href="https://codecov.io/gh/apache/dolphinscheduler">https://codecov.io/gh/apache/dolphinscheduler</a></li>
+<li>请确定这不是一个重复的功能增强建议。 查看Issue Page列表,搜索您要提交的功能增强建议是否已经被提交过。</li>
+</ul>
+<p>请在issues页面中提交Feature。</p>
+<p>一个高质量的Feature通常有以下特征:</p>
+<ul>
+<li>一个清晰的标题来定义Feature</li>
+<li>详细描述Feature的行为模式</li>
+<li>说明为什么该Feature对大多数用户是有用的。新功能应该具有广泛的适用性。</li>
+<li>尽量列出其他调度已经具备的类似功能。商用与开源软件均可。</li>
+</ul>
+<p>以下是Feature的Markdown模板,请按照该模板填写issue。</p>
+<pre><code class="language-shell">**标题** 
+标题格式: [Feature][Priority] feature标题
+Priority分为四级: Critical、Major、Minor、Trivial
+
+**Feature的描述**
+[描述新Feature应实现的功能]
+
+**为什么这个新功能是对大多数用户有用的**
+[解释这个功能为什么对大多数用户是有用的]
+
+**补充的内容**
+[列出其他的调度是否包含该功能,是如何实现的]
+
+</code></pre>
+<h3>3. 如何领取Bug/Feature</h3>
+<p>如果您想实现某个Feature或者修复某个Bug。请参考以下内容:</p>
+<ul>
+<li>所有的Bug与新Feature建议使用Issues Page进行管理。</li>
+<li>如果想要开发实现某个Feature功能,请先回复该功能所关联的Issue,表明您当前正在这个Issue上工作。 并在回复的时候为自己设置一个deadline,并添加的回复内容中。</li>
+<li>最好在核心贡献者找到一个导师(指导者),导师会在设计与功能实现上给予即时的反馈。</li>
+<li>您应该新建一个分支来开始您的工作,分支的名字为Feature功能名称/issueId。 比如,您想完成依赖功能并提交了Issue 111,那么您的branch名字应为 dependency/111。 功能名称可与导师讨论后确定。</li>
+<li>完成后,发送一个pull request到incubator-dolphinscheduler,提交过程具体请参考下面《如何提交代码》。</li>
+</ul>
+<h3>4. 如何提交代码</h3>
+<ul>
+<li>
+<p>首先从远端仓库<em><a href="https://github.com/apache/incubator-dolphinscheduler.git">https://github.com/apache/incubator-dolphinscheduler.git</a></em> fork一份代码到自己的仓库中</p>
+</li>
+<li>
+<p>远端仓库中目前有三个分支:</p>
+<ul>
+<li>
+<p>master 正常交付分支
+发布稳定版本以后,将稳定版本分支的代码合并到master上。</p>
+</li>
+<li>
+<p>dev    日常开发分支
+日常dev开发分支,新提交的代码都可以pull request到这个分支上。</p>
+</li>
+<li>
+<p>branch-1.0.0 发布版本分支
+发布版本分支,后续会有2.0...等版本分支,版本分支只修改bug,不增加新功能。</p>
+</li>
+</ul>
+</li>
+<li>
+<p>把自己仓库clone到本地</p>
+<p><code>git clone https://github.com/apache/incubator-dolphinscheduler.git</code></p>
+</li>
+<li>
+<p>添加远端仓库地址,命名为upstream</p>
+<p><code>git remote add upstream https://github.com/apache/incubator-dolphinscheduler.git</code></p>
+</li>
+<li>
+<p>查看仓库:</p>
+<p><code>git remote -v</code></p>
+</li>
+</ul>
+<blockquote>
+<p>此时会有两个仓库:origin(自己的仓库)和upstream(远端仓库)</p>
+</blockquote>
+<ul>
+<li>
+<p>获取/更新远端仓库代码(已经是最新代码,就跳过)</p>
+<p><code>git fetch upstream</code></p>
+</li>
+<li>
+<p>同步远端仓库代码到本地仓库</p>
+</li>
+</ul>
+<pre><code> git checkout origin/dev
+ git merge --no-ff upstream/dev
+</code></pre>
+<p>如果远端分支有新加的分支比如<code>dev-1.0</code>,需要同步这个分支到本地仓库</p>
+<pre><code>git checkout -b dev-1.0 upstream/dev-1.0
+git push --set-upstream origin dev1.0
+</code></pre>
+<ul>
+<li>
+<p>在本地修改代码以后,提交到自己仓库:</p>
+<p><code>git commit -m 'commit content'</code>
+<code>git push</code></p>
+</li>
+<li>
+<p>将修改提交到远端仓库</p>
+<ul>
+<li>在github页面,点击New pull request.  <p align="center">
+ <img src="http://geek.analysys.cn/static/upload/221/2019-04-02/90f3abbf-70ef-4334-b8d6-9014c9cf4c7f.png" width="60%" />
+</li>
+</ul>
+   </p>
+<ul>
+<li>选择修改完的本地分支和要合并过去的分支,Create pull request.  <p align="center">
+ <img src="http://geek.analysys.cn/static/upload/221/2019-04-02/fe7eecfe-2720-4736-951b-b3387cf1ae41.png" width="60%" />
+</li>
+</ul>
+   </p>
+</li>
+<li>
+<p>接着社区Committer们会做CodeReview,然后他会与您讨论一些细节(包括设计,实现,性能等)。当团队中所有人员对本次修改满意后,会将提交合并到dev分支</p>
+</li>
+<li>
+<p>最后,恭喜您已经成为了dolphinscheduler的官方贡献者!</p>
+</li>
 </ul>
 </div></section><footer class="footer-container"><div class="footer-body"><img src="/img/ds_gray.svg"/><div class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache DolphinScheduler (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. 
 Incubation is required of all newly accepted projects until a further review indicates 
diff --git a/zh-cn/docs/development/contribute.json b/zh-cn/docs/development/contribute.json
index c52be85..030d171 100644
--- a/zh-cn/docs/development/contribute.json
+++ b/zh-cn/docs/development/contribute.json
@@ -1,6 +1,6 @@
 {
   "filename": "contribute.md",
-  "__html": "<h2>Unit Test覆盖率</h2>\n<p>Unit Test编写参考<a href=\"https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java\">链接</a></p>\n<h3>1.写单元测试的收益</h3>\n<ul>\n<li>单元测试能帮助每个人深入代码细节,了解代码的功能。</li>\n<li>通过测试用例我们能发现bug,并提交代码的健壮性。</li>\n<li>测试用例同时也是代码的demo用法。</li>\n</ul>\n<h3>2.单元测试用例的一些设计原则</h3>\n<ul>\n<li>应该精心设计好步骤,颗粒度和组合条件。</li>\n<li>注意边界条件。</li>\n<li>单元测试也应该好好设计,不要写无用的代码。</li>\n<li>当你发现一个<code>方法</cod [...]
+  "__html": "<h2>贡献</h2>\n<p>您可以提交一个bug,一个Feature建议或者直接提交改进。</p>\n<h3>1. 如何提交Bug</h3>\n<p>当您发现一个Bug时,请提交Bug,提交前:</p>\n<ul>\n<li>请先在issue列表里查找一下是否该bug已经提交,如果已经有此bug,请在此bug下接着回复。</li>\n<li>如果该Bug是可以复现的。请尽量提供完整的重现步骤。</li>\n</ul>\n<p>请在issues页面中提交Bug。</p>\n<p>一个高质量的Bug通常有以下特征:</p>\n<ul>\n<li>使用一个清晰并有描述性的标题来定义Bug。</li>\n<li>详细的描述复现Bug的步骤。包括您的配置情况,预计产生的结果,实际产生的结果。并附加详细的TRACE日志。</li>\n<li>如果程序抛出异常,请附加完整的堆栈日志。</li>\n<li>如有可能,请附上屏幕截图或动态的GIF图,这些图片能帮助演示整个问题的产生过程。</li>\n<li>哪个版本。</li>\n<li>需要修复的优�
 �级( [...]
   "link": "/zh-cn/docs/development/contribute.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/zh-cn/docs/development/contribute.html b/zh-cn/docs/development/submit-bug.html
similarity index 78%
copy from zh-cn/docs/development/contribute.html
copy to zh-cn/docs/development/submit-bug.html
index 44021e0..a01b98e 100644
--- a/zh-cn/docs/development/contribute.html
+++ b/zh-cn/docs/development/submit-bug.html
@@ -4,37 +4,15 @@
 <head>
 	<meta charset="UTF-8">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-	<meta name="keywords" content="contribute" />
-	<meta name="description" content="contribute" />
+	<meta name="keywords" content="submit-bug" />
+	<meta name="description" content="submit-bug" />
 	<!-- 网页标签标题 -->
-	<title>contribute</title>
+	<title>submit-bug</title>
 	<link rel="shortcut icon" href="/img/docsite.ico"/>
 	<link rel="stylesheet" href="/build/documentation.css" />
 </head>
 <body>
-	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/zh-cn/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">En</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass an [...]
-<p>Unit Test编写参考<a href="https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java">链接</a></p>
-<h3>1.写单元测试的收益</h3>
-<ul>
-<li>单元测试能帮助每个人深入代码细节,了解代码的功能。</li>
-<li>通过测试用例我们能发现bug,并提交代码的健壮性。</li>
-<li>测试用例同时也是代码的demo用法。</li>
-</ul>
-<h3>2.单元测试用例的一些设计原则</h3>
-<ul>
-<li>应该精心设计好步骤,颗粒度和组合条件。</li>
-<li>注意边界条件。</li>
-<li>单元测试也应该好好设计,不要写无用的代码。</li>
-<li>当你发现一个<code>方法</code>很难写单元测试时,如果可以确认这个<code>方法</code>是<code>臭代码</code>,那么就和开发者一起重构它。</li>
-<li>DolphinScheduler: <a href="http://site.mockito.org/">mockito</a>. 下面是一些开发向导:<a href="http://www.baeldung.com/bdd-mockito">mockito tutorial</a>,<a href="https://dzone.com/refcardz/mockito">mockito refcard</a></li>
-<li>TDD(可选):当你开始写一个新的功能时,你可以试着先写测试用例。</li>
-</ul>
-<h3>3.测试覆盖率设定值</h3>
-<ul>
-<li>在现阶段,Delta更改代码的测试覆盖设定值为:&gt;=60%,越高越好。</li>
-<li>我们可以在这个页面中看到测试报告: <a href="https://codecov.io/gh/apache/dolphinscheduler">https://codecov.io/gh/apache/dolphinscheduler</a></li>
-</ul>
-</div></section><footer class="footer-container"><div class="footer-body"><img src="/img/ds_gray.svg"/><div class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache DolphinScheduler (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. 
+	<div id="root"><div class="documentation-page" data-reactroot=""><header class="header-container header-container-normal"><div class="header-body"><a href="/zh-cn/index.html"><img class="logo" src="/img/hlogo_colorful.svg"/></a><div class="search search-normal"><span class="icon-search"></span></div><span class="language-switch language-switch-normal">En</span><div class="header-menu"><img class="header-menu-toggle" src="/img/system/menu_gray.png"/><div><ul class="ant-menu blackClass an [...]
 Incubation is required of all newly accepted projects until a further review indicates 
 that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. 
 While incubation status is not necessarily a reflection of the completeness or stability of the code, 
diff --git a/zh-cn/docs/development/submit-bug.json b/zh-cn/docs/development/submit-bug.json
new file mode 100644
index 0000000..f303569
--- /dev/null
+++ b/zh-cn/docs/development/submit-bug.json
@@ -0,0 +1,6 @@
+{
+  "filename": "submit-bug.md",
+  "__html": "",
+  "link": "/zh-cn/docs/development/submit-bug.html",
+  "meta": {}
+}
\ No newline at end of file
diff --git a/zh-cn/docs/development/contribute.html b/zh-cn/docs/development/unit-test.html
similarity index 98%
copy from zh-cn/docs/development/contribute.html
copy to zh-cn/docs/development/unit-test.html
index 44021e0..770d7e6 100644
--- a/zh-cn/docs/development/contribute.html
+++ b/zh-cn/docs/development/unit-test.html
@@ -4,10 +4,10 @@
 <head>
 	<meta charset="UTF-8">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-	<meta name="keywords" content="contribute" />
-	<meta name="description" content="contribute" />
+	<meta name="keywords" content="unit-test" />
+	<meta name="description" content="unit-test" />
 	<!-- 网页标签标题 -->
-	<title>contribute</title>
+	<title>unit-test</title>
 	<link rel="shortcut icon" href="/img/docsite.ico"/>
 	<link rel="stylesheet" href="/build/documentation.css" />
 </head>
diff --git a/zh-cn/docs/development/contribute.json b/zh-cn/docs/development/unit-test.json
similarity index 95%
copy from zh-cn/docs/development/contribute.json
copy to zh-cn/docs/development/unit-test.json
index c52be85..d0dc567 100644
--- a/zh-cn/docs/development/contribute.json
+++ b/zh-cn/docs/development/unit-test.json
@@ -1,6 +1,6 @@
 {
-  "filename": "contribute.md",
+  "filename": "unit-test.md",
   "__html": "<h2>Unit Test覆盖率</h2>\n<p>Unit Test编写参考<a href=\"https://github.com/apache/incubator-dolphinscheduler/blob/dev/escheduler-common/src/test/java/cn/escheduler/common/utils/CollectionUtilsTest.java\">链接</a></p>\n<h3>1.写单元测试的收益</h3>\n<ul>\n<li>单元测试能帮助每个人深入代码细节,了解代码的功能。</li>\n<li>通过测试用例我们能发现bug,并提交代码的健壮性。</li>\n<li>测试用例同时也是代码的demo用法。</li>\n</ul>\n<h3>2.单元测试用例的一些设计原则</h3>\n<ul>\n<li>应该精心设计好步骤,颗粒度和组合条件。</li>\n<li>注意边界条件。</li>\n<li>单元测试也应该好好设计,不要写无用的代码。</li>\n<li>当你发现一个<code>方法</cod [...]
-  "link": "/zh-cn/docs/development/contribute.html",
+  "link": "/zh-cn/docs/development/unit-test.html",
   "meta": {}
 }
\ No newline at end of file