You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by gi...@apache.org on 2021/02/01 10:05:07 UTC

[incubator-dolphinscheduler-website] branch asf-site updated: Automated deployment: ecd40354c846551feaea07eba77de61dc9ebb524

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 7ef6483  Automated deployment: ecd40354c846551feaea07eba77de61dc9ebb524
7ef6483 is described below

commit 7ef64830c26d591f802f746515a516579d2bc2ed
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Mon Feb 1 10:04:57 2021 +0000

    Automated deployment: ecd40354c846551feaea07eba77de61dc9ebb524
---
 zh-cn/community/release.html | 303 +++++++++++++++++++++++--------------------
 zh-cn/community/release.json |   2 +-
 2 files changed, 162 insertions(+), 143 deletions(-)

diff --git a/zh-cn/community/release.html b/zh-cn/community/release.html
index 2bf0b0a..8f6987e 100644
--- a/zh-cn/community/release.html
+++ b/zh-cn/community/release.html
@@ -10,24 +10,23 @@
   <link rel="stylesheet" href="/build/community.md.css" />
 </head>
 <body>
-  <div id="root"><div class="md2html community-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 blackCla [...]
-<h3>Install GPG</h3>
-<p>Download installation package on <a href="https://www.gnupg.org/download/index.html">official GnuPG website</a>.
-The command of GnuPG 1.x version can differ a little from that of 2.x version.
-The following instructions take <code>GnuPG-2.1.23</code> version for example.</p>
-<p>After the installation, execute the following command to check the version number.</p>
+  <div id="root"><div class="md2html community-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 blackCla [...]
+<h3>安装GPG</h3>
+<p>在<a href="https://www.gnupg.org/download/index.html">GnuPG官网</a>下载安装包。
+GnuPG的1.x版本和2.x版本的命令有细微差别,下列说明以<code>GnuPG-2.1.23</code>版本为例。</p>
+<p>安装完成后,执行以下命令查看版本号。</p>
 <pre><code class="language-shell">gpg --version
 </code></pre>
-<h3>Create Key</h3>
-<p>After the installation, execute the following command to create key.</p>
-<p>This command indicates <code>GnuPG-2.x</code> can be used:</p>
+<h3>创建key</h3>
+<p>安装完成后,执行以下命令创建key。</p>
+<p><code>GnuPG-2.x</code>可使用:</p>
 <pre><code class="language-shell">gpg --full-gen-key
 </code></pre>
-<p>This command indicates <code>GnuPG-1.x</code> can be used:</p>
+<p><code>GnuPG-1.x</code>可使用:</p>
 <pre><code class="language-shell">gpg --gen-key
 </code></pre>
-<p>Finish the key creation according to instructions:</p>
-<p><strong>Notice: Please use Apache mail for key creation.</strong></p>
+<p>根据提示完成key:</p>
+<p><strong>注意:请使用Apache mail生成GPG的Key。</strong></p>
 <pre><code class="language-shell">gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
@@ -53,131 +52,147 @@ Is this correct? (y/N) y
 
 GnuPG needs to construct a user ID to identify your key.
 
-Real name: ${Input username}
-Email address: ${Input email}
-Comment: ${Input comment}
+Real name: ${输入用户名}
+Email address: ${输入邮件地址}
+Comment: ${输入注释}
 You selected this USER-ID:
-   &quot;${Inputed username} (${Inputed comment}) &lt;${Inputed email}&gt;&quot;
+   &quot;${输入的用户名} (${输入的注释}) &lt;${输入的邮件地址}&gt;&quot;
 
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
-You need a Passphrase to protect your secret key. # Input passwords
+You need a Passphrase to protect your secret key. # 输入apache登录密码
 </code></pre>
-<h3>Check Generated Key</h3>
+<p>注意:如果遇到以下错误:</p>
+<pre><code>gpg: cancelled by user
+gpg: Key generation canceled.
+</code></pre>
+<p>需要使用自己的用户登录服务器,而不是root切到自己的账户</p>
+<h3>查看生成的key</h3>
 <pre><code class="language-shell">gpg --list-keys
 </code></pre>
