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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new d4ba421  generate htmls
d4ba421 is described below

commit d4ba4216244b987bcaba6e7b4669fb80bca5f59a
Author: Xin Wang <xin.victorw...@gmail.com>
AuthorDate: Tue Mar 5 00:06:20 2019 +0800

    generate htmls
---
 .../committer-guide/new-committer-guide_dev.html   |   5 +-
 .../committer-guide/new-committer-guide_dev.json   |   2 +-
 .../committer-guide/release-guide_dev.html         | 427 ++++++++++++++++++++-
 .../committer-guide/release-guide_dev.json         |   7 +-
 en-us/docs/developers/developers_dev.html          |  29 +-
 en-us/docs/developers/developers_dev.json          |   2 +-
 en-us/index.html                                   |   2 +-
 md_json/docs.json                                  |  10 +-
 src/pages/home/index.scss                          |   4 +-
 .../committer-guide/new-committer-guide_dev.html   |   3 +
 .../committer-guide/new-committer-guide_dev.json   |   2 +-
 .../committer-guide/release-guide_dev.html         | 373 +++++++++++++++++-
 .../committer-guide/release-guide_dev.json         |   7 +-
 zh-cn/docs/developers/developers_dev.html          |  37 +-
 zh-cn/docs/developers/developers_dev.json          |   2 +-
 zh-cn/index.html                                   |   2 +-
 16 files changed, 872 insertions(+), 42 deletions(-)

diff --git a/en-us/docs/developers/committer-guide/new-committer-guide_dev.html 
b/en-us/docs/developers/committer-guide/new-committer-guide_dev.html
index 605e452..12d90f8 100644
--- a/en-us/docs/developers/committer-guide/new-committer-guide_dev.html
+++ b/en-us/docs/developers/committer-guide/new-committer-guide_dev.html
@@ -91,7 +91,10 @@
 <h3>The Apache way</h3>
 <p>See <a href="http://apache.org/foundation/governance/";>wiki</a>.</p>
 <p>The community is more important than the code
-If not discussed in the community (mailing list), just as it did not happen</p>
+If not discussed in the community (mailing list), just as it did not 
happen.</p>
+<h3>Add your name</h3>
+<p>Please update Dubbo incubator status <a 
href="https://incubator.apache.org/projects/dubbo.html";>page</a> to add your 
name. See this <a 
href="http://dubbo.apache.org/en-us/docs/developers/committer-guide/apache-dubbo-page_dev.html";>guide</a>
 for instructions.</p>
+<p>Please update Dubbo offiical <a 
href="http://dubbo.apache.org/en-us/docs/developers/developers_dev.html";>website</a>
 to update your name.</p>
 <h3>A small benefit</h3>
 <p>Jetbrains company gives Apache committers a small benefit, which is free to 
use IDEA's full series products. The specific address is: <a 
href="https://www.jetbrains.com/shop/eform/apache?Product=ALL";>https://www.jetbrains.com/shop/eform/apache?Product=ALL</a></p>
 <h3>Reference wiki</h3>
