You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by gi...@apache.org on 2021/07/20 06:32:38 UTC

[incubator-shenyu-website] branch asf-site updated: deploy: 6d92814b6a499c74795f5be2cb1f6a552b3ac3a4

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-shenyu-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 678f91e  deploy: 6d92814b6a499c74795f5be2cb1f6a552b3ac3a4
678f91e is described below

commit 678f91ea82ec84b97175c2d9173f1392a78bb77a
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Tue Jul 20 06:31:53 2021 +0000

    deploy: 6d92814b6a499c74795f5be2cb1f6a552b3ac3a4
---
 algolia.json                    |   2 +-
 community/index.xml             |   2 +-
 community/release/index.html    | 270 ++++++++++++++++++++++++++++++++++++++++
 en/sitemap.xml                  |   2 +-
 index.xml                       |   2 +-
 sitemap.xml                     |   2 +-
 zh/algolia.json                 |   2 +-
 zh/community/release/index.html |  17 +--
 zh/sitemap.xml                  |   2 +-
 9 files changed, 286 insertions(+), 15 deletions(-)

diff --git a/algolia.json b/algolia.json
index 78bc653..b6d53bf 100644
--- a/algolia.json
+++ b/algolia.json
@@ -1 +1 @@
-[{"author":"xiaoyu","categories":"Apache ShenYu","content":" Apache ICLA 签署流程指南 Apache CLA 全称 Apache Contributor License Agreement,签署ICLA的目的是定义向ASF贡献的文档,保护知识产权,避免后续法律纠纷。ICLA在官方存档后生效,贡献者方可参与Apache项目。\n当我们需要签署ICLA时步骤如下:\n1. 打开链接 官网Licenses 在Contributor License Agreements 下找到CLAs并进入页面。\n2. 在页面上方我们可以看到两个下载链接,选择ICLA(个人CLA)并下载文件。\n3. 打开PDF,ICLA需要填写的是两个部分,均需要全英文填写。\n 注意事项:\n 姓名需要填写拼音,姓与名之间空一格,首字母均为大写,名在前姓氏在后。 Committer相关的签署,则preferred Apache id(s)是必填项。   4.文件最下方的署名。 官网支持手写或者PDF签名软件\n5.签署完之后将icl [...]
\ No newline at end of file
+[{"author":"xiaoyu","categories":"Apache ShenYu","content":" Apache ICLA 签署流程指南 Apache CLA 全称 Apache Contributor License Agreement,签署ICLA的目的是定义向ASF贡献的文档,保护知识产权,避免后续法律纠纷。ICLA在官方存档后生效,贡献者方可参与Apache项目。\n当我们需要签署ICLA时步骤如下:\n1. 打开链接 官网Licenses 在Contributor License Agreements 下找到CLAs并进入页面。\n2. 在页面上方我们可以看到两个下载链接,选择ICLA(个人CLA)并下载文件。\n3. 打开PDF,ICLA需要填写的是两个部分,均需要全英文填写。\n 注意事项:\n 姓名需要填写拼音,姓与名之间空一格,首字母均为大写,名在前姓氏在后。 Committer相关的签署,则preferred Apache id(s)是必填项。   4.文件最下方的署名。 官网支持手写或者PDF签名软件\n5.签署完之后将icl [...]
\ No newline at end of file
diff --git a/community/index.xml b/community/index.xml
index 0824e52..ee23015 100644
--- a/community/index.xml
+++ b/community/index.xml
@@ -8,4 +8,4 @@ Commit Messages Format is : &amp;lt;type&amp;gt; (&amp;lt;module&amp;gt;) : &amp
 1.Send e-mail to subscribe. Use your mailbox to send an e-mail to dev-subscribe@shenyu.apache.org with any subject or content.
 2.Receive and reply the confirmation e-mail. After Step 1, you will receive a confirmation e-mail from dev-help@shenyu.apache.org (if you have not received that, please check “RSS feeds”, “junk e-mail” or other items).</description></item><item><title>Apache ShenYu Two FA (By Apache ShenYu Committers)</title><link>/community/2fa/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/community/2fa/</guid><description>Two-Factor Authentication(2FA) Two factor authentication (2FA)  [...]
 More details, please refer to 2FA.
-To be noticed: If you do not enable 2FA, you will be removed from the project and unable to access our repositories and the fork from our private repository.</description></item><item><title>How to vote Apache ShenYu Committer</title><link>/community/vote-committer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/community/vote-committer/</guid><description>1. Start the discussion and vote in private@shenyu.apache.org, Only current PPMC member could nominate. Example: To:p [...]
\ No newline at end of file
+To be noticed: If you do not enable 2FA, you will be removed from the project and unable to access our repositories and the fork from our private repository.</description></item><item><title>How to vote Apache ShenYu Committer</title><link>/community/vote-committer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/community/vote-committer/</guid><description>1. Start the discussion and vote in private@shenyu.apache.org, Only current PPMC member could nominate. Example: To:p [...]
\ No newline at end of file
diff --git a/community/release/index.html b/community/release/index.html
new file mode 100644
index 0000000..d3584a0
--- /dev/null
+++ b/community/release/index.html
@@ -0,0 +1,270 @@
+<!doctype html><html><head><title>ShenYu Release Guide · ShenYu</title><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,minimum-scale=1"><meta name=description content="The girl on the prairie"><meta name=generator content="Hugo 0.55.5"><link rel="shortcut icon" href=/img/favicon.png type=image/png><link href=https://unpkg.com/purecss@1.0.0/build/base-min.css rel=stylesheet><link href=/css/main.css rel=stylesh [...]
+<a href=/projects/shenyu/overview/><span>Documentation</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
+<a href=/community/code-conduct/><span>Community</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
+<a href=/news/><span>News</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
+<a href=/awesome/><span>Awesome</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
+<a href=/zh/community/release/><span>中文</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-transfer"/></svg></a></nav></div></div><div class="navbar-menu -hidden-mobile"><div class=navbar-start><a class=navbar-item href=/projects/shenyu/download/>Download</a>
+<a class=navbar-item href=/projects/shenyu/overview/>Documentation</a>
+<a class=navbar-item href=/community/code-conduct/>Community</a>
+<a class=navbar-item href=/news/>News</a>
+<a class=navbar-item href=/awesome/>Awesome</a>
+<span class="navbar-item nav-hover"><a>Links</a><div class=dropdown-menu><a class=dropdown-item href=https://www.apache.org/>Apache Software Foundation</a>
+<a class=dropdown-item href=https://github.com/apache/incubator-shenyu/issues>GitHub Issue Tracker</a>
+<a class=dropdown-item href=https://www.apache.org/>License</a>
+<a class=dropdown-item href=http://www.apache.org/events/current-event>Apache Events</a>
+<a class=dropdown-item href=https://www.apache.org/licenses/>Security</a>
+<a class=dropdown-item href=http://www.apache.org/foundation/sponsorship.html>Sponsor and Donate</a>
+<a class=dropdown-item href=http://www.apache.org/foundation/thanks.html>Thanks</a></div></span></div><div class=navbar-end><div class=navbar-item><div id=js-menu-search class=navbar-search><input class=input placeholder=Search><svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"/></svg></div></div><div class=navbar-item><a class=translation href=/zh/community/release/>中</a></div></div></div></nav></header><div class=ss-layout-container><aside class="ss-layout-aside -left  [...]
+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.
+After the installation, execute the following command to check the version number.</p><pre><code class=language-shell>gpg --version
+</code></pre><p><strong>2. Create Key</strong></p><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><pre><code class=language-shell>gpg --full-gen-key
+</code></pre><p>This command indicates <code>GnuPG-1.x</code> can be used:</p><pre><code class=language-shell>gpg --gen-key
+</code></pre><p>Finish the key creation according to instructions:</p><blockquote><p>To be noticed: Please use Apache mail for key creation.</p></blockquote><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.
+
+Please select what kind of key you want:
+  (1) RSA and RSA (default)
+  (2) DSA and Elgamal
+  (3) DSA (sign only)
+  (4) RSA (sign only)
+Your selection? 1
+RSA keys may be between 1024 and 4096 bits long.
+What keysize do you want? (2048) 4096
+Requested keysize is 4096 bits
+Please specify how long the key should be valid.
+        0 = key does not expire
+     &lt;n&gt;  = key expires in n days
+     &lt;n&gt;w = key expires in n weeks
+     &lt;n&gt;m = key expires in n months
+     &lt;n&gt;y = key expires in n years
+Key is valid for? (0) 
+Key does not expire at all
+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}
+You selected this USER-ID:
+   &quot;${Inputed username} (${Inputed comment}) &lt;${Inputed email}&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
+</code></pre><p><strong>3. Check Generated Key</strong></p><pre><code class=language-shell>gpg --list-keys
+</code></pre><p>Execution Result:</p><pre><code class=language-shell>pub   4096R/700E6065 2019-03-20
+uid                  ${Username} (${Comment}) &lt;{Email}&gt;
+sub   4096R/0B7EF5B2 2019-03-20
+</code></pre><p>700E6065 is public key ID.</p><p><strong>4. Upload the Public Key to Key Server</strong></p><p>The command is as follows:</p><pre><code class=language-shell>gpg --keyserver hkp://pool.sks-keyservers.net --send-key 700E6065
+</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 id=apache-maven-central-repository-release>Apache Maven Central Repository Release</h2><p><strong>1. Set settings.xml</strong></p><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><pre><code class=language-xml>&lt;settings&gt;
+    &lt;servers&gt;
+      &lt;server&gt;
+          &lt;id&gt;apache.snapshots.https&lt;/id&gt;
+          &lt;username&gt; &lt;!-- APACHE LDAP username --&gt; &lt;/username&gt;
+          &lt;password&gt; &lt;!-- APACHE LDAP encrypted password --&gt; &lt;/password&gt;
+      &lt;/server&gt;
+      &lt;server&gt;
+          &lt;id&gt;apache.releases.https&lt;/id&gt;
+          &lt;username&gt; &lt;!-- APACHE LDAP username --&gt; &lt;/username&gt;
+          &lt;password&gt; &lt;!-- APACHE LDAP encrypted password --&gt; &lt;/password&gt;
+      &lt;/server&gt;
+    &lt;/servers&gt;
+&lt;/settings&gt;
+</code></pre><p><strong>2. Update Release Notes</strong></p><p>Update the following file in master branch, and submit a PR to master branch:</p><pre><code>https://github.com/apache/incubator-shenyu/blob/master/RELEASE-NOTES.md
+</code></pre><p><strong>3. Create Release Branch</strong></p><p>Suppose ShenYu source codes downloaded from github is under <code>~/shenyu/</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><pre><code class=language-shell>## ${name} is the properly branch, e.g. master, main
+git clone --branch ${name} https://github.com/apache/incubator-shenyu.git ~/shenyu
+cd ~/shenyu/
+git pull
+git checkout -b ${RELEASE.VERSION}-release
+git push origin ${RELEASE.VERSION}-release
+</code></pre><p><strong>4. Pre-Release Check</strong></p><pre><code class=language-shell>mvn release:prepare -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -DdryRun=true -Dusername=${Github username}
+</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><p><strong>5. Prepare for the Release</strong></p><p>First, clean local pre-release check information.</p><pre><code class=language-shell> [...]
+</code></pre><pre><code class=language-shell>mvn release:prepare -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -DpushChanges=false -Dusername=${Github username}
+</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><pre><code class=language-shell>git push origin ${RELEASE.VERSION}-release
+git push origin --tags
+</code></pre><p><strong>6. Deploy the Release</strong></p><pre><code class=language-shell>mvn release:perform -Prelease -Darguments=&quot;-DskipTests&quot; -DautoVersionSubmodules=true -Dusername=${Github username}
+</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 id=apache-svn-repository-release>Apache SVN Repository Release</h2><p><strong>1. Checkout ShenYu Release Directory</strong></p><p>If there is no local work directory, create one at first.</p><pre><code class=language-shell>mkdir -p ~/shenyu_svn/dev/
+cd ~/shenyu_svn/dev/
+</code></pre><p>After the creation, checkout ShenYu release directory from Apache SVN.</p><pre><code class=language-shell>svn --username=${APACHE LDAP 用户名} co https://dist.apache.org/repos/dist/dev/incubator/shenyu
+cd ~/shenyu_svn/dev/shenyu
+</code></pre><p><strong>2. Add gpg Public Key</strong></p><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
+</code></pre><p><strong>3. Add the Release Content to SVN Directory</strong></p><p>Create folder by version number.</p><pre><code class=language-shell>mkdir -p ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+cd ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+</code></pre><p>Add source code packages, binary packages and executable binary packages to SVN working directory.</p><pre><code class=language-shell>cp -f ~/incubator-shenyu/shenyu-dist/shenyu-src-dist/target/*.zip ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+cp -f ~/incubator-shenyu/shenyu-dist/shenyu-src-dist/target/*.zip.asc ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+cp -f ~/incubator-shenyu/shenyu-dist/shenyu-bootstrap-dist/target/*.tar.gz ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+cp -f ~/incubator-shenyu/shenyu-dist/shenyu-bootstrap-dist/target/*.tar.gz.asc ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+cp -f ~/incubator-shenyu/shenyu-dist/shenyu-admin-dist/target/*.tar.gz ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+cp -f ~/incubator-shenyu/shenyu-dist/shenyu-admin-dist/target/*.tar.gz.asc ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
+</code></pre><p><strong>4. Generate sign files</strong></p><pre><code class=language-shell>shasum -a 512 apache-shenyu-incubating-${RELEASE.VERSION}-src.zip &gt; apache-shenyu-incubating-${RELEASE.VERSION}-src.zip.sha512
+shasum -b -a 512 apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz &gt; apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz.sha512
+shasum -b -a 512 apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz &gt; apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz.sha512
+</code></pre><p><strong>5. Commit to Apache SVN</strong></p><pre><code class=language-shell>cd ..
+svn add *
+svn --username=${APACHE LDAP 用户名} commit -m &quot;release ${RELEASE.VERSION}&quot;
+</code></pre><h2 id=check-release>Check Release</h2><p><strong>Check sha512 hash</strong></p><pre><code class=language-shell>shasum -c apache-shenyu-incubating-${RELEASE.VERSION}-src.zip.sha512
+shasum -c apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz.sha512
+shasum -c apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz.sha512
+</code></pre><p><strong>Check gpg Signature</strong></p><p>First, import releaser&rsquo;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&rsquo;s. )</p><pre><code class=language-shell>curl https://dist.apache.org/repos/dist/dev/incubator/shenyu/KEYS &gt;&gt; KEYS
+gpg --import KEYS
+gpg --edit-key &quot;${GPG username of releaser}&quot;
+  &gt; trust
+
+Please decide how far you trust this user to correctly verify other users' keys
+(by looking at passports, checking fingerprints from different sources, etc.)
+
+  1 = I don't know or won't say
+  2 = I do NOT trust
+  3 = I trust marginally
+  4 = I trust fully
+  5 = I trust ultimately
+  m = back to the main menu
+
+Your decision? 5
+
+  &gt; save
+</code></pre><p>Then, check the gpg signature.</p><pre><code class=language-shell>gpg --verify apache-shenyu-incubating-${RELEASE.VERSION}-src.zip.asc apache-shenyu-incubating-${RELEASE.VERSION}-src.zip
+gpg --verify apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz.asc apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz
+gpg --verify apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz.asc apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz
+</code></pre><p><strong>Check Released Files</strong></p><p><strong>Compare release source with github tag</strong></p><pre><code>curl -Lo tag-${RELEASE.VERSION}.zip https://github.com/apache/incubator-shenyu/archive/v${RELEASE.VERSION}.zip
+unzip tag-${RELEASE.VERSION}.zip
+unzip apache-shenyu-incubating-${RELEASE.VERSION}-src.zip
+diff -r -x &quot;shenyu-dashboard&quot; -x &quot;shenyu-examples&quot; -x &quot;shenyu-integrated-test&quot; apache-shenyu-incubating-${RELEASE.VERSION}-src incubator-shenyu-${RELEASE.VERSION}
+</code></pre><p><strong>Check source package</strong></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 names</li><li><code>LICENSE</code> and <code>NOTICE</code> files exist</li><li><code>DISCLAIMER</code> file exists</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 [...]
+<code>apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz</code>,
+<code>apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz</code>
+to check the following items:</p><ul><li>The release files have the word <code>incubating</code> in their name</li><li><code>LICENSE</code> and <code>NOTICE</code> files exist</li><li><code>DISCLAIMER</code> file exists</li><li>Correct year in <code>NOTICE</code> file</li><li>All text files have ASF headers</li><li>Check the third party dependency license:<ul><li>The software has a compatible license</li><li>All software licenses mentioned in <code>LICENSE</code></li><li>All the third pa [...]
+PMC 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 PMC member</code> votes, it can come to the next stage of the vote.</p></li><li><p>Announce the vote result: send the result vote e-mail to <code>dev@shenyu.apache.org</code>.</p></li></ol><p><strong>Vote Templates</strong></p><ol><li>ShenYu Community Vote Template</li></ol><p>Title:</p><pre><code>[VOTE] Release Apache ShenYu ${RELEASE.VERSION}
+
+</code></pre><p>Body:</p><pre><code>Hello ShenYu Community,
+
+This is a call for vote to release Apache ShenYu version ${RELEASE.VERSION}
+
+Release notes:
+https://github.com/apache/incubator-shenyu/blob/master/RELEASE-NOTES.md
+
+The release candidates:
+https://dist.apache.org/repos/dist/dev/incubator/shenyu/${RELEASE.VERSION}/
+
+Maven 2 staging repository:
+https://repository.apache.org/content/repositories/${STAGING.REPOSITORY}/org/apache/shenyu/
+
+Git tag for the release:
+https://github.com/apache/incubator-shenyu/tree/${RELEASE.VERSION}/
+
+Release Commit ID:
+https://github.com/apache/incubator-shenyu/commit/xxxxxxxxxxxxxxxxxxxxxxx
+
+Keys to verify the Release Candidate:
+https://dist.apache.org/repos/dist/dev/incubator/shenyu/KEYS
+
+Look at here for how to verify this release candidate:
+https://shenyu.apache.org/community/release/#check-release
+
+GPG user ID:
+${YOUR.GPG.USER.ID}
+
+The vote will be open for at least 72 hours or until necessary number of votes are reached.
+
+Please vote accordingly:
+
+[ ] +1 approve 
+
+[ ] +0 no opinion
+ 
+[ ] -1 disapprove with the reason
+
+Checklist for reference:
+
+[ ] Download links are valid.
+
+[ ] Checksums and PGP signatures are valid.
+
+[ ] Source code distributions have correct names matching the current release.
+
+[ ] LICENSE and NOTICE files are correct for each ShenYu repo.
+
+[ ] All files have license headers if necessary.
+
+[ ] No compiled archives bundled in source archive.
+</code></pre><ol><li>Announce the vote result:</li></ol><p>Title:</p><pre><code>[RESULT][VOTE] Release Apache ShenYu ${RELEASE.VERSION}
+</code></pre><p>Body:</p><pre><code>We’ve received 3 +1 votes:
+
++1, xxx (mentor)
++1, xxx
++1, xxx
+
+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 id=finish-the-release>Finish the Release</h2><p><strong>1. Move source packages, binary packages and KEYS from the <code>dev</code> directory to <code>release</code> directory</strong></p><pre><code class=language-shell>svn mv https://dist.apache.org/repos/dist/dev/incubator/shenyu/${RELEASE.VERSION} https://dist.apache.org/repos/dist/release/incubator/shenyu/ -m &quot;transfer packages for ${RELEASE.VERSION}&quot;
+svn delete https://dist.apache.org/repos/dist/release/incubator/shenyu/KEYS -m &quot;delete KEYS&quot;
+svn cp https://dist.apache.org/repos/dist/dev/incubator/shenyu/KEYS https://dist.apache.org/repos/dist/release/incubator/shenyu/ -m &quot;transfer KEYS for ${RELEASE.VERSION}&quot;
+</code></pre><p><strong>2. Find ShenYu in staging repository and click <code>Release</code></strong></p><p><strong>3. Merge release branch to <code>master</code> and delete release branch on Github</strong></p><pre><code class=language-shell>git checkout master
+git merge origin/${RELEASE.VERSION}-release
+git pull
+git push origin master
+git push --delete origin ${RELEASE.VERSION}-release
+git branch -d ${RELEASE.VERSION}-release
+</code></pre><p><strong>4. Update README files</strong></p><p>Update <code>${PREVIOUS.RELEASE.VERSION}</code> to <code>${RELEASE.VERSION}</code> in README.md and README_ZH.md</p><p>Update <code>${RELEASE.VERSION}</code> to <code>${NEXT.RELEASE.VERSION}</code> for <code>SERVER_VERSION</code> in <code>MySQLServerInfo.java</code></p><p><strong>5. Docker Release</strong></p><p>5.1 Preparation</p><p>Install and start docker service</p><p>5.2 Compile Docker Image</p><pre><code class=language-s [...]
+cd ~/shenyu/shenyu-distribution/shenyu-bootstrap-distribution/
+mvn clean package -Prelease,docker
+</code></pre><p>5.3 Tag the local Docker Image</p><p>Check the image ID through <code>docker images</code>, for example: e9ea51023687</p><pre><code class=language-shell>docker tag e9ea51023687 apache/shenyu-bootstrap:latest
+docker tag e9ea51023687 apache/shenyu-bootstrap:${RELEASE.VERSION}
+</code></pre><p>5.4 Publish Docker Image</p><pre><code class=language-shell>docker login
+docker push apache/shenyu-bootstrap:latest
+docker push apache/shenyu-bootstrap:${RELEASE_VERSION}
+</code></pre><p>5.5 Confirm the successful release</p><p>Login <a href=https://hub.docker.com/r/apache/shenyu-bootstrap/>Docker Hub</a> to check whether there are published images</p><p><strong>6. Publish release in GitHub</strong></p><p>Click <code>Edit</code> in <a href=https://github.com/apache/incubator/shenyu/releases>GitHub Releases</a>&rsquo;s <code>${RELEASE_VERSION}</code> version</p><p>Edit version number and release notes, click <code>Publish release</code></p><p><strong>7. Up [...]
+</code></pre><p>Body:</p><pre><code>Hi all,
+
+Apache ShenYu Team is glad to announce the new release of Apache ShenYu ${RELEASE.VERSION}.
+
+Apache ShenYu is an asynchronous, high-performance, cross-language, responsive API gateway.
+Support various languages (http protocol), support Dubbo, Spring-Cloud, Grpc, Motan, Sofa, Tars and other protocols.
+Plugin design idea, plugin hot swap, easy to expand.
+Flexible flow filtering to meet various flow control.
+Built-in rich plugin support, authentication, limiting, fuse, firewall, etc.
+Dynamic flow configuration, high performance.
+Support cluster deployment, A/B Test, blue-green release.
+
+Download Links: https://shenyu.apache.org/projects/shenyu/download/
+
+Release Notes: https://github.com/apache/incubator-shenyu/blob/master/RELEASE-NOTES.md
+
+Website: https://shenyu.apache.org/
+
+ShenYu Resources:
+- Issue: https://github.com/apache/incubator-shenyu/issues
+- Mailing list: dev@shenyu.apache.org
+- Documents: https://shenyu.apache.org/projects/shenyu/overview/
+
+
+
+- Apache ShenYu Team
+
+</code></pre></article></main></div><footer class=ss-footer><div class=container><div class=links><div class="cate  -show-mobile"><h2 class=cate-title>Apache</h2><a class=link href=https://www.apache.org/>Foundation</a>
+<a class=link href=https://github.com/apache/incubator-shenyu/issues>GitHub Issue Tracker</a>
+<a class=link href=https://www.apache.org/licenses/>License</a>
+<a class=link href=https://www.apache.org/security/>Security</a>
+<a class=link href=http://www.apache.org/events/current-event>Events</a>
+<a class=link href=http://www.apache.org/foundation/sponsorship.html>Sponsorship</a>
+<a class=link href=http://www.apache.org/foundation/thanks.html>Thanks</a></div><div class=cate><h2 class=cate-title>Resources</h2><a class=link href=https://github.com/apache/incubator-shenyu>Github</a>
+<a class=link href=/projects/shenyu/overview/>Documentation</a></div><div class=cate><h2 class=cate-title>Get Involved</h2><a class=link href=https://github.com/apache/incubator-shenyu/issues/new>Feedback</a>
+<a class=link href=/community>Community</a>
+<a class=link href=/news>News</a>
+<a class=link href=/awesome>Awesome</a></div><div class=cate><h2 class=cate-title>Subscribe mailing list</h2><a class=link href=mailto://dev-subscribe@shenyu.apache.org>Subscribe Mail</a>
+<a class=link href=https://lists.apache.org/list.html?dev@shenyu.apache.org>Mail Archive</a></div></div><div class=qrcode><div><img class=qrcode-img src=/img/qrcode/WechatIMG127.jpeg><p class=qrcode-desc>Wechat Official Account</p></div></div></div><div class=copyright><p>Copyright © 2021 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.
+Apache ShenYu, Apache Incubator, Apache, the Apache feather logo, the Apache EventMesh logo and the Apache Incubator project logo are trademarks of The Apache Software Foundation.
+Apache ShenYu is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache 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.
+While incubation status is not necessarily a reflection of the completeness or stability of the code,
+it does indicate that the project has yet to be fully endorsed by the ASF.</p></div></footer></body></html>
\ No newline at end of file
diff --git a/en/sitemap.xml b/en/sitemap.xml
index f5fa117..16d148b 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/projects/shenyu/</loc><lastmod>2021-07-20T12:17:58+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="zh" href="/zh/projects/shenyu/"/><xhtml:link rel="alternate" hreflang="en" href="/projects/shenyu/"/></url><url><loc>/projects/shenyu-2.3.0/</loc><lastmod>2021-07- [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/projects/shenyu/</loc><lastmod>2021-07-20T14:31:09+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="zh" href="/zh/projects/shenyu/"/><xhtml:link rel="alternate" hreflang="en" href="/projects/shenyu/"/></url><url><loc>/projects/shenyu-2.3.0/</loc><lastmod>2021-07- [...]
\ No newline at end of file
diff --git a/index.xml b/index.xml
index 67412fa..50d46ff 100644
--- a/index.xml
+++ b/index.xml
@@ -125,7 +125,7 @@ Server When Shenyu-Admin server start, register center server will be loaded by
 This chapter is mainly focus on the concepts of selector and rule and how to use it.
 Overview One plugin has many selector and a selector has many rules, selector is the first filter of request, and the rule is the final filter. Please consider this, it would be perfect when the plugin executes the request until it reached the config value.</description></item><item><title>Selector Detailed Explanation</title><link>/projects/shenyu/selector-and-rule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/projects/shenyu/selector-and-rule/</guid><description>Featu [...]
 This chapter is mainly focus on the concepts of selector and rule and how to use it.
-Overview One plugin has many selector and a selector has many rules, selector is the first filter of request, and the rule is the final filter. Please consider this, it would be perfect when the plugin executes the request until it reached the config value.</description></item><item><title>Sentinel Plugin</title><link>/projects/shenyu-2.3.0/sentinel-plugin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/projects/shenyu-2.3.0/sentinel-plugin/</guid><description>Explanation [...]
+Overview One plugin has many selector and a selector has many rules, selector is the first filter of request, and the rule is the final filter. Please consider this, it would be perfect when the plugin executes the request until it reached the config value.</description></item><item><title>Sentinel Plugin</title><link>/projects/shenyu-2.3.0/sentinel-plugin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/projects/shenyu-2.3.0/sentinel-plugin/</guid><description>Explanation [...]
 In shenyu-admin BasicConfig &amp;ndash;&amp;gt; plugin -&amp;gt; sign set to enable. If you don&amp;rsquo;t want to use this function, please disable this plugin in the shenyu-admin. Plugin Usage Introducing sign dependency in the pom.</description></item><item><title>Sofa Plugin</title><link>/projects/shenyu-2.3.0/sofa-plugin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/projects/shenyu-2.3.0/sofa-plugin/</guid><description>Description The sofa plug-in is a plug-in tha [...]
 Features Support various languages (http protocol), support dubbo, spring-cloud, Grpc, Motan, Sofa, Tars protocol. Plugin design idea, plugin hot swap, easy to expand. Flexible flow filtering to meet various flow control. Built-in rich plugin support, authentication, limiting, fuse, firewall, etc. Dynamic flow configuration, high performance. Support cluster deployment, A/B Test, blue-green release. Architecture Diagram</description></item><item><title>Soul Optimize</title><link>/project [...]
 Start Apache ShenYu Admin download 2.4.0 download apache-shenyu-admin-bin-2.4.0-RELEASE.tar.gz
diff --git a/sitemap.xml b/sitemap.xml
index 740d98f..6bd116f 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>en/sitemap.xml</loc><lastmod>2021-07-20T12:17:58+08:00</lastmod></sitemap><sitemap><loc>zh/sitemap.xml</loc><lastmod>2021-07-20T12:17:58+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>en/sitemap.xml</loc><lastmod>2021-07-20T14:31:09+08:00</lastmod></sitemap><sitemap><loc>zh/sitemap.xml</loc><lastmod>2021-07-20T14:31:09+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh/algolia.json b/zh/algolia.json
index 78bc653..b6d53bf 100644
--- a/zh/algolia.json
+++ b/zh/algolia.json
@@ -1 +1 @@
-[{"author":"xiaoyu","categories":"Apache ShenYu","content":" Apache ICLA 签署流程指南 Apache CLA 全称 Apache Contributor License Agreement,签署ICLA的目的是定义向ASF贡献的文档,保护知识产权,避免后续法律纠纷。ICLA在官方存档后生效,贡献者方可参与Apache项目。\n当我们需要签署ICLA时步骤如下:\n1. 打开链接 官网Licenses 在Contributor License Agreements 下找到CLAs并进入页面。\n2. 在页面上方我们可以看到两个下载链接,选择ICLA(个人CLA)并下载文件。\n3. 打开PDF,ICLA需要填写的是两个部分,均需要全英文填写。\n 注意事项:\n 姓名需要填写拼音,姓与名之间空一格,首字母均为大写,名在前姓氏在后。 Committer相关的签署,则preferred Apache id(s)是必填项。   4.文件最下方的署名。 官网支持手写或者PDF签名软件\n5.签署完之后将icl [...]
\ No newline at end of file
+[{"author":"xiaoyu","categories":"Apache ShenYu","content":" Apache ICLA 签署流程指南 Apache CLA 全称 Apache Contributor License Agreement,签署ICLA的目的是定义向ASF贡献的文档,保护知识产权,避免后续法律纠纷。ICLA在官方存档后生效,贡献者方可参与Apache项目。\n当我们需要签署ICLA时步骤如下:\n1. 打开链接 官网Licenses 在Contributor License Agreements 下找到CLAs并进入页面。\n2. 在页面上方我们可以看到两个下载链接,选择ICLA(个人CLA)并下载文件。\n3. 打开PDF,ICLA需要填写的是两个部分,均需要全英文填写。\n 注意事项:\n 姓名需要填写拼音,姓与名之间空一格,首字母均为大写,名在前姓氏在后。 Committer相关的签署,则preferred Apache id(s)是必填项。   4.文件最下方的署名。 官网支持手写或者PDF签名软件\n5.签署完之后将icl [...]
\ No newline at end of file
diff --git a/zh/community/release/index.html b/zh/community/release/index.html
index 9caa35f..2711fe1 100644
--- a/zh/community/release/index.html
+++ b/zh/community/release/index.html
@@ -2,7 +2,8 @@
 <a href=/zh/projects/shenyu/overview/><span>文档</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
 <a href=/zh/community/code-conduct/><span>社区</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
 <a href=/zh/news/><span>新闻</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
-<a href=/zh/awesome/><span>Awesome</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a></nav></div></div><div class="navbar-menu -hidden-mobile"><div class=navbar-start><a class=navbar-item href=/zh/projects/shenyu/download/>下载</a>
+<a href=/zh/awesome/><span>Awesome</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-ARROW"/></svg></a>
+<a href=/community/release/><span>English</span><svg class="icon" aria-hidden="true"><use xlink:href="#icon-transfer"/></svg></a></nav></div></div><div class="navbar-menu -hidden-mobile"><div class=navbar-start><a class=navbar-item href=/zh/projects/shenyu/download/>下载</a>
 <a class=navbar-item href=/zh/projects/shenyu/overview/>文档</a>
 <a class=navbar-item href=/zh/community/code-conduct/>社区</a>
 <a class=navbar-item href=/zh/news/>新闻</a>
@@ -13,7 +14,7 @@
 <a class=dropdown-item href=http://www.apache.org/events/current-event>Apache Events</a>
 <a class=dropdown-item href=https://www.apache.org/licenses/>Security</a>
 <a class=dropdown-item href=http://www.apache.org/foundation/sponsorship.html>Sponsor and Donate</a>
-<a class=dropdown-item href=http://www.apache.org/foundation/thanks.html>Thanks</a></div></span></div><div class=navbar-end><div class=navbar-item><div id=js-menu-search class=navbar-search><input class=input placeholder=请输入要搜索的关键词><svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"/></svg></div></div><div class=navbar-item></div></div></div></nav></header><div class=ss-layout-container><aside class="ss-layout-aside -left ss-card -soft-hidden"><div id=js-drawer class=ss-t [...]
+<a class=dropdown-item href=http://www.apache.org/foundation/thanks.html>Thanks</a></div></span></div><div class=navbar-end><div class=navbar-item><div id=js-menu-search class=navbar-search><input class=input placeholder=请输入要搜索的关键词><svg class="icon" aria-hidden="true"><use xlink:href="#icon-search"/></svg></div></div><div class=navbar-item><a class=translation href=/community/release/>En</a></div></div></div></nav></header><div class=ss-layout-container><aside class="ss-layout-aside -lef [...]
 GnuPG的1.x版本和2.x版本的命令有细微差别,下列说明以<code>GnuPG-2.1.23</code>版本为例。</p><p>安装完成后,执行以下命令查看版本号。</p><pre><code class=language-shell>gpg --version
 </code></pre><p><strong>2. 创建key</strong></p><p>安装完成后,执行以下命令创建key。</p><p><code>GnuPG-2.x</code>可使用:</p><pre><code class=language-shell>gpg --full-gen-key
 </code></pre><p><code>GnuPG-1.x</code>可使用:</p><pre><code class=language-shell>gpg --gen-key
@@ -87,9 +88,9 @@ git push origin --tags
 </code></pre><p>执行完该命令后,待发布版本会自动上传到Apache的临时筹备仓库(staging repository)。
 访问<a href=https://repository.apache.org/#stagingRepositories>https://repository.apache.org/#stagingRepositories</a>, 使用Apache的LDAP账户登录后,就会看到上传的版本,<code>Repository</code>列的内容即为${STAGING.REPOSITORY}。
 点击<code>Close</code>来告诉Nexus这个构建已经完成,只有这样该版本才是可用的。
-如果电子签名等出现问题,<code>Close</code>会失败,可以通过<code>Activity</code>查看失败信息。</p><h2 id=发布apache-svn仓库>发布Apache SVN仓库</h2><p><strong>1. 检出shenyu发布目录</strong></p><p>如无本地工作目录,则先创建本地工作目录。</p><pre><code class=language-shell>mkdir -p ~/shenyu_svn/dev/
+如果电子签名等出现问题,<code>Close</code>会失败,可以通过<code>Activity</code>查看失败信息。</p><h2 id=发布apache-svn仓库>发布Apache SVN仓库</h2><p><strong>1. 检出ShenYu发布目录</strong></p><p>如无本地工作目录,则先创建本地工作目录。</p><pre><code class=language-shell>mkdir -p ~/shenyu_svn/dev/
 cd ~/shenyu_svn/dev/
-</code></pre><p>创建完毕后,从Apache SVN检出shenyu发布目录。</p><pre><code class=language-shell>svn --username=${APACHE LDAP 用户名} co https://dist.apache.org/repos/dist/dev/incubator/shenyu
+</code></pre><p>创建完毕后,从Apache SVN检出ShenYu发布目录。</p><pre><code class=language-shell>svn --username=${APACHE LDAP 用户名} co https://dist.apache.org/repos/dist/dev/incubator/shenyu
 cd ~/shenyu_svn/dev/shenyu
 </code></pre><p><strong>2. 添加gpg公钥</strong></p><p>仅第一次部署的账号需要添加,只要<code>KEYS</code>中包含已经部署过的账户的公钥即可。</p><pre><code class=language-shell>gpg -a --export ${GPG用户名} &gt;&gt; KEYS
 </code></pre><p><strong>3. 将待发布的内容添加至SVN目录</strong></p><p>创建版本号目录。</p><pre><code class=language-shell>mkdir -p ~/shenyu_svn/dev/shenyu/${RELEASE.VERSION}
@@ -133,11 +134,11 @@ gpg --verify apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz.asc ap
 </code></pre><p><strong>检查发布文件内容</strong></p><p><strong>对比源码包与Github上tag的内容差异</strong></p><pre><code>curl -Lo tag-${RELEASE.VERSION}.zip https://github.com/apache/incubator-shenyu/archive/v${RELEASE.VERSION}.zip
 unzip tag-${RELEASE.VERSION}.zip
 unzip apache-shenyu-incubating-${RELEASE.VERSION}-src.zip
-diff -r apache-shenyu-incubating-${RELEASE.VERSION}-src incubator-shenyu-${RELEASE.VERSION}
-</code></pre><p><strong>检查源码包的文件内容</strong></p><ul><li>检查源码包是否包含由于包含不必要文件,致使tarball过于庞大</li><li>存在<code>LICENSE</code>和<code>NOTICE</code>文件</li><li><code>NOTICE</code>文件中的年份正确</li><li>只存在文本文件,不存在二进制文件</li><li>所有文件的开头都有ASF许可证</li><li>能够正确编译,单元测试可以通过 (./mvnw install)</li><li>检查是否有多余文件或文件夹,例如空文件夹等</li></ul><p><strong>检查二进制包的文件内容</strong></p><p>解压缩
+diff -r -x &quot;shenyu-dashboard&quot; -x &quot;shenyu-examples&quot; -x &quot;shenyu-integrated-test&quot; apache-shenyu-incubating-${RELEASE.VERSION}-src incubator-shenyu-${RELEASE.VERSION}
+</code></pre><p><strong>检查源码包的文件内容</strong></p><ul><li>检查源码包是否包含由于包含不必要文件,致使tarball过于庞大</li><li>文件夹包含单词<code>incubating</code></li><li>存在<code>LICENSE</code>和<code>NOTICE</code>文件</li><li>存在<code>DISCLAIMER</code>文件</li><li><code>NOTICE</code>文件中的年份正确</li><li>只存在文本文件,不存在二进制文件</li><li>所有文件的开头都有ASF许可证</li><li>能够正确编译,单元测试可以通过 (./mvnw install)</li><li>检查是否有多余文件或文件夹,例如空文件夹等</li></ul><p><strong>检查二进制包的文件内容</strong></p><p>解压缩
 <code>apache-shenyu-incubating-${RELEASE.VERSION}-bootstrap-bin.tar.gz</code>,
 <code>apache-shenyu-incubating-${RELEASE.VERSION}-admin-bin.tar.gz</code>
-进行如下检查:</p><ul><li>存在<code>LICENSE</code>和<code>NOTICE</code>文件</li><li><code>NOTICE</code>文件中的年份正确</li><li>所有文本文件开头都有ASF许可证</li><li>检查第三方依赖许可证:<ul><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><h2 id=发起投票>发起投票</h2><p><strong>投票阶段</strong></p><ol><li><p>ShenYu社区投票,发起投票邮件到<code>dev@shenyu.apache.org</code>。 [...]
+进行如下检查:</p><ul><li>文件夹包含单词<code>incubating</code></li><li>存在<code>LICENSE</code>和<code>NOTICE</code>文件</li><li>存在<code>DISCLAIMER</code>文件</li><li><code>NOTICE</code>文件中的年份正确</li><li>所有文本文件开头都有ASF许可证</li><li>检查第三方依赖许可证:<ul><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><h2 id=发起投票>发起投票</h2><p><strong>投票阶段</ [...]
 经过至少72小时并统计到3个<code>+1 PMC member</code>票后,即可进入下一阶段的投票。</p></li><li><p>宣布投票结果,发起投票结果邮件到<code>dev@shenyu.apache.org</code>。</p></li></ol><p><strong>投票模板</strong></p><ol><li>ShenYu社区投票模板</li></ol><p>标题:</p><pre><code>[VOTE] Release Apache ShenYu ${RELEASE.VERSION}
 </code></pre><p>正文:</p><pre><code>Hello ShenYu Community,
 
@@ -162,7 +163,7 @@ Keys to verify the Release Candidate:
 https://dist.apache.org/repos/dist/dev/incubator/shenyu/KEYS
 
 Look at here for how to verify this release candidate:
-https://shenyu.apache.org/community/release/
+https://shenyu.apache.org/community/release/#check-release
 
 GPG user ID:
 ${YOUR.GPG.USER.ID}
diff --git a/zh/sitemap.xml b/zh/sitemap.xml
index 2b1e1a9..64bed87 100644
--- a/zh/sitemap.xml
+++ b/zh/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/zh/projects/shenyu/</loc><lastmod>2021-07-20T12:17:58+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="en" href="/projects/shenyu/"/><xhtml:link rel="alternate" hreflang="zh" href="/zh/projects/shenyu/"/></url><url><loc>/zh/projects/shenyu-2.3.0/</loc><lastmod>20 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/zh/projects/shenyu/</loc><lastmod>2021-07-20T14:31:09+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link rel="alternate" hreflang="en" href="/projects/shenyu/"/><xhtml:link rel="alternate" hreflang="zh" href="/zh/projects/shenyu/"/></url><url><loc>/zh/projects/shenyu-2.3.0/</loc><lastmod>20 [...]
\ No newline at end of file