-<p>Execution Result:</p>
+<p>执行结果:</p>
 <pre><code class="language-shell">pub   4096R/85E11560 2019-11-15
-uid                  ${Username} (${Comment}) &lt;{Email}&gt;
+uid                  ${用户名} (${注释}) &lt;{邮件地址}&gt;
 sub   4096R/A63BC462 2019-11-15
 </code></pre>
-<p>Among them, 85E11560 is public key ID.</p>
-<h3>Upload the Public Key to Key Server</h3>
-<p>The command is as follow:</p>
+<p>其中85E11560为公钥ID。</p>
+<h3>将公钥同步到服务器</h3>
+<p>命令如下:</p>
 <pre><code class="language-shell">gpg --keyserver hkp://pool.sks-keyservers.net --send-key 85E11560
 </code></pre>
-<p><code>pool.sks-keyservers.net</code> is randomly chosen from <a href="https://sks-keyservers.net/status/">public key server</a>.
-Each server will automatically synchronize with one another, so it would be okay to choose any one.</p>
-<h2>Apache Maven Central Repository Release</h2>
-<h3>Set settings.xml</h3>
-<p>Add the following template to <code>~/.m2/settings.xml</code>, all the passwords need to be filled in after encryption.
-For encryption settings, please see <a href="http://maven.apache.org/guides/mini/guide-encryption.html">here</a>.</p>
+<p><code>pool.sks-keyservers.net</code>为随意挑选的<a href="https://sks-keyservers.net/status/">公钥服务器</a>,每个服务器之间是自动同步的,选任意一个即可。</p>
+<p>注意:如果同步到公钥服务器,可以在服务器上查到新建的公钥
+<a href="http://keyserver.ubuntu.com:11371/pks/lookup?search=$%7B%E7%94%A8%E6%88%B7%E5%90%8D%7D&amp;fingerprint=on&amp;op=index">http://keyserver.ubuntu.com:11371/pks/lookup?search=${用户名}&amp;fingerprint=on&amp;op=index</a>
+备用公钥服务器 gpg --keyserver hkp://keyserver.ubuntu.com --send-key ${公钥ID}</p>
+<h2>发布Apache Maven中央仓库</h2>
+<h3>设置settings.xml文件</h3>
+<p>将以下模板添加到 <code>~/.m2/settings.xml</code>中,所有密码需要加密后再填入。
+加密设置可参考<a href="http://maven.apache.org/guides/mini/guide-encryption.html">这里</a>。</p>
 <pre><code class="language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">settings</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">servers</span>&gt;</span>
     <span class="hljs-tag">&lt;<span class="hljs-name">server</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">id</span>&gt;</span>apache.snapshots.https<span class="hljs-tag">&lt;/<span class="hljs-name">id</span>&gt;</span>
-      <span class="hljs-tag">&lt;<span class="hljs-name">username</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP username --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">username</span>&gt;</span>
-      <span class="hljs-tag">&lt;<span class="hljs-name">password</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP encrypted password --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">password</span>&gt;</span>
+      <span class="hljs-tag">&lt;<span class="hljs-name">username</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP 用户名 --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">username</span>&gt;</span>
+      <span class="hljs-tag">&lt;<span class="hljs-name">password</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP 加密后的密码 --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">password</span>&gt;</span>
     <span class="hljs-tag">&lt;/<span class="hljs-name">server</span>&gt;</span>
     <span class="hljs-tag">&lt;<span class="hljs-name">server</span>&gt;</span>
       <span class="hljs-tag">&lt;<span class="hljs-name">id</span>&gt;</span>apache.releases.https<span class="hljs-tag">&lt;/<span class="hljs-name">id</span>&gt;</span>
-      <span class="hljs-tag">&lt;<span class="hljs-name">username</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP username --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">username</span>&gt;</span>
-      <span class="hljs-tag">&lt;<span class="hljs-name">password</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP encrypted password --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">password</span>&gt;</span>
+      <span class="hljs-tag">&lt;<span class="hljs-name">username</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP 用户名 --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">username</span>&gt;</span>
+      <span class="hljs-tag">&lt;<span class="hljs-name">password</span>&gt;</span> <span class="hljs-comment">&lt;!-- APACHE LDAP 加密后的密码 --&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">password</span>&gt;</span>
     <span class="hljs-tag">&lt;/<span class="hljs-name">server</span>&gt;</span>
   <span class="hljs-tag">&lt;/<span class="hljs-name">servers</span>&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">settings</span>&gt;</span>
 </code></pre>