diff --git a/en-us/docs/developers/committer-guide/new-committer-guide_dev.json 
b/en-us/docs/developers/committer-guide/new-committer-guide_dev.json
index 0acdd65..2b215a3 100644
--- a/en-us/docs/developers/committer-guide/new-committer-guide_dev.json
+++ b/en-us/docs/developers/committer-guide/new-committer-guide_dev.json
@@ -1,6 +1,6 @@
 {
   "filename": "new-committer-guide_dev.md",
-  "__html": "<h1>Apache Committer Guide</h1>\n<h2>First: How to become a 
committer</h2>\n<h3>Initial committers at the project incubator 
stage</h3>\n<p>At the project incubator stage, there will be an initial 
committers list in the proposal of the incubator project. Confirm that you are 
one of the initial committers. After the vote is passed in the Apache incubator 
community, these committers can start preparing their account. See <a 
href=\"https://wiki.apache.org/incubator/\";>incubator  [...]
+  "__html": "<h1>Apache Committer Guide</h1>\n<h2>First: How to become a 
committer</h2>\n<h3>Initial committers at the project incubator 
stage</h3>\n<p>At the project incubator stage, there will be an initial 
committers list in the proposal of the incubator project. Confirm that you are 
one of the initial committers. After the vote is passed in the Apache incubator 
community, these committers can start preparing their account. See <a 
href=\"https://wiki.apache.org/incubator/\";>incubator  [...]
   "link": 
"/en-us/docs/developers/committer-guide/new-committer-guide_dev.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/en-us/docs/developers/committer-guide/release-guide_dev.html 
b/en-us/docs/developers/committer-guide/release-guide_dev.html
index 95b4a38..3b1b42b 100644
--- a/en-us/docs/developers/committer-guide/release-guide_dev.html
+++ b/en-us/docs/developers/committer-guide/release-guide_dev.html
@@ -4,16 +4,435 @@
 <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="release-guide_dev" />
+       <meta name="keywords" content="Dubbo, Apache, Release" />
        <meta name="description" content="release-guide_dev" />
        <!-- 网页标签标题 -->
-       <title>release-guide_dev</title>
+       <title>Release Guide</title>
        <link rel="shortcut icon" href="/img/dubbo.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="/en-us/index.html"><img class="logo" 
src="/img/dubbo_colorful.png"/></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/menu_gray.png"/><ul><li class="menu-item 
menu-item-normal"><a  [...]
-<p>Please refer to this excellent <a 
href="http://dubbo.apache.org/en-us/blog/prepare-an-apache-release.html";>blog</a></p>
+       <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/dubbo_colorful.png"/></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/menu_gray.png"/><ul><li class="menu-item 
menu-item-normal"><a  [...]
+<p>In general, Source Release is the key and the required content of Apache. 
But Binary Release is optional, Dubbo can choose whether to release binary 
packages to the Apache repository or to the Maven central repository.</p>
+<p>Please refer to the following links for more information on ASF's release 
guide:</p>
+<ul>
+<li><a href="http://www.apache.org/dev/release-publishing";>Apache Release 
Guide</a></li>
+<li><a href="http://www.apache.org/dev/release.html";>Apache Release 
Policy</a></li>
+<li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html";>Maven 
Release Info</a></li>
+</ul>
+<h2>Preparation of Local Building Environment</h2>
+<p>Mainly including the related preparation of signature utilities and Maven 
repository certification</p>
+<ol>
+<li>
+<p>Install GPG,refer to <a 
href="https://www.gnupg.org/download/index.html";>https://www.gnupg.org/download/index.html</a></p>
+<ul>
+<li>For example, in Mac OS</li>
+</ul>
+<pre><code class="language-sh">$ brew install gpg
+$ gpg --version <span class="hljs-comment">#check version,should be 2.x</span>
+</code></pre>
+</li>
+<li>
+<p>Generate the key with GPG</p>
+<ul>
+<li>Generate the key according to the prompt</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> gpg2 --full-gen-key</span>
+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: Robert Burrell Donkin
+Email address: rdon...@apache.org
+Comment: CODE SIGNING KEY
+You selected this USER-ID:
+   "Robert Burrell Donkin (CODE SIGNING KEY) &lt;rdon...@apache.org&gt;"
+
+Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
+You need a Passphrase to protect your secret key. # enter the password, which 
will be used frequently when packaging.
+</code></pre>
+<ul>
+<li>View key id</li>
+</ul>
+<pre><code class="language-sh">$ gpg --list-keys
+pub   rsa4096/28681CB1 2018-04-26 <span class="hljs-comment"># 28681CB1 is the 
key id</span>
+uid       [ultimate] liujun (apache-dubbo) &lt;liu...@apache.org&gt;
+sub   rsa4096/D3D6984B 2018-04-26
+
+<span class="hljs-comment">########### Note: Different diaplay for different 
version.</span>
+$ gpg --list-keys
+pub   rsa4096 2018-11-12 [SC]
+      63AAE9838F4A303E40BAF5FEA3A1CA7A5D4A3981     <span 
class="hljs-comment"># Last 8 character(5D4A3981) as key id,it will be used 
when send public key to keyserver</span>
+uid           [ 绝对 ] Victory Cao (CODE SIGNING KEY) &lt;vict...@apache.org&gt;
+sub   rsa4096 2018-11-12 [E]
+    
+
+<span class="hljs-comment"># send public key to keyserver via key id </span>
+$ gpg --keyserver pgpkeys.mit.edu --send-key 28681CB1
+<span class="hljs-comment"># Here pgpkeys.mit.edu is a random selection of 
keyserver. Any key server from the list https://sks-keyservers.net/status/ is 
acceptable because they are automatically synchronized.</span>
+</code></pre>
+<ul>
+<li>If there are multiple public keys,you can set the default key</li>
+</ul>
+<p>~/.gnupg/gpg.conf</p>
+<pre><code class="language-proper"># If you have more than 1 secret key in 
your keyring, you may want to
+# uncomment the following option and set your preferred keyid.
+
+default-key 28681CB1
+</code></pre>
+<ul>
+<li>If there are multiple public keys, you can also delete unuseful key:</li>
+</ul>
+<pre><code class="language-sh"><span class="hljs-comment">### Delete the 
private key first, then delete the public key.</span>
+
+$ gpg --yes --delete-secret-keys shenglic...@gmail.com   <span 
class="hljs-comment">### indicate email address  </span>
+
+$ gpg --delete-keys 1808C6444C781C0AEA0AAD4C4D6A8007D20DB8A4 
+
+</code></pre>
+</li>
+<li>
+<p>Set up Apache central repository.</p>
+<ul>
+<li>The parent pom of Dubbo project is apache pom</li>
+</ul>
+<pre><code class="language-xml"><span class="hljs-tag">&lt;<span 
class="hljs-name">parent</span>&gt;</span>
+<span class="hljs-tag">&lt;<span 
class="hljs-name">groupId</span>&gt;</span>org.apache<span 
class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
+<span class="hljs-tag">&lt;<span 
class="hljs-name">artifactId</span>&gt;</span>apache<span 
class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
+<span class="hljs-tag">&lt;<span 
class="hljs-name">version</span>&gt;</span>19<span class="hljs-tag">&lt;/<span 
class="hljs-name">version</span>&gt;</span>
+<span class="hljs-tag">&lt;/<span class="hljs-name">parent</span>&gt;</span>
+</code></pre>
+<ul>
+<li>
+<p>Add the following contents to .m2/settings.xml</p>
+<p>Enter the passwords after
+encrypting by <a 
href="http://maven.apache.org/guides/mini/guide-encryption.html";>maven-encryption-plugin</a></p>
+</li>
+</ul>
+<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-comment">&lt;!-- To publish a snapshot of some part of 
Maven --&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;!-- 
YOUR 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;!-- 
YOUR APACHE LDAP PASSWORD (encrypted) --&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-comment">&lt;!-- To stage a release of some part of Maven 
--&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;!-- 
YOUR 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;!-- 
YOUR APACHE LDAP PASSWORD (encrypted) --&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-comment">&lt;!-- gpg passphrase used when generate key 
--&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>gpg.passphrase<span 
class="hljs-tag">&lt;/<span class="hljs-name">id</span>&gt;</span>
+     <span class="hljs-tag">&lt;<span 
class="hljs-name">passphrase</span>&gt;</span><span 
class="hljs-comment">&lt;!-- yourKeyPassword --&gt;</span><span 
class="hljs-tag">&lt;/<span class="hljs-name">passphrase</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>
+</li>
+</ol>
+<h2>Pack &amp; Upload</h2>
+<ol>
+<li>
+<p>Pull the new branch from the master branch as the release branch. If you 
want to release the ${release_version} version now, pull the new branch 
${release_version}-release from 2.6.x. Then the
+modifications and taggings related to ${release_version} Release Candidates 
are applied to ${release_version}-release branch, and is merged into the master 
branch after the final release.</p>
+</li>
+<li>
+<p>First of all, verify that the maven component packing, source packing, 
signature, etc are working properly on the ${release_version}-release 
branch.</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn clean install -Papache-release</span>
+<span class="hljs-meta">$</span><span class="bash"> mvn deploy</span>
+</code></pre>
+</li>
+</ol>
+<p>This push the snapshot package to the maven central repository.</p>
+<ol start="3">
+<li>
+<p>Release with maven-release-plugin</p>
+<ul>
+<li>verify with dryRun</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn release:prepare -Prelease -Darguments=<span 
class="hljs-string">"-Dmaven.test.skip=true"</span> 
-DautoVersionSubmodules=<span class="hljs-literal">true</span> -Dusername=YOUR 
GITHUB ID -DdryRun=<span class="hljs-literal">true</span></span>
+</code></pre>
+<ul>
+<li>After verification, run release:prepare</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn release:clean</span>
+<span class="hljs-meta">$</span><span class="bash"> mvn release:prepare 
-Prelease -Darguments=<span class="hljs-string">"-Dmaven.test.skip=true"</span> 
-DautoVersionSubmodules=<span class="hljs-literal">true</span> -Dusername=YOUR 
GITHUB ID -DpushChanges=<span class="hljs-literal">false</span></span>
+</code></pre>
+<blockquote>
+<p>If you are promted to input password for pushing to GitHub (basically 
including adding new commits and tags), do not input your login password of 
GitHub. Use <code>Personal access tokens</code> instead. You can go to <a 
href="https://github.com/settings/profile";>https://github.com/settings/profile</a>,
 click <code>Developer settings</code> -&gt; <code>Personal access 
tokens</code>, and generate a new token if not. Please refer to this <a 
href="https://help.github.com/articles/creating [...]
+</blockquote>
+<p>After executing the above commands, you will find that:</p>
+<ol>
+<li>source-release.zip and bin-release.zip are generated under 
dubbo-distribution directory, please unzip it and check the file structure</li>
+<li><code>-DpushChanges=false</code> tells maven not to push the commits and 
tags to the remote repostiroy. If not specified, the version tag will be pushed 
to github repository, you will see a commit called <code>[maven-release-plugin] 
prepare release dubbo-x.x.x</code> added.</li>
+<li>The branch version is upgraded to ${release_version+1}-SNAPSHOT 
automatically. If <code>-DpushChanges=true</code> is specified, the 
modifications will be pushed to the remote repository, you will see a commit 
called <code>[maven-release-plugin] prepare for next development 
iteration</code> added.</li>
+</ol>
+<p>If <code>-DpushChanges=false</code> is specified, you will have to manually 
push the commit to remote repository before go to next step.</p>
+<ul>
+<li>Run release:perform</li>
+</ul>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn release:perform -Prelease -Darguments=<span 
class="hljs-string">"-Dmaven.test.skip=true"</span> 
-DautoVersionSubmodules=<span class="hljs-literal">true</span> -Dusername=YOUR 
GITHUB ID</span>
+</code></pre>
+<p>Maven will download the source code from the tag you just pushed, compile 
it, and deploy to remote maven repsoitry in staging state.</p>
+</li>
+</ol>
+<h3>Note</h3>
+<blockquote>
+<p>When you deploy the package into repository, it will be interrupted for 
network. So you must restart to desploy.<br>
+The problem is that missing package occurred many times at deploying. So you 
should check the quantity of package, especially parent package.</p>
+</blockquote>
+<h2>Prepare Apache Release</h2>
+<ol>
+<li>
+<p>Prepare the svn local environment (Apache hosting the release content of 
project by svn)</p>
+</li>
+<li>
+<p>Checkout dubbo to local directory</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> svn checkout 
https://dist.apache.org/repos/dist/dev/incubator/dubbo</span>
+</code></pre>
+<p>Assume that the local directory is <code>~/apache/incubator/dubbo</code></p>
+</li>
+<li>
+<p>The current release version is ${release_version}, new directory</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> <span class="hljs-built_in">cd</span> ~/apache/incubator/dubbo 
<span class="hljs-comment"># dubbo svn root directory</span></span>
+<span class="hljs-meta">$</span><span class="bash"> mkdir <span 
class="hljs-variable">${release_version}</span></span>
+</code></pre>
+</li>
+<li>
+<p>Add public key to <a 
href="https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS";>KEYS</a> 
file if you are the first time to be a release manager. KEYS is mainly used to 
allow people who participate in the voting to be imported locally to verify the 
correctness of the sign.</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> gpg -a --<span class="hljs-built_in">export</span> your_key_id 
&gt;&gt; KEYS</span>
+</code></pre>
+<p>For more information on how to get your key id, please refer to this <a 
href="https://help.github.com/articles/generating-a-new-gpg-key/";>guide</a></p>
+</li>
+<li>
+<p>Copy the source.zip package from the Dubbo root directory to the svn local 
repository dubbo/${release_version}</p>
+</li>
+<li>
+<p>Generate sha512 sign</p>
+<p>For source-release.zip</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> shasum -a 512 apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-<span 
class="hljs-built_in">source</span>-release.zip &gt;&gt; 
apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-<span 
class="hljs-built_in">source</span>-release.zip.sha512</span>
+</code></pre>
+<p>For bin-release.zip</p>
+<p>Please add <code>-b</code> paramter when generating sha512 for 
bin-release.zip, which indicates it is a binary file.</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> shasum -b -a 512 apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-bin-release.zip &gt;&gt; 
apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-bin-release.zip.sha512</span>
+</code></pre>
+<p>You should generate something like this:</p>
+<pre><code>b8f13d1df6d6c9a1facc72fafc00b2d22bea1e600517c507467d8fca2f776a7a3877101742da53114bfa629ca5b941eb4d9ef989de43f0833e2a794e7ccf5c8a
 *apache-dubbo-spring-boot-project-incubating-2.7.0-bin-release.zip
+</code></pre>
+<p>Note there is a <code>*</code> sign before the file name.</p>
+</li>
+<li>
+<p>If the binary release is accompanied with the source release. Run the 
following command in the dubbo-distribution module:</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn install</span>
+</code></pre>
+<p>Go to target directory, copy bin-release.zip and bin-release.zip.asc to svn 
local repository dubbo/${release_version}, and refer to step 6 to generate 
sha512 sign.</p>
+</li>
+<li>
+<p>Commit to Apache svn</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> svn status</span>
+<span class="hljs-meta">$</span><span class="bash"> svn commit -m <span 
class="hljs-string">'prepare for ${release_version} RC1'</span></span>
+</code></pre>
+</li>
+</ol>
+<h2>Verify Release Candidates</h2>
+<p><strong>A full check list can be found <a 
href="https://wiki.apache.org/incubator/IncubatorReleaseChecklist";>here</a></strong></p>
+<p>The verification link includes but is not limited to the following contents 
and forms:</p>
+<h3>Check signatures and hashes are good</h3>
+<h4>check the sha512 sum</h4>
+<pre><code class="language-sh">$ shasum -c apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-<span 
class="hljs-built_in">source</span>-release.zip.sha512
+$ shasum -c apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-bin-release.zip.sha512
+</code></pre>
+<h4>check the gpg signarure</h4>
+<p>If it's your first time verify a release candidte, you should import public 
keys first.</p>
+<pre><code class="language-sh"> $ curl 
https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS &gt;&gt; KEYS <span 
class="hljs-comment"># download public keys to local directory</span>
+ $ gpg --import KEYS <span class="hljs-comment"># import keys</span>
+ $ gpg —edit-key liujun
+   &gt; trust <span class="hljs-comment"># type trust command</span>
+</code></pre>
+<p>Now, you can verify signature with command</p>
+<pre><code class="language-sh">gpg --verify 
apache-dubbo-incubating-2.6.3-source-release.zip.asc 
apache-dubbo-incubating-2.6.3-source-release.zip
+gpg --verify apache-dubbo-incubating-2.6.3-bin-release.zip.asc 
apache-dubbo-incubating-2.6.3-bin-release.zip
+</code></pre>
+<h3>Check source release file content</h3>
+<p>Unzip apache-dubbo-incubating-${release_version}-source-release.zip to the 
default directory and check the following:</p>
+<ul>
+<li>Directory with 'incubating' in name
+<code>apache-dubbo-incubating-${release_version}-source-release</code></li>
+<li>DISCLAIMER exists</li>
+<li>LICENSE and NOTICE exists and contents are good</li>
+<li>All files and no binary files exist</li>
+<li>All files has standard ASF License header</li>
+<li>Can compile from source</li>
+<li>All unit tests can pass<pre><code class="language-sh">mvn clean <span 
class="hljs-built_in">test</span> <span class="hljs-comment"># This will run 
all unit tests</span>
+<span class="hljs-comment"># you can also open rat and style plugin to check 
if every file meets requirements.</span>
+mvn clean <span class="hljs-built_in">test</span> -Drat.skip=<span 
class="hljs-literal">false</span> -Dcheckstyle.skip=<span 
class="hljs-literal">false</span>
+</code></pre>
+</li>
+<li>Release candidates match with corresponding tags, you can find tag link 
and hash in vote email.
+<ul>
+<li>check the version number in pom.xml are the same</li>
+<li>check there are no extra files or directories in the source package, for 
example, no empty directories or useless log files.<br>
+<code>diff -r rc_dir tag_dir</code></li>
+<li>check the top n tag commits, dive into the related files and check if the 
source package has the same changes</li>
+</ul>
+</li>
+</ul>
+<h3>Check binary distribution file content</h3>
+<p>Unzip apache-dubbo-incubating-${release_version}-bin-release.zip and 
check:</p>
+<ul>
+<li>Check signatures are good</li>
+<li>'incubating' in name</li>
+<li>LICENSE and NOTICE exists and contents are good</li>
+</ul>
+<p>Note that if the binary distribution contains third party files, you may 
need to update LICENSE file by adding the 3rd party license files. If these 
dependency is Apache License 2.0, and it contains NOTICE file, you may also 
need to update NOTICE file as well.</p>
+<h2>Release vote</h2>
+<p>The voting is divided into two phases:</p>
+<ol>
+<li>Dubbo community votes and sends the voting email to <a 
href="mailto:d...@dubbo.apache.org";>d...@dubbo.apache.org</a>. After reviewing 
by community developers and winning 3 binding tickets that agree to release, 
you can go to the next stage of voting.</li>
+<li>Apache community votes and sends the voting email to <a 
href="mailto:gene...@incubator.apache.org";>gene...@incubator.apache.org</a>. 
After reviewing by Apache IPMC(Incubator PMC) members and winning 3 binding 
votes that agree to release, you will be allowed to release officially.</li>
+</ol>
+<p>The mail template for Apache Dubbo vote:</p>
+<pre><code class="language-tex">Hello Dubbo Community,
+
+This is a call for vote to release Apache Dubbo (Incubating) version 2.6.2.
+
+The release candidates:
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.2/
+
+Git tag for the release:
+https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.2
+
+Hash for the release tag:
+afab04c53edab38d52275d2a198ea1aff7a4f41e
+
+Release Notes:
+https://github.com/apache/incubator-dubbo/releases/tag/untagged-4775c0a22c60fca55118
+
+The artifacts have been signed with Key : 28681CB1, which can be found in the 
keys file:
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS
+
+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
+
+Thanks,
+The Apache Dubbo (Incubating) Team
+</code></pre>
+<p>The mail template for Apache Incubator vote:</p>
+<pre><code class="language-text">Hello all,
+
+This is a call for vote to release Apache Dubbo (Incubating) version 2.6.4.
+
+The Apache Dubbo community has voted on and approved a proposal to release
+Apache Dubbo (Incubating) version 2.6.4.
+
+We now kindly request the Incubator PMC members review and vote on this
+incubator release.
+
+Apache Dubbo™ (incubating) is a high-performance, java based, open source
+RPC framework. Dubbo offers three key functionalities, which include
+interface based remote call, fault tolerance &amp; load balancing, and
+automatic service registration &amp; discovery.
+
+Dubbo community vote and result thread:
+https://lists.apache.org/thread.html/8d5c39eece6288beed2e22ca976350728c571d2a9cef1c9a9e56a409@%3Cdev.dubbo.apache.org%3E
+A minor issue also can be found in the above thread.
+
+The release candidates (RC1):
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4
+
+Git tag for the release (RC1):
+https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.4
+
+Hash for the release tag:
+88037747a3b69d3225c73f6fbcda36ebd8435887
+
+Release Notes:
+*https://github.com/apache/incubator-dubbo/blob/dubbo-2.6.4/CHANGES.md
+&lt;https://github.com/apache/incubator-dubbo/blob/dubbo-2.6.4/CHANGES.md&gt;*
+
+The artifacts have been signed with Key : 7955FB6D1DD21CF7, which can be
+found in the keys file:
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS
+
+Look at here for how to verify this release candidate:
+https://github.com/apache/incubator-dubbo-website/blob/asf-site/blog/en-us/prepare-an-apache-release.md#prepare-apache-release
+
+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
+
+Thanks,
+The Apache Dubbo (Incubating) Team
+</code></pre>
+<p>The mail template to announce the vote result:</p>
+<pre><code class="language-text">We’ve received 3 +1 binding votes and one +1 
non-binding vote:
+
++1 binding, Ian Luo
++1 binding, Huxing Zhang
++1 binding, Jun Liu
+
++1 non-binding, Jerrick
+
+I will create a new vote thread in Apache community now.
+
+Best regards,
+The Apache Dubbo (Incubating) Team
+</code></pre>
+<h2>Official Release</h2>
+<p>When the release vote has passed,</p>
+<ol>
+<li>Add the release files to <a 
href="https://dist.apache.org/repos/dist/release/incubator/dubbo";>official 
release directory</a></li>
+<li>Remove the release files in <a 
href="https://dist.apache.org/repos/dist/dev/incubator/dubbo";>dev 
directory</a></li>
+<li>Remove the the release file for the previous release under <a 
href="https://dist.apache.org/repos/dist/release/incubator/dubbo/";>official 
release directory</a>, which will be archived and can be found <a 
href="https://archive.apache.org/dist/incubator/dubbo/";>here</a></li>
+<li>Publish <a 
href="https://github.com/apache/incubator-dubbo/releases";>release notes</a> on 
Github.</li>
+<li>Update the recommend dependency on <a 
href="https://github.com/apache/incubator-dubbo#maven-dependency";>Github</a> to 
the latest version, also update the version in other place if necessary.</li>
+<li>Add the download link to official website <a 
href="http://dubbo.apache.org/en-us/blog/download.html";>http://dubbo.apache.org/en-us/blog/download.html</a>,
 using the ASF mirror system. The latest release download link should be 
something like <a 
href="https://www.apache.org/dyn/closer.cgi?path=incubator/dubbo/$VERSION/apache-dubbo-incubating-$VERSION-source-release.zip";>this</a>.
 The download link for the previous release version should be changed like <a 
href="https://archive.apache. [...]
+<li>Make sure all the commits in the release branch are merged into master 
branch, and then remove the remote release branch. For example: <code>git push 
origin --delete 2.7.0-release</code></li>
+<li>Send mail to <a 
href="mailto:d...@dubbo.apache.org";>d...@dubbo.apache.org</a> and <a 
href="mailto:gene...@incubator.apache.org";>gene...@incubator.apache.org</a>, 
notify the community that the release is completed.</li>
+</ol>
+<h2>Complete Maven Convenient Binary release</h2>
+<p><strong><a href="https://repository.apache.org/";>repository.apache.org</a> 
The permissions of the nexus repository have been applied, see <a 
href="https://issues.apache.org/jira/browse/INFRA-16451";>jira</a>。</strong></p>
+<p>To release the maven artifacts, go to <a 
href="https://repository.apache.org";>repository.apache.org</a>, and choose the 
staging repository, click the release button. Wait for a moment and verify it 
at <a 
href="https://repository.apache.org/content/repositories/releases/org/apache/dubbo/";>here</a>,
 make sure your artifacts are there and correct. It will take some time to sync 
to maven central repository. You can verify it at <a 
href="https://repo.maven.apache.org/maven2/org/apache/dubb [...]
+<h2>FAQ</h2>
+<h4>gpg: signing failed: Inappropriate ioctl for device</h4>
+<p>If you've encoutered this error, try the following commands:</p>
+<pre><code>export GPG_TTY=$(tty)
+</code></pre>
 </div></section><footer class="footer-container"><div class="footer-body"><img 
src="/img/dubbo_gray.png"/><img class="apache" src="/img/apache_logo.png"/><div 
class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache 
Dubbo is an effort undergoing incubation at The Apache Software Foundation 
(ASF), sponsored by the Incubator. Incubation is required of all newly accepted 
projects until a further review indicates that the infrastructure, 
communications, and decision making [...]
        <script 
src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js";></script>
        <script 
src="https://f.alicdn.com/react/15.4.1/react-dom.min.js";></script>
diff --git a/en-us/docs/developers/committer-guide/release-guide_dev.json 
b/en-us/docs/developers/committer-guide/release-guide_dev.json
index 2597506..19424dc 100644
--- a/en-us/docs/developers/committer-guide/release-guide_dev.json
+++ b/en-us/docs/developers/committer-guide/release-guide_dev.json
@@ -1,6 +1,9 @@
 {
   "filename": "release-guide_dev.md",
-  "__html": "<h1>Release Guide</h1>\n<p>Please refer to this excellent <a 
href=\"http://dubbo.apache.org/en-us/blog/prepare-an-apache-release.html\";>blog</a></p>\n",
+  "__html": "<h2>Release Guide</h2>\n<p>In general, Source Release is the key 
and the required content of Apache. But Binary Release is optional, Dubbo can 
choose whether to release binary packages to the Apache repository or to the 
Maven central repository.</p>\n<p>Please refer to the following links for more 
information on ASF's release guide:</p>\n<ul>\n<li><a 
href=\"http://www.apache.org/dev/release-publishing\";>Apache Release 
Guide</a></li>\n<li><a href=\"http://www.apache.org/dev/r [...]
   "link": "/en-us/docs/developers/committer-guide/release-guide_dev.html",
-  "meta": {}
+  "meta": {
+    "title": "Release Guide",
+    "keywords": "Dubbo, Apache, Release"
+  }
 }
\ No newline at end of file
diff --git a/en-us/docs/developers/developers_dev.html 
b/en-us/docs/developers/developers_dev.html
index 227e4ed..45575cb 100644
--- a/en-us/docs/developers/developers_dev.html
+++ b/en-us/docs/developers/developers_dev.html
@@ -156,20 +156,20 @@
 <td>hyunkun</td>
 <td>YunKun Huang</td>
 <td>Meituan-Dianping</td>
-<td>Committer</td>
-<td>+8</td>
-</tr>
-<tr>
-<td>kimmking</td>
-<td>Kimm King</td>
-<td>Rongguan</td>
-<td>Committer</td>
+<td>PPMC</td>
 <td>+8</td>
 </tr>
 <tr>
 <td>min</td>
 <td>Minxuan Zhuang</td>
 <td>Alibaba</td>
+<td>PPMC</td>
+<td>+8</td>
+</tr>
+<tr>
+<td>kimmking</td>
+<td>Kimm King</td>
+<td>Rongguan</td>
 <td>Committer</td>
 <td>+8</td>
 </tr>
@@ -243,6 +243,13 @@
 <td>Committer</td>
 <td>+8</td>
 </tr>
+<tr>
+<td>crazyhzm</td>
+<td>Zhongming Hua</td>
+<td>iFlytek</td>
+<td>Committer</td>
+<td>+8</td>
+</tr>
 </tbody>
 </table>
 <h3>Contributors</h3>
@@ -280,6 +287,12 @@
 <td></td>
 <td>+8</td>
 </tr>
+<tr>
+<td>caojiele</td>
+<td><a href="https://github.com/caojiele";>https://github.com/caojiele</a></td>
+<td></td>
+<td>+8</td>
+</tr>
 </tbody>
 </table>
 </div></section><footer class="footer-container"><div class="footer-body"><img 
src="/img/dubbo_gray.png"/><img class="apache" src="/img/apache_logo.png"/><div 
class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache 
Dubbo is an effort undergoing incubation at The Apache Software Foundation 
(ASF), sponsored by the Incubator. Incubation is required of all newly accepted 
projects until a further review indicates that the infrastructure, 
communications, and decision making [...]
diff --git a/en-us/docs/developers/developers_dev.json 
b/en-us/docs/developers/developers_dev.json
index b2423c6..81baf40 100644
--- a/en-us/docs/developers/developers_dev.json
+++ b/en-us/docs/developers/developers_dev.json
@@ -1,6 +1,6 @@
 {
   "filename": "developers_dev.md",
-  "__html": "<h2>Developers</h2>\n<p>This page shows Dubbo developers. Please 
file PR to add or change 
items.</p>\n<h3>Committers</h3>\n<table>\n<thead>\n<tr>\n<th>Apache 
ID</th>\n<th>Name</th>\n<th>Organization</th>\n<th>Role</th>\n<th>TimeZone</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>jmclean</td>\n<td>Justin
 
Mclean</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+11</td>\n</tr>\n<tr>\n<td>markt</td>\n<td>Mark
 
Thomas</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+0</td>\n</tr>\n<tr>\n<td>wav
 [...]
+  "__html": "<h2>Developers</h2>\n<p>This page shows Dubbo developers. Please 
file PR to add or change 
items.</p>\n<h3>Committers</h3>\n<table>\n<thead>\n<tr>\n<th>Apache 
ID</th>\n<th>Name</th>\n<th>Organization</th>\n<th>Role</th>\n<th>TimeZone</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>jmclean</td>\n<td>Justin
 
Mclean</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+11</td>\n</tr>\n<tr>\n<td>markt</td>\n<td>Mark
 
Thomas</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+0</td>\n</tr>\n<tr>\n<td>wav
 [...]
   "link": "/en-us/docs/developers/developers_dev.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/en-us/index.html b/en-us/index.html
index 3396250..de688e8 100644
--- a/en-us/index.html
+++ b/en-us/index.html
@@ -12,7 +12,7 @@
        <link rel="stylesheet" href="/build/home.css" />
 </head>
 <body>
-       <div id="root"><div class="home-page" data-reactroot=""><section 
class="top-section"><header class="header-container 
header-container-primary"><div class="header-body"><a 
href="/en-us/index.html"><img class="logo" src="/img/dubbo_white.png"/></a><div 
class="search search-primary"><span class="icon-search"></span></div><span 
class="language-switch language-switch-primary">中</span><div 
class="header-menu"><img class="header-menu-toggle" 
src="/img/menu_white.png"/><ul><li class="menu-item  [...]
+       <div id="root"><div class="home-page" data-reactroot=""><section 
class="top-section"><header class="header-container 
header-container-primary"><div class="header-body"><a 
href="/en-us/index.html"><img class="logo" src="/img/dubbo_white.png"/></a><div 
class="search search-primary"><span class="icon-search"></span></div><span 
class="language-switch language-switch-primary">中</span><div 
class="header-menu"><img class="header-menu-toggle" 
src="/img/menu_white.png"/><ul><li class="menu-item  [...]
        <script 
src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js";></script>
        <script 
src="https://f.alicdn.com/react/15.4.1/react-dom.min.js";></script>
        <script>
diff --git a/md_json/docs.json b/md_json/docs.json
index 324d966..b04decf 100644
--- a/md_json/docs.json
+++ b/md_json/docs.json
@@ -313,7 +313,10 @@
     {
       "filename": "release-guide_dev.md",
       "link": "/en-us/docs/developers/committer-guide/release-guide_dev.html",
-      "meta": {}
+      "meta": {
+        "title": "Release Guide",
+        "keywords": "Dubbo, Apache, Release"
+      }
     },
     {
       "filename": "website-guide_dev.md",
@@ -1235,7 +1238,10 @@
     {
       "filename": "release-guide_dev.md",
       "link": "/zh-cn/docs/developers/committer-guide/release-guide_dev.html",
-      "meta": {}
+      "meta": {
+        "title": "版本发布向导",
+        "keywords": "Dubbo, Apache, Release"
+      }
     },
     {
       "filename": "website-guide_dev.md",
diff --git a/src/pages/home/index.scss b/src/pages/home/index.scss
index 496931b..3abc3ac 100644
--- a/src/pages/home/index.scss
+++ b/src/pages/home/index.scss
@@ -131,8 +131,8 @@
     .github-buttons {
       margin-top: 20px;
       a {
-        margin-right: 0px;
-        margin-left: 20px;
+        margin-right: 10px;
+        margin-left: 10px;
         img {
           width: 16px;
           height: 16px;
diff --git a/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.html 
b/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.html
index 2e9f74f..cf83ba5 100644
--- a/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.html
+++ b/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.html
@@ -76,6 +76,9 @@
 <h3>The Apache Way</h3>
 <p>详情请参考 <a href="http://apache.org/foundation/governance/";>wiki</a></p>
 <p>社区重于代码,如果某问题或者方案没有在社区(邮件列表)讨论过,就当没有发生过</p>
+<h3>添加你的名字</h3>
+<p>请访问孵化器<a 
href="https://incubator.apache.org/projects/dubbo.html";>主页</a>将你的名字添加到上面. 
具体可以参考这个<a 
href="http://dubbo.apache.org/zh-cn/docs/developers/committer-guide/apache-dubbo-page_dev.html";>文档</a>.</p>
+<p>请访问Dubbo<a 
href="http://dubbo.apache.org/zh-cn/docs/developers/developers_dev.html";>官方网站</a>将你的名字添加到上面.</p>
 <h3>小福利</h3>
 <p>Jetbrains 给 apache 提交者一个小福利,就是可以免费使用 idea 的全产品系列。具体注册地址为:<a 
href="https://www.jetbrains.com/shop/eform/apache?product=ALL";>https://www.jetbrains.com/shop/eform/apache?product=ALL</a></p>
 <h3>相关 wiki</h3>
diff --git a/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.json 
b/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.json
index c7e8592..bfd6ccb 100644
--- a/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.json
+++ b/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.json
@@ -1,6 +1,6 @@
 {
   "filename": "new-committer-guide_dev.md",
-  "__html": "<h1>Apache 提交者注册流程</h1>\n<h2>一、Apache 
提交者的产生</h2>\n<h3>项目孵化初始化提交者</h3>\n<p>项目孵化阶段,在孵化项目提案中,会有初始化提交者列表这一选项。确认你是初始化提交者的一员。项目在
 apache 孵化器社区投票通过后,提交者可以开始准备注册账户了。可以参看<a 
href=\"https://wiki.apache.org/incubator/\";>孵化器 
wiki</a></p>\n<h3>活跃的贡献者被选举为提交者</h3>\n<p>在后期的开发过程中,活跃的贡献者可以被选举为提交者。见<a 
href=\"https://www.apache.org/dev/new-committers-guide.html#becoming-a-committer\";>如何成为
 committer</a></p>\n<h2>二、个人开发者提交 ICLA</h2>\n<h3>1、选择 apache id</h3>\n<p>在<a 
href=\"http://people.apache.org/ [...]
+  "__html": "<h1>Apache 提交者注册流程</h1>\n<h2>一、Apache 
提交者的产生</h2>\n<h3>项目孵化初始化提交者</h3>\n<p>项目孵化阶段,在孵化项目提案中,会有初始化提交者列表这一选项。确认你是初始化提交者的一员。项目在
 apache 孵化器社区投票通过后,提交者可以开始准备注册账户了。可以参看<a 
href=\"https://wiki.apache.org/incubator/\";>孵化器 
wiki</a></p>\n<h3>活跃的贡献者被选举为提交者</h3>\n<p>在后期的开发过程中,活跃的贡献者可以被选举为提交者。见<a 
href=\"https://www.apache.org/dev/new-committers-guide.html#becoming-a-committer\";>如何成为
 committer</a></p>\n<h2>二、个人开发者提交 ICLA</h2>\n<h3>1、选择 apache id</h3>\n<p>在<a 
href=\"http://people.apache.org/ [...]
   "link": 
"/zh-cn/docs/developers/committer-guide/new-committer-guide_dev.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/zh-cn/docs/developers/committer-guide/release-guide_dev.html 
b/zh-cn/docs/developers/committer-guide/release-guide_dev.html
index 38bae54..64d45fa 100644
--- a/zh-cn/docs/developers/committer-guide/release-guide_dev.html
+++ b/zh-cn/docs/developers/committer-guide/release-guide_dev.html
@@ -4,16 +4,383 @@
 <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="release-guide_dev" />
+       <meta name="keywords" content="Dubbo, Apache, Release" />
        <meta name="description" content="release-guide_dev" />
        <!-- 网页标签标题 -->
-       <title>release-guide_dev</title>
+       <title>版本发布向导</title>
        <link rel="shortcut icon" href="/img/dubbo.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/dubbo_colorful.png"/></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/menu_gray.png"/><ul><li class="menu-item 
menu-item-normal"><a [...]
-<p>请参考这篇博客<a 
href="http://dubbo.apache.org/zh-cn/blog/prepare-an-apache-release.html";>文章</a></p>
+<h2>理解Apache发布的内容和流程</h2>
+<p>总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。</p>
+<p>请参考以下链接,找到更多关于ASF的发布指南:</p>
+<ul>
+<li><a href="http://www.apache.org/dev/release-publishing";>Apache Release 
Guide</a></li>
+<li><a href="http://www.apache.org/dev/release.html";>Apache Release 
Policy</a></li>
+<li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html";>Maven 
Release Info</a></li>
+</ul>
+<h2>本地构建环境准备</h2>
+<p>主要包括签名工具、Maven仓库认证相关准备</p>
+<h3>安装GPG</h3>
+<p>详细文档请参见<a href="https://www.gnupg.org/download/index.html";>这里</a>, Mac 
OS下配置如下</p>
+<pre><code class="language-sh">$ brew install gpg
+$ gpg --version <span class="hljs-comment">#检查版本,应该为2.x</span>
+</code></pre>
+<h3>用gpg生成key</h3>
+<p>根据提示,生成key</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> gpg --full-gen-key</span>
+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: Robert Burrell Donkin
+Email address: rdon...@apache.org
+Comment: CODE SIGNING KEY
+You selected this USER-ID:
+   "Robert Burrell Donkin (CODE SIGNING KEY) &lt;rdon...@apache.org&gt;"
+
+Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
+You need a Passphrase to protect your secret key. # 填入密码,以后打包过程中会经常用到
+</code></pre>
+<h3>查看key id</h3>
+<pre><code class="language-sh">$ gpg --list-keys
+pub   rsa4096/28681CB1 2018-04-26 <span class="hljs-comment"># 28681CB1就是key 
id</span>
+uid       [ultimate] liujun (apache-dubbo) &lt;liu...@apache.org&gt;
+sub   rsa4096/D3D6984B 2018-04-26
+
+<span class="hljs-comment"># 通过key id发送public key到keyserver</span>
+$ gpg --keyserver pgpkeys.mit.edu --send-key 28681CB1
+<span class="hljs-comment"># 
其中,pgpkeys.mit.edu为随意挑选的keyserver,keyserver列表为:https://sks-keyservers.net/status/,为相互之间是自动同步的,选任意一个都可以。</span>
+</code></pre>
+<p>如果有多个public key,设置默认key。修改<code>~/.gnupg/gpg.conf</code></p>
+<pre><code class="language-sh"><span class="hljs-comment"># If you have more 
than 1 secret key in your keyring, you may want to</span>
+<span class="hljs-comment"># uncomment the following option and set your 
preferred keyid.</span>
+default-key 28681CB1
+</code></pre>
+<p>如果有多个public key, 也可以删除无用的key:</p>
+<pre><code class="language-sh"><span class="hljs-comment">### 
先删除私钥,再删除公钥</span>
+$ gpg --yes --delete-secret-keys shenglic...@gmail.com   <span 
class="hljs-comment">###老的私钥,指明邮箱即可</span>
+$ gpg --delete-keys 1808C6444C781C0AEA0AAD4C4D6A8007D20DB8A4
+</code></pre>
+<blockquote>
+<p>PS: 最新版本经过实测,本地没有gpg.conf这个文件,因此如果在执行过程中遇到签名失败,可以参考这个文章:<a 
href="https://blog.csdn.net/wenbo20182/article/details/72850810";>https://blog.csdn.net/wenbo20182/article/details/72850810</a>
 或 <a 
href="https://d.sb/2016/11/gpg-inappropriate-ioctl-for-device-errors";>https://d.sb/2016/11/gpg-inappropriate-ioctl-for-device-errors</a></p>
+</blockquote>
+<h3>设置Apache中央仓库</h3>
+<p>Dubbo项目的父pom为Apache pom(2.7.0以上版本需要,2.6.x发布版本不需要此操作)</p>
+<pre><code class="language-xml"><span class="hljs-tag">&lt;<span 
class="hljs-name">parent</span>&gt;</span>
+<span class="hljs-tag">&lt;<span 
class="hljs-name">groupId</span>&gt;</span>org.apache<span 
class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
+<span class="hljs-tag">&lt;<span 
class="hljs-name">artifactId</span>&gt;</span>apache<span 
class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
+<span class="hljs-tag">&lt;<span 
class="hljs-name">version</span>&gt;</span>19<span class="hljs-tag">&lt;/<span 
class="hljs-name">version</span>&gt;</span>
+<span class="hljs-tag">&lt;/<span class="hljs-name">parent</span>&gt;</span>
+</code></pre>
+<p>添加以下内容到.m2/settings.xml
+所有密码请使用<a 
href="http://maven.apache.org/guides/mini/guide-encryption.html";>maven-encryption-plugin</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-comment">&lt;!-- To publish a snapshot of some part of 
Maven --&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;!-- 
YOUR 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;!-- 
YOUR APACHE LDAP PASSWORD (encrypted) --&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-comment">&lt;!-- To stage a release of some part of Maven 
--&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;!-- 
YOUR 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;!-- 
YOUR APACHE LDAP PASSWORD (encrypted) --&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-comment">&lt;!-- gpg passphrase used when generate key 
--&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>gpg.passphrase<span 
class="hljs-tag">&lt;/<span class="hljs-name">id</span>&gt;</span>
+     <span class="hljs-tag">&lt;<span 
class="hljs-name">passphrase</span>&gt;</span><span 
class="hljs-comment">&lt;!-- yourKeyPassword --&gt;</span><span 
class="hljs-tag">&lt;/<span class="hljs-name">passphrase</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>
+<h2>打包&amp;上传</h2>
+<h3>准备分支</h3>
+<p>从主干分支拉取新分支作为发布分支,如现在要发布`{release_version}`版本,则从2.6.x拉出新分支`{release_version}-release<code>,此后</code>{release_version}`
 Release 
Candidates涉及的修改及打标签等都在`{release_version}-release`分支进行,最终发布完成后合入主干分支。</p>
+<h3>编译打包</h3>
+<p>首先,在<code>${release_version}-release</code>分支验证maven组件打包、source源码打包、签名等是否都正常工作。<strong>2.6.x记得要使用1.6进行编译打包</strong></p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn clean install -Prelease</span>
+<span class="hljs-meta">$</span><span class="bash"> mvn deploy</span>
+</code></pre>
+<p>上述命令将snapshot包推送到maven中央仓库</p>
+<h3>用maven-release-plugin发布</h3>
+<p>先用dryRun验证是否ok</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn release:prepare -Prelease -Darguments=<span 
class="hljs-string">"-DskipTests"</span> -DautoVersionSubmodules=<span 
class="hljs-literal">true</span> -Dusername=YOUR GITHUB ID-DdryRun=<span 
class="hljs-literal">true</span></span>
+</code></pre>
+<p>验证通过后,执行release:prepare</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn release:clean</span>
+<span class="hljs-meta">$</span><span class="bash"> mvn release:prepare 
-Prelease -Darguments=<span class="hljs-string">"-DskipTests"</span> 
-DautoVersionSubmodules=<span class="hljs-literal">true</span> -Dusername=YOUR 
GITHUB ID -DpushChanges=<span class="hljs-literal">false</span></span>
+</code></pre>
+<blockquote>
+<p>执行release插件时,如果指定了<code>-DpushChanges=true</code>, 
插件会自动提交到远端的GitHub仓库中,此时就需要输入GitHub的密码,注意不是输入web页面的登录密码,而是一个<code>Personal 
access tokens</code>,获取方式详见<a 
href="https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line";>这里</a></p>
+</blockquote>
+<p>执行完上述步骤后,你会发现:</p>
+<ol>
+<li><code>source-release.zip</code> 和 
<code>bin-release.zip</code>包已经生成在<code>dubbo-distribution</code>目录下,请解压并检查文件是否完整</li>
+<li>本地已经打出相应的tag,同时新增一个commit,名叫<code>[maven-release-plugin] prepare release 
dubbo-x.x.x</code></li>
+<li>分支版本自动升级为<code>${release_version+1}-SNAPSHOT</code>,同时新增一个commit,名叫<code>[[maven-release-plugin]
 prepare for next development iteration</code></li>
+</ol>
+<blockquote>
+<p>如果指定了<code>-DpushChanges=true</code>, 
则本地提交会自动推送到远端的GitHub仓库。根据经验,建议不要指定为true,请设置为false,待本地检查通过之后再手动提交</p>
+</blockquote>
+<p>执行release:perform,做staging发布</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> mvn -Prelease release:perform -Darguments=<span 
class="hljs-string">"-DskipTests"</span> -DautoVersionSubmodules=<span 
class="hljs-literal">true</span> -Dusername=YOUR GITHUB ID</span>
+</code></pre>
+<p>此时插件会自动下载远端的tag对应的源码,编译后,将所有Artifacts发布到配置的远程<a 
href="http://repository.apache.org";>maven仓库</a>,处于staging状态。</p>
+<h4>注意点</h4>
+<ul>
+<li>在deploy执行过程中,有可能因为网络等原因被中断,如果是这样,可以重新开始执行。</li>
+<li>deploy执行到maven仓库的时候,请确认下包的总量是否正确。多次出现了包丢失的情况,特别是dubbo-parent包。</li>
+</ul>
+<h2>准备Apache发布</h2>
+<ol>
+<li>
+<p>准备svn本机环境(Apache使用svn托管项目的发布内容)</p>
+</li>
+<li>
+<p>将dubbo checkout到本地目录</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> svn checkout 
https://dist.apache.org/repos/dist/dev/incubator/dubbo</span>
+<span class="hljs-meta">#</span><span class="bash"> 假定本地目录为 
~/apache/incubator/dubbo</span>
+</code></pre>
+</li>
+<li>
+<p>当前发布版本为${release_version},新建目录</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> <span class="hljs-built_in">cd</span> ~/apache/incubator/dubbo 
<span class="hljs-comment"># dubbo svn根目录</span></span>
+<span class="hljs-meta">$</span><span class="bash"> mkdir <span 
class="hljs-variable">${release_version}</span></span>
+</code></pre>
+</li>
+<li>
+<p>添加public key到<a 
href="https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS";>KEYS</a>文件并提交到SVN仓库(第一次做发布的人需要做这个操作,具体操作参考KEYS文件里的说明)。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性</p>
+<pre><code class="language-sh">$ gpg -a --<span 
class="hljs-built_in">export</span> your_key_id &gt;&gt; KEYS
+</code></pre>
+</li>
+<li>
+<p>拷贝<code>distribution/target</code>下的source相关的包到svn本地仓库<code>dubbo/${release_version}</code></p>
+</li>
+<li>
+<p>生成sha512签名</p>
+<p>针对<code>source-release.zip</code></p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> shasum -a 512 apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-<span 
class="hljs-built_in">source</span>-release.zip &gt;&gt; 
apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-<span 
class="hljs-built_in">source</span>-release.zip.sha512</span>
+</code></pre>
+<p>针对<code>bin-release.zip</code>,需要增加<code>-b</code>参数,表明是一个二进制文件</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> shasum -b -a 512 apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-bin-release.zip &gt;&gt; 
apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-bin-release.zip.sha512</span>
+</code></pre>
+</li>
+<li>
+<p>如果有binary release要同时发布</p>
+<p>在<code>distribution/target</code>目录下,拷贝<code>bin-release.zip</code>以及<code>bin-release.zip.asc</code>到svn本地仓库<code>dubbo/${release_version}</code>,参考第6步,生成sha512签名。</p>
+</li>
+<li>
+<p>提交到Apache svn</p>
+<pre><code class="language-shell"><span class="hljs-meta">$</span><span 
class="bash"> svn status</span>
+<span class="hljs-meta">$</span><span class="bash"> svn commit -m <span 
class="hljs-string">'prepare for ${release_version} RC1'</span></span>
+</code></pre>
+</li>
+</ol>
+<h2>验证Release Candidates</h2>
+<p>详细的检查列表请参考官方的<a 
href="https://wiki.apache.org/incubator/IncubatorReleaseChecklist";>check 
list</a></p>
+<p>首先,从一下地址下载要发布的Release Candidate到本地环境:</p>
+<pre>
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/${release_version}/
+</pre>
+<p>然后,开始验证环节,验证包含但不限于以下内容和形式</p>
+<h3>检查签名和hash等信息</h3>
+<h4>检查sha512哈希</h4>
+<pre><code class="language-sh">$ shasum -c apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-<span 
class="hljs-built_in">source</span>-release.zip.sha512
+$ shasum -c apache-dubbo-incubating-<span 
class="hljs-variable">${release_version}</span>-bin-release.zip.sha512
+</code></pre>
+<h4>检查gpg签名</h4>
+<p>如果是第一次检查,需要首先导入公钥。</p>
+<pre><code class="language-sh"> $ curl 
https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS &gt;&gt; KEYS <span 
class="hljs-comment"># download public keys to local directory</span>
+ $ gpg --import KEYS <span class="hljs-comment"># import keys</span>
+ $ gpg —edit-key liujun
+   &gt; trust <span class="hljs-comment"># type trust command</span>
+</code></pre>
+<p>然后使用如下命令检查签名</p>
+<pre><code class="language-sh">gpg --verify 
apache-dubbo-incubating-2.6.3-source-release.zip.asc 
apache-dubbo-incubating-2.6.3-source-release.zip
+gpg --verify apache-dubbo-incubating-2.6.3-bin-release.zip.asc 
apache-dubbo-incubating-2.6.3-bin-release.zip
+</code></pre>
+<h3>检查源码包的文件内容</h3>
+<p>解压缩<code>apache-dubbo-incubating-${release_version}-source-release.zip</code>,进行如下检查:</p>
+<ul>
+<li>Directory with 'incubating' in name
+<code>apache-dubbo-incubating-${release_version}-source-release</code></li>
+<li>DISCLAIMER exists</li>
+<li>LICENSE and NOTICE exists and contents are good</li>
+<li>All files and no binary files exist</li>
+<li>All files has standard ASF License header</li>
+<li>Can compile from source</li>
+<li>All unit tests can pass<pre><code class="language-sh">mvn clean <span 
class="hljs-built_in">test</span> <span class="hljs-comment"># This will run 
all unit tests</span>
+<span class="hljs-comment"># you can also open rat and style plugin to check 
if every file meets requirements.</span>
+mvn clean <span class="hljs-built_in">test</span> -Drat.skip=<span 
class="hljs-literal">false</span> -Dcheckstyle.skip=<span 
class="hljs-literal">false</span>
+</code></pre>
+</li>
+<li>Release candidates match with corresponding tags, you can find tag link 
and hash in vote email.
+<ul>
+<li>check the version number in pom.xml are the same</li>
+<li>check there are no extra files or directories in the source package, for 
example, no empty directories or useless log files.<br>
+<code>diff -r a rc_dir tag_dir</code></li>
+<li>check the top n tag commits, dive into the related files and check if the 
source package has the same changes</li>
+</ul>
+</li>
+</ul>
+<h3>检查二进制包的文件内容C</h3>
+<p>解压缩<code>apache-dubbo-incubating-${release_version}-bin-release.zip</code>,进行如下检查:</p>
+<ul>
+<li>Check signatures are good</li>
+<li>'incubating' in name</li>
+<li>LICENSE and NOTICE exists and contents are good</li>
+</ul>
+<p>注意,如果二进制包里面引入了第三方依赖,则需要更新LICENSE,加入第三方依赖的LICENSE,如果第三方依赖的LICENSE是Apache 
2.0,并且对应的项目中包含了NOTICE,还需要更新NOTICE文件</p>
+<h2>进入投票</h2>
+<p>投票分两个阶段:</p>
+<ol>
+<li>Dubbo社区投票,发起投票邮件到d...@dubbo.apache.org。在社区开发者Review,经过至少72小时并统计到3个同意发版的binding票后(只有PPMC的票才是binding),即可进入下一阶段的投票。</li>
+<li>Apache社区投票,发起投票邮件到gene...@incubator.apache.org。经过至少72小时并统计到3个同意发版的binding票后(只有IPMC
 Member的票才是binding),即可进行正式发布。</li>
+</ol>
+<p>Dubbo社区投票邮件模板:</p>
+<pre><code class="language-text">Hello Dubbo Community,
+
+This is a call for vote to release Apache Dubbo (Incubating) version 2.6.2.
+
+The release candidates:
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.2/
+
+Git tag for the release:
+https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.2
+
+Hash for the release tag:
+afab04c53edab38d52275d2a198ea1aff7a4f41e
+
+Release Notes:
+https://github.com/apache/incubator-dubbo/releases/tag/untagged-4775c0a22c60fca55118
+
+The artifacts have been signed with Key : 28681CB1, which can be found in the 
keys file:
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS
+
+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
+
+Thanks,
+The Apache Dubbo (Incubating) Team
+</code></pre>
+<p>Apache社区投票邮件模板:</p>
+<pre><code class="language-text">Hello all,
+
+This is a call for vote to release Apache Dubbo (Incubating) version 2.6.4.
+
+The Apache Dubbo community has voted on and approved a proposal to release
+Apache Dubbo (Incubating) version 2.6.4.
+
+We now kindly request the Incubator PMC members review and vote on this
+incubator release.
+
+Apache Dubbo™ (incubating) is a high-performance, java based, open source
+RPC framework. Dubbo offers three key functionalities, which include
+interface based remote call, fault tolerance &amp; load balancing, and
+automatic service registration &amp; discovery.
+
+Dubbo community vote and result thread:
+https://lists.apache.org/thread.html/8d5c39eece6288beed2e22ca976350728c571d2a9cef1c9a9e56a409@%3Cdev.dubbo.apache.org%3E
+A minor issue also can be found in the above thread.
+
+The release candidates (RC1):
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4
+
+Git tag for the release (RC1):
+https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.4
+
+Hash for the release tag:
+88037747a3b69d3225c73f6fbcda36ebd8435887
+
+Release Notes:
+*https://github.com/apache/incubator-dubbo/blob/dubbo-2.6.4/CHANGES.md
+&lt;https://github.com/apache/incubator-dubbo/blob/dubbo-2.6.4/CHANGES.md&gt;*
+
+The artifacts have been signed with Key : 7955FB6D1DD21CF7, which can be
+found in the keys file:
+https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYS
+
+Look at here for how to verify this release candidate:
+https://github.com/apache/incubator-dubbo-website/blob/asf-site/blog/en-us/prepare-an-apache-release.md#prepare-apache-release
+
+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
+
+Thanks,
+The Apache Dubbo (Incubating) Team
+</code></pre>
+<p>宣布投票结果模板:</p>
+<pre><code class="language-text">We’ve received 3 +1 binding votes and one +1 
non-binding vote:
+
++1 binding, Ian Luo
++1 binding, Huxing Zhang
++1 binding, Jun Liu
+
++1 non-binding, Jerrick
+
+I will create a new vote thread in Apache community now.
+
+Best regards,
+The Apache Dubbo (Incubating) Team
+</code></pre>
+<h2>正式发布</h2>
+<ol>
+<li>将<a 
href="https://dist.apache.org/repos/dist/dev/incubator/dubbo";>dev</a>目录下的发布包添加到<a
 
href="https://dist.apache.org/repos/dist/release/incubator/dubbo";>release</a>目录下,KEYS有更新的,也需要同步更新。</li>
+<li>删除<a 
href="https://dist.apache.org/repos/dist/dev/incubator/dubbo";>dev</a>目录下的发布包</li>
+<li>删除<a 
href="https://dist.apache.org/repos/dist/release/incubator/dubbo";>release</a>目录下上一个版本的发布包,这些包会被自动保存在<a
 href="https://archive.apache.org/dist/incubator/dubbo";>这里</a></li>
+<li>发布GitHub上的<a 
href="https://github.com/apache/incubator-dubbo/releases";>release notes</a></li>
+<li>修改GitHub的Readme文件,将版本号更新到最新发布的版本</li>
+<li>在官网下载<a 
href="http://dubbo.apache.org/en-us/blog/download.html";>页面</a>上添加最新版本的下载链接。最新的下载链接应该类似<a
 
href="https://www.apache.org/dyn/closer.cgi?path=incubator/dubbo/$VERSION/apache-dubbo-incubating-$VERSION-source-release.zip";>这样</a>.
 同时更新以前版本的下载链接,改为类似<a 
href="https://archive.apache.org/dist/incubator/dubbo/$VERSION/apache-dubbo-incubating-$VERSION-bin-release.zip";>这样</a>.
 具体可以参考过往的<a 
href="https://github.com/apache/incubator-dubbo-website/blob/asf-site/blog/en-us/download.md";>下载链接</a></li>
+<li>合并<code>${release-version}-release</code>分支到对应的主干分支, 然后删除相应的release分支,例如: 
<code>git push origin --delete 2.7.0-release</code></li>
+<li>发邮件到 <code>d...@dubbo.apache.org</code> 和 
<code>gene...@incubator.apache.org</code>,通知社区发布完成。</li>
+</ol>
+<h2>完成Maven Convenient Binary发布(可选)</h2>
+<p><strong><a 
href="http://repository.apache.org";>repository.apache.org</a></strong> 
nexus仓库的权限已经申请,参见<a 
href="https://issues.apache.org/jira/browse/INFRA-16451";>jira</a></p>
+<p>发布jar包到maven仓库,首先访问<a 
href="https://repository.apache.org";>repository.apache.org</a>, 选择<code>staging 
repository</code>, 点击<code>release</code>按钮。等待一段时间之后,在<a 
href="https://repository.apache.org/content/repositories/releases/org/apache/dubbo/";>这里</a>确认完整性和正确性.
 发布到Maven中央仓库则还需要等待一段时间。可以在<a 
href="https://repo.maven.apache.org/maven2/org/apache/dubbo";>这里</a>进行确认。</p>
+<h2>FAQ</h2>
+<h4>gpg: signing failed: Inappropriate ioctl for device</h4>
+<p>If you've encoutered this error, try the following commands:</p>
+<pre><code>export GPG_TTY=$(tty)
+</code></pre>
 </div></section><footer class="footer-container"><div class="footer-body"><img 
src="/img/dubbo_gray.png"/><img class="apache" src="/img/apache_logo.png"/><div 
class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache 
Dubbo is an effort undergoing incubation at The Apache Software Foundation 
(ASF), sponsored by the Incubator. Incubation is required of all newly accepted 
projects until a further review indicates that the infrastructure, 
communications, and decision making [...]
        <script 
src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js";></script>
        <script 
src="https://f.alicdn.com/react/15.4.1/react-dom.min.js";></script>
diff --git a/zh-cn/docs/developers/committer-guide/release-guide_dev.json 
b/zh-cn/docs/developers/committer-guide/release-guide_dev.json
index a19c0bf..1de81d4 100644
--- a/zh-cn/docs/developers/committer-guide/release-guide_dev.json
+++ b/zh-cn/docs/developers/committer-guide/release-guide_dev.json
@@ -1,6 +1,9 @@
 {
   "filename": "release-guide_dev.md",
-  "__html": "<h1>版本发布向导</h1>\n<p>请参考这篇博客<a 
href=\"http://dubbo.apache.org/zh-cn/blog/prepare-an-apache-release.html\";>文章</a></p>\n",
+  "__html": "<h1>版本发布向导</h1>\n<h2>理解Apache发布的内容和流程</h2>\n<p>总的来说,Source 
Release是Apache关注的重点,也是发布的必须内容;而Binary 
Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。</p>\n<p>请参考以下链接,找到更多关于ASF的发布指南:</p>\n<ul>\n<li><a
 href=\"http://www.apache.org/dev/release-publishing\";>Apache Release 
Guide</a></li>\n<li><a href=\"http://www.apache.org/dev/release.html\";>Apache 
Release Policy</a></li>\n<li><a 
href=\"http://www.apache.org/dev/publishing-maven-artifacts.html\";>Maven 
Release Info</a></li>\n</u [...]
   "link": "/zh-cn/docs/developers/committer-guide/release-guide_dev.html",
-  "meta": {}
+  "meta": {
+    "title": "版本发布向导",
+    "keywords": "Dubbo, Apache, Release"
+  }
 }
\ No newline at end of file
diff --git a/zh-cn/docs/developers/developers_dev.html 
b/zh-cn/docs/developers/developers_dev.html
index 00ab76e..cee5535 100644
--- a/zh-cn/docs/developers/developers_dev.html
+++ b/zh-cn/docs/developers/developers_dev.html
@@ -19,10 +19,10 @@
 <thead>
 <tr>
 <th>Apache ID</th>
-<th>姓名</th>
-<th>组织</th>
-<th>角色</th>
-<th>时区</th>
+<th>Name</th>
+<th>Organization</th>
+<th>Role</th>
+<th>TimeZone</th>
 </tr>
 </thead>
 <tbody>
@@ -156,20 +156,20 @@
 <td>hyunkun</td>
 <td>YunKun Huang</td>
 <td>Meituan-Dianping</td>
-<td>Committer</td>
-<td>+8</td>
-</tr>
-<tr>
-<td>kimmking</td>
-<td>Kimm King</td>
-<td>Rongguan</td>
-<td>Committer</td>
+<td>PPMC</td>
 <td>+8</td>
 </tr>
 <tr>
 <td>min</td>
 <td>Minxuan Zhuang</td>
 <td>Alibaba</td>
+<td>PPMC</td>
+<td>+8</td>
+</tr>
+<tr>
+<td>kimmking</td>
+<td>Kimm King</td>
+<td>Rongguan</td>
 <td>Committer</td>
 <td>+8</td>
 </tr>
@@ -243,6 +243,13 @@
 <td>Committer</td>
 <td>+8</td>
 </tr>
+<tr>
+<td>crazyhzm</td>
+<td>Zhongming Hua</td>
+<td>iFlytek</td>
+<td>Committer</td>
+<td>+8</td>
+</tr>
 </tbody>
 </table>
 <h3>贡献者</h3>
@@ -280,6 +287,12 @@
 <td></td>
 <td>+8</td>
 </tr>
+<tr>
+<td>caojiele</td>
+<td><a href="https://github.com/caojiele";>https://github.com/caojiele</a></td>
+<td></td>
+<td>+8</td>
+</tr>
 </tbody>
 </table>
 </div></section><footer class="footer-container"><div class="footer-body"><img 
src="/img/dubbo_gray.png"/><img class="apache" src="/img/apache_logo.png"/><div 
class="cols-container"><div class="col col-12"><h3>Disclaimer</h3><p>Apache 
Dubbo is an effort undergoing incubation at The Apache Software Foundation 
(ASF), sponsored by the Incubator. Incubation is required of all newly accepted 
projects until a further review indicates that the infrastructure, 
communications, and decision making [...]
diff --git a/zh-cn/docs/developers/developers_dev.json 
b/zh-cn/docs/developers/developers_dev.json
index d3c7ebb..6d0eef3 100644
--- a/zh-cn/docs/developers/developers_dev.json
+++ b/zh-cn/docs/developers/developers_dev.json
@@ -1,6 +1,6 @@
 {
   "filename": "developers_dev.md",
-  "__html": 
"<h2>开发人员</h2>\n<p>本页面展示了Dubbo的开发团队。请通过提交PR的方式把自己的信息添加到列表上。注:排名不分先后</p>\n<h3>提交者</h3>\n<table>\n<thead>\n<tr>\n<th>Apache
 
ID</th>\n<th>姓名</th>\n<th>组织</th>\n<th>角色</th>\n<th>时区</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>jmclean</td>\n<td>Justin
 
Mclean</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+11</td>\n</tr>\n<tr>\n<td>markt</td>\n<td>Mark
 
Thomas</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+0</td>\n</tr>\n<tr>\n<td>wave</td>\n<td>Dave
 Fisher</td>\n<td></td>\n<td>Mentor</td>\ [...]
+  "__html": 
"<h2>开发人员</h2>\n<p>本页面展示了Dubbo的开发团队。请通过提交PR的方式把自己的信息添加到列表上。注:排名不分先后</p>\n<h3>提交者</h3>\n<table>\n<thead>\n<tr>\n<th>Apache
 
ID</th>\n<th>Name</th>\n<th>Organization</th>\n<th>Role</th>\n<th>TimeZone</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>jmclean</td>\n<td>Justin
 
Mclean</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+11</td>\n</tr>\n<tr>\n<td>markt</td>\n<td>Mark
 
Thomas</td>\n<td>Apache</td>\n<td>Mentor</td>\n<td>+0</td>\n</tr>\n<tr>\n<td>wave</td>\n<td>Dave
 Fisher</td>\n<td></t [...]
   "link": "/zh-cn/docs/developers/developers_dev.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/zh-cn/index.html b/zh-cn/index.html
index 40a77a0..74ab1f3 100644
--- a/zh-cn/index.html
+++ b/zh-cn/index.html
@@ -12,7 +12,7 @@
        <link rel="stylesheet" href="/build/home.css" />
 </head>
 <body>
-       <div id="root"><div class="home-page" data-reactroot=""><section 
class="top-section"><header class="header-container 
header-container-primary"><div class="header-body"><a 
href="/zh-cn/index.html"><img class="logo" src="/img/dubbo_white.png"/></a><div 
class="search search-primary"><span class="icon-search"></span></div><span 
class="language-switch language-switch-primary">En</span><div 
class="header-menu"><img class="header-menu-toggle" 
src="/img/menu_white.png"/><ul><li class="menu-item [...]
+       <div id="root"><div class="home-page" data-reactroot=""><section 
class="top-section"><header class="header-container 
header-container-primary"><div class="header-body"><a 
href="/zh-cn/index.html"><img class="logo" src="/img/dubbo_white.png"/></a><div 
class="search search-primary"><span class="icon-search"></span></div><span 
class="language-switch language-switch-primary">En</span><div 
class="header-menu"><img class="header-menu-toggle" 
src="/img/menu_white.png"/><ul><li class="menu-item [...]
        <script 
src="https://f.alicdn.com/react/15.4.1/react-with-addons.min.js";></script>
        <script 
src="https://f.alicdn.com/react/15.4.1/react-dom.min.js";></script>
        <script>

Reply via email to