-<h3>Update Release Notes</h3>
+<h3>更新版本说明</h3>
 <pre><code>https://github.com/apache/incubator-dolphinscheduler/blob/dev/RELEASE-NOTES.md
 </code></pre>
-<h3>Create Release Branch</h3>
-<p>Suppose DolphinScheduler source codes downloaded from github is under <code>~/incubator-dolphinscheduler/</code> directory and the version to be released is <code>${RELEASE.VERSION}</code>.
-Create <code>${RELEASE.VERSION}-release</code> branch, where all the following operations are performed.</p>
+<h3>创建发布分支</h3>
+<p>从github下载的DolphinScheduler源代码到<code>~/incubator-dolphinscheduler/</code>目录,假设即将发布的版本为<code>${RELEASE.VERSION}</code>
+git clone -b ${RELEASE.VERSION}-release <a href="https://github.com/apache/incubator-dolphinscheduler.git">https://github.com/apache/incubator-dolphinscheduler.git</a></p>
+<p>创建<code>${RELEASE.VERSION}-release</code>分支,接下来的操作都在该分支进行(如果在github官网上手动执行发版分支创建,下面操作可以忽略)。</p>
 <pre><code class="language-shell">cd ~/incubator-dolphinscheduler/
 git pull
 git checkout -b ${RELEASE.VERSION}-release
 git push origin ${RELEASE.VERSION}-release
 </code></pre>
-<h3>Pre-Release Check</h3>
-<pre><code class="language-shell">mvn release:prepare -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -DdryRun=true -Dusername=${Github username}
+<h3>发布预校验</h3>
+<pre><code class="language-shell">mvn release:prepare -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -DdryRun=true -Dusername=${Github用户名}
 </code></pre>
-<p>-Prelease: choose release profile, which will pack all the source codes, jar files and executable binary packages.</p>
-<p>-DautoVersionSubmodules=true:it can make the version number is inputted only once and not for each sub-module.</p>
-<p>-DdryRun=true:rehearsal, which means not to generate or submit new version number and new tag.</p>
-<h3>Prepare for the Release</h3>
-<p>First, clean local pre-release check information.</p>
+<p>-Prelease: 选择release的profile,这个profile会打包所有源码、jar文件以及可执行二进制包。</p>
+<p>-DautoVersionSubmodules=true:作用是发布过程中版本号只需要输入一次,不必为每个子模块都输入一次。</p>
+<p>-DdryRun=true:演练,即不产生版本号提交,不生成新的tag。</p>
+<h3>准备发布</h3>
+<p>首先清理发布预校验本地信息。</p>
 <pre><code class="language-shell">mvn release:clean
 </code></pre>
-<p>Then, prepare to execute the release.</p>
-<pre><code class="language-shell">mvn release:prepare -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -DpushChanges=false -Dusername=${Github username}
+<p>然后准备执行发布。</p>
+<pre><code class="language-shell">mvn release:prepare -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -DpushChanges=false -Dusername=${Github用户名}
+</code></pre>
+<p>和上一步演练的命令基本相同,去掉了-DdryRun=true参数。</p>
+<p>-DpushChanges=false:不要将修改后的版本号和tag自动提交至Github。
+如果遇到以下错误,请配置git邮箱为自己的apache邮箱和apache账号名</p>
+<pre><code class="language-shell">[ERROR] *** Please tell me who you are.
+[ERROR]
+[ERROR] Run
+[ERROR]
+[ERROR]   git config --global user.email &quot;you@example.com&quot;
+[ERROR]   git config --global user.name &quot;Your Name&quot;
 </code></pre>
-<p>It is basically the same as the previous rehearsal command, but deleting -DdryRun=true parameter.</p>
-<p>-DpushChanges=false:do not submit the edited version number and tag to Github automatically.</p>
-<p>After making sure there is no mistake in local files, submit them to GitHub.</p>
+<p>将本地文件检查无误后,提交至github。</p>
 <pre><code class="language-shell">git push
 git push origin --tags
 </code></pre>
-<h3>Deploy the Release</h3>
-<pre><code class="language-shell">mvn release:perform -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -Dusername=${Github username}
+<h3>部署发布</h3>
+<pre><code class="language-shell">mvn release:perform -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -Dusername=${Github用户名}
 </code></pre>
-<p>After that command is executed, the version to be released will be uploaded to Apache staging repository automatically.
-Visit <a href="https://repository.apache.org/#stagingRepositories">https://repository.apache.org/#stagingRepositories</a> and use Apache LDAP account to log in; then you can see the uploaded version, the content of <code>Repository</code> column is the ${STAGING.REPOSITORY}.
-Click <code>Close</code> to tell Nexus that the construction is finished, because only in this way, this version can be usable.
-If there is any problem in gpg signature, <code>Close</code> will fail, but you can see the failure information through <code>Activity</code>.</p>
-<h2>Apache SVN Repository Release</h2>
-<h3>Checkout dolphinscheduler Release Directory</h3>
-<p>If there is no local work directory, create one at first.</p>
+<p>执行完该命令后,待发布版本会自动上传到Apache的临时筹备仓库(staging repository)。
+访问https://repository.apache.org/#stagingRepositories, 使用Apache的LDAP账户登录后,就会看到上传的版本,<code>Repository</code>列的内容即为${STAGING.REPOSITORY}。
+点击<code>Close</code>来告诉Nexus这个构建已经完成,只有这样该版本才是可用的。
+如果电子签名等出现问题,<code>Close</code>会失败,可以通过<code>Activity</code>查看失败信息。</p>
+<h2>发布Apache SVN仓库</h2>
+<h3>检出dolphinscheduler发布目录</h3>
+<p>如无本地工作目录,则先创建本地工作目录。</p>
 <pre><code class="language-shell">mkdir -p ~/ds_svn/dev/
 cd ~/ds_svn/dev/
 </code></pre>
-<p>After the creation, checkout dolphinscheduler release directory from Apache SVN.</p>
-<pre><code class="language-shell">svn --username=${APACHE LDAP username} co https://dist.apache.org/repos/dist/dev/incubator/dolphinscheduler
+<p>创建完毕后,从Apache SVN检出dolphinscheduler发布目录。</p>
+<pre><code class="language-shell">svn --username=${APACHE LDAP 用户名} co https://dist.apache.org/repos/dist/dev/incubator/dolphinscheduler
 cd ~/ds_svn/dev/dolphinscheduler
 </code></pre>
-<h3>Add gpg Public Key</h3>
-<p>Only the account in its first deployment needs to add that.
-It is alright for <code>KEYS</code> to only include the public key of the deployed account.</p>
-<pre><code class="language-shell">gpg -a --export ${GPG username} &gt;&gt; KEYS
+<h3>添加gpg公钥</h3>
+<p>仅第一次部署的账号需要添加,只要<code>KEYS</code>中包含已经部署过的账户的公钥即可。</p>
+<pre><code class="language-shell">gpg -a --export ${GPG用户名} &gt;&gt; KEYS
 </code></pre>
-<h3>Add the Release Content to SVN Directory</h3>
-<p>Create folder by version number.</p>
+<h3>将待发布的内容添加至SVN目录</h3>
+<p>创建版本号目录。</p>
 <pre><code class="language-shell">mkdir -p ~/ds_svn/dev/dolphinscheduler/${RELEASE.VERSION}
 cd ~/ds_svn/dev/dolphinscheduler/${RELEASE.VERSION}
 </code></pre>
-<p>Add source code packages, binary packages and executable binary packages to SVN working directory.</p>
+<p>将源码包和二进制包添加至SVN工作目录。</p>
 <pre><code class="language-shell">cp -f ~/incubator-dolphinscheduler/dolphinscheduler-dist/target/*.zip ~/ds_svn/dev/dolphinscheduler/${RELEASE.VERSION}
 cp -f ~/incubator-dolphinscheduler/dolphinscheduler-dist/target/*.zip.asc ~/ds_svn/dev/dolphinscheduler/${RELEASE.VERSION}
 cp -f ~/incubator-dolphinscheduler/dolphinscheduler-dist/target/*.tar.gz ~/ds_svn/dev/dolphinscheduler/${RELEASE.VERSION}
 cp -f ~/incubator-dolphinscheduler/dolphinscheduler-dist/target/*.tar.gz.asc ~/ds_svn/dev/dolphinscheduler/${RELEASE.VERSION}
+
 </code></pre>
-<h3>Generate sign files</h3>
+<h3>生成文件签名</h3>
 <pre><code class="language-shell">shasum -a 512 apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip &gt;&gt; apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip.sha512
 shasum -b -a 512 apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-bin.tar.gz &gt;&gt; apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-bin.tar.gz.sha512
 </code></pre>
-<h3>Commit to Apache SVN</h3>
-<pre><code class="language-shell">svn add *
-svn --username=${APACHE LDAP username} commit -m &quot;release ${RELEASE.VERSION}&quot;
+<h3>提交Apache SVN</h3>
+<pre><code class="language-shell">cd ~/ds_svn/dev/dolphinscheduler
+svn add *
+svn --username=${APACHE LDAP 用户名} commit -m &quot;release ${RELEASE.VERSION}&quot;
 </code></pre>
-<h2>Check Release</h2>
-<h3>Check sha512 hash</h3>
+<h2>检查发布结果</h2>
+<h3>检查sha512哈希</h3>
 <pre><code class="language-shell">shasum -c apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip.sha512
 shasum -c apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-bin.tar.gz.sha512
 </code></pre>
-<h3>Check gpg Signature</h3>
-<p>First, import releaser's public key.
-Import KEYS from SVN repository to local. (The releaser does not need to import again; the checking assistant needs to import it, with the user name filled as the releaser's. )</p>
+<h3>检查gpg签名</h3>
+<p>首先导入发布人公钥。从svn仓库导入KEYS到本地环境。(发布版本的人不需要再导入,帮助做验证的人需要导入,用户名填发版人的即可)</p>
 <pre><code class="language-shell">curl https://dist.apache.org/repos/dist/dev/incubator/dolphinscheduler/KEYS &gt;&gt; KEYS
 gpg --import KEYS
-gpg --edit-key &quot;${GPG username of releaser}&quot;
+gpg --edit-key &quot;${发布人的gpg用户名}&quot;
 <span class="hljs-meta">  &gt;</span><span class="bash"> trust</span>
 
 Please decide how far you trust this user to correctly verify other users&#x27; keys
@@ -194,68 +209,65 @@ Your decision? 5
 <span class="hljs-meta">
   &gt;</span><span class="bash"> save</span>
 </code></pre>
-<p>Then, check the gpg signature.</p>
+<p>然后进行gpg签名检查。</p>
 <pre><code class="language-shell">gpg --verify apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip.asc apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip
 gpg --verify apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-bin.tar.gz.asc apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-bin.tar.gz
 </code></pre>
-<h3>Check Released Files</h3>
-<h4>Check source package</h4>
-<p>Decompress <code>apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip</code> and check the following items:</p>
+<h3>检查发布文件内容</h3>
+<h4>检查源码包的文件内容</h4>
+<p>解压缩<code>apache-dolphinscheduler-incubating-${RELEASE.VERSION}-src.zip</code>,进行如下检查:</p>
 <ul>
-<li>Check whether source tarball is oversized for including nonessential files</li>
-<li>The release files have the word <code>incubating</code> in their name</li>
-<li><code>DISCLAIMER</code> file exists</li>
-<li><code>LICENSE</code> and <code>NOTICE</code> files exist</li>
-<li>Correct year in <code>NOTICE</code> file</li>
-<li>There is only text files but no binary files</li>
-<li>All source files have ASF headers</li>
-<li>Codes can be compiled and pass the unit tests (mvn install)</li>
-<li>The contents of the release match with what's tagged in version control (diff -r a verify_dir tag_dir)</li>
-<li>Check if there is any extra files or folders, empty folders for example</li>
+<li>检查源码包是否包含由于包含不必要文件,致使tarball过于庞大</li>
+<li>文件夹包含单词<code>incubating</code></li>
+<li>存在<code>DISCLAIMER</code>文件</li>
+<li>存在<code>LICENSE</code>和<code>NOTICE</code>文件</li>
+<li>只存在文本文件,不存在二进制文件</li>
+<li>所有文件的开头都有ASF许可证</li>
+<li>能够正确编译,单元测试可以通过 (mvn install)</li>
+<li>版本内容与Github上tag的内容相符 (diff -r a verify_dir tag_dir)</li>
+<li>检查是否有多余文件或文件夹,例如空文件夹等</li>
 </ul>
-<h4>Check binary packages</h4>
-<p>Decompress <code>apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-bin.tar.gz</code>
-to check the following items:</p>
+<h4>检查二进制包的文件内容</h4>
+<p>解压缩<code>apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-backend-bin.tar.gz</code>和<code>apache-dolphinscheduler-incubating-${RELEASE.VERSION}-dolphinscheduler-front-bin.tar.gz</code>
+进行如下检查:</p>
 <ul>
-<li>The release files have the word <code>incubating</code> in their name</li>
-<li><code>DISCLAIMER</code> file exists</li>
-<li><code>LICENSE</code> and <code>NOTICE</code> files exist</li>
-<li>Correct year in <code>NOTICE</code> file</li>
-<li>Check the third party dependency license:
+<li>文件夹包含单词<code>incubating</code></li>
+<li>存在<code>DISCLAIMER</code>文件</li>
+<li>存在<code>LICENSE</code>和<code>NOTICE</code>文件</li>
+<li>所有文本文件开头都有ASF许可证</li>
+<li>检查第三方依赖许可证:
 <ul>
-<li>The software have a compatible license</li>
-<li>All software licenses mentioned in <code>LICENSE</code></li>
-<li>All the third party dependency licenses are under <code>licenses</code> folder</li>
-<li>If it depends on Apache license and has a <code>NOTICE</code> file, that <code>NOTICE</code> file need to be added to <code>NOTICE</code> file of the release</li>
+<li>第三方依赖的许可证兼容</li>
+<li>所有第三方依赖的许可证都在<code>LICENSE</code>文件中声明</li>
+<li>依赖许可证的完整版全部在<code>license</code>目录</li>
+<li>如果依赖的是Apache许可证并且存在<code>NOTICE</code>文件,那么这些<code>NOTICE</code>文件也需要加入到版本的<code>NOTICE</code>文件中</li>
 </ul>
 </li>
 </ul>
-<p>For the whole check list, please see <a href="https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist">here</a>。</p>
-<h2>Call for a Vote</h2>
-<h3>Vote procedure</h3>
+<p>全部的检查列表参见<a href="https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist">这里</a>。</p>
+<h2>发起投票</h2>
+<h3>投票阶段</h3>
 <ol>
 <li>
-<p>DolphinScheduler community vote: send the vote e-mail to <code>dev@dolphinscheduler.apache.org</code>.
-PPMC needs to check the rightness of the version according to the document before they vote.
-After at least 72 hours and with at least 3 <code>+1 PPMC member</code> votes, it can come to the next stage of the vote.</p>
+<p>DolphinScheduler社区投票,发起投票邮件到<code>dev@dolphinscheduler.apache.org</code>。PPMC需要先按照文档检查版本的正确性,然后再进行投票。
+经过至少72小时并统计到3个<code>+1 PPMC member</code>票后,即可进入下一阶段的投票。</p>
 </li>
 <li>
-<p>Apache community vote: send the vote e-mail to <code>general@incubator.apache.org</code>。
-After at least 72 hours and with at least 3 <code>+1 binding</code> votes (only IPMC's votes are binding), it can be officially released.</p>
+<p>Apache社区投票,发起投票邮件到<code>general@incubator.apache.org</code>。经过至少72小时并统计到3个<code>+1 binding</code>票后(只有IPMC的票才是binding),即可进行正式发布。</p>
 </li>
 <li>
-<p>Announce the vote result: send the result vote e-mail to <code>general@incubator.apache.org</code>。</p>
+<p>宣布投票结果,发起投票结果邮件到<code>general@incubator.apache.org</code>。</p>
 </li>
 </ol>
-<h3>Vote Templates</h3>
+<h3>投票模板</h3>
 <ol>
-<li>DolphinScheduler Community Vote Template</li>
+<li>DolphinScheduler社区投票模板</li>
 </ol>
-<p>NOTE: Must invite all mentors to vote during the community vote.</p>
-<p>Title:</p>
+<p>注意: 在社区投票过程中,需要邀请所有mentor参加投票。</p>
+<p>标题:</p>
 <pre><code>[VOTE] Release Apache DolphinScheduler (Incubating) ${RELEASE.VERSION}
 </code></pre>
-<p>Body:</p>
+<p>正文:</p>
 <pre><code>Hello DolphinScheduler Community,
 
 This is a call for vote to release Apache DolphinScheduler (Incubating) version ${RELEASE.VERSION}
@@ -309,9 +321,9 @@ More detail checklist  please refer:
 https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist
 </code></pre>
 <ol start="2">
-<li>Announce the vote result:</li>
+<li>宣布投票结果模板:</li>
 </ol>
-<p>Body:</p>
+<p>正文:</p>
 <pre><code>The vote to release Apache DolphinScheduler (Incubating) ${RELEASE.VERSION} has passed.Here is the vote result,
 
 7 PPMC member +1 votes:
@@ -330,12 +342,12 @@ xxx
 Thanks everyone for taking time to check this release and help us.
 </code></pre>
 <ol start="3">
-<li>Apache Community Vote Template:</li>
+<li>Apache社区投票邮件模板:</li>
 </ol>
-<p>Title:</p>
+<p>标题:</p>
 <pre><code>[VOTE] Release Apache DolphinScheduler (Incubating) ${RELEASE.VERSION}
 </code></pre>
-<p>Body:</p>
+<p>正文:</p>
 <pre><code>Hello everyone,
 
 This is a call for vote to release Apache DolphinScheduler (Incubating) version ${RELEASE.VERSION}.
@@ -345,8 +357,8 @@ Apache DolphinScheduler (Incubating) version ${RELEASE.VERSION}.
 
 We now kindly request the Incubator IPMC members review and vote on this incubator release.
 
-Dolphin Scheduler is a distributed and easy-to-extend visual workflow scheduler system,
-dedicated to solving the complex task dependencies in data processing, making the scheduler system out of the box for data processing.
+Dolphin Scheduler is a distributed and easy-to-expand visual DAG workflow scheduling system,
+dedicated to solving the complex dependencies in data processing, making the scheduling system out of the box for data processing.
 
 DolphinScheduler community vote and result threads:
 https://lists.apache.org/thread.html/xxxxxxxxxxxxxxxxxxxxxxx
@@ -409,12 +421,9 @@ The following votes are carried over from DolphinScheduler dev mailing list,
 +1 non-binding, xxx
 </code></pre>
 <ol start="4">
-<li>Announce the vote result:</li>
+<li>宣布投票结果模板:</li>
 </ol>
-<p><strong>Notice: Please include the votes from DolphinScheduler community above.</strong></p>
-<p>Title:</p>
-<pre><code>[RESULT][VOTE] Release Apache DolphinScheduler (Incubating) ${RELEASE.VERSION}
-</code></pre>
+<p><strong>注意:计算投票结果时,社区投票结果也需要包含在内。</strong></p>
 <p>正文:</p>
 <pre><code>We’ve received 3 +1 binding votes and one +1 non-binding vote:
 
@@ -427,30 +436,40 @@ The following votes are carried over from DolphinScheduler dev mailing list,
 Thank you everyone for taking the time to review the release and help us.
 I will process to publish the release and send ANNOUNCE.
 </code></pre>
-<h2>Finish the Release</h2>
-<h3>Move source packages, binary packages and KEYS from the <code>dev</code> directory to <code>release</code> directory</h3>
+<h2>完成发布</h2>
+<ol>
+<li>将源码和二进制包从svn的dev目录移动到release目录</li>
+</ol>
 <pre><code class="language-shell">svn mv https://dist.apache.org/repos/dist/dev/incubator/dolphinscheduler/${RELEASE.VERSION} https://dist.apache.org/repos/dist/release/incubator/dolphinscheduler/
 </code></pre>
-<h3>Find DolphinScheduler in staging repository and click <code>Release</code></h3>
-<p>###. Update the download page</p>
-<pre><code>https://dolphinscheduler.apache.org/en-us/download/download.html
-https://dolphinscheduler.apache.org/zh-cn/download/download.html
+<ol start="2">
+<li>
+<p>在Apache Staging仓库找到DolphinScheduler并点击<code>Release</code></p>
+</li>
+<li>
+<p>更新下载页面</p>
+</li>
+</ol>
+<pre><code>https://dolphinscheduler.apache.org/en-us/docs/user_doc/download.html
+https://dolphinscheduler.apache.org/zh-cn/docs/user_doc/download.html
 </code></pre>
-<h3>Send e-mail to <code>general@incubator.apache.org</code> and <code>dev@dolphinscheduler.apache.org</code> to announce the release is finished</h3>
-<p>Announcement e-mail template:</p>
-<p>Title:</p>
+<ol start="4">
+<li>发送邮件到<code>general@incubator.apache.org</code>和<code>dev@dolphinscheduler.apache.org</code>通知完成版本发布。</li>
+</ol>
+<p>通知邮件模板:</p>
+<p>标题:</p>
 <pre><code>[ANNOUNCE] Release Apache DolphinScheduler (Incubating) ${RELEASE.VERSION}
 </code></pre>
-<p>Body:</p>
+<p>正文:</p>
 <pre><code>Hi all,
 
 We are glad to announce the release of Apache DolphinScheduler(incubating) ${RELEASE.VERSION}. Once again I would like to express my thanks to your help.
 
-Dolphin Scheduler is a distributed and easy-to-extend visual workflow scheduler system,
-dedicated to solving the complex task dependencies in data processing, making the scheduler system out of the box for data processing.
+Dolphin Scheduler is a distributed and easy-to-expand visual DAG workflow scheduling system,
+dedicated to solving the complex dependencies in data processing, making the scheduling system out of the box for data processing.
 
 
-Download Links: https://dolphinscheduler.apache.org/en-us/download/download.html
+Download Links: http://dolphinscheduler.apache.org/en-us/docs/user_doc/download.html
 
 Release Notes: https://github.com/apache/incubator-dolphinscheduler/blob/${RELEASE.VERSION}/ReleaseNotes.md
 
diff --git a/zh-cn/community/release.json b/zh-cn/community/release.json
index 4720906..dca6b96 100644
--- a/zh-cn/community/release.json
+++ b/zh-cn/community/release.json
@@ -1,6 +1,6 @@
 {
   "filename": "release.md",
-  "__html": "<h2>GPG Settings</h2>\n<h3>Install GPG</h3>\n<p>Download installation package on <a href=\"https://www.gnupg.org/download/index.html\">official GnuPG website</a>.\nThe command of GnuPG 1.x version can differ a little from that of 2.x version.\nThe following instructions take <code>GnuPG-2.1.23</code> version for example.</p>\n<p>After the installation, execute the following command to check the version number.</p>\n<pre><code class=\"language-shell\">gpg --version\n</code></ [...]
+  "__html": "<h2>GPG设置</h2>\n<h3>安装GPG</h3>\n<p>在<a href=\"https://www.gnupg.org/download/index.html\">GnuPG官网</a>下载安装包。\nGnuPG的1.x版本和2.x版本的命令有细微差别,下列说明以<code>GnuPG-2.1.23</code>版本为例。</p>\n<p>安装完成后,执行以下命令查看版本号。</p>\n<pre><code class=\"language-shell\">gpg --version\n</code></pre>\n<h3>创建key</h3>\n<p>安装完成后,执行以下命令创建key。</p>\n<p><code>GnuPG-2.x</code>可使用:</p>\n<pre><code class=\"language-shell\">gpg --full-gen-key\n</code></pre>\n<p><code>GnuPG-1.x</code>可使用:</p>\n<pre><code class=\"languag [...]
   "link": "/dist/zh-cn/community/release.html",
   "meta": {}
 }
\ No newline at end of file