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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 86240ce  Automated deployment: Fri Dec 11 08:42:42 UTC 2020 
f8d3cc9f9466951f181d5432c55887aafd088262
86240ce is described below

commit 86240ce899e20c457f66eb0bd7d22bfaa1620967
Author: gosonzhang <[email protected]>
AuthorDate: Fri Dec 11 08:42:42 2020 +0000

    Automated deployment: Fri Dec 11 08:42:42 UTC 2020 
f8d3cc9f9466951f181d5432c55887aafd088262
---
 build/blog.js                                      |  6 +-
 build/blogDetail.js                                |  6 +-
 build/community.js                                 |  6 +-
 build/documentation.js                             |  6 +-
 build/home.js                                      |  6 +-
 .../en-us/development/how-to-become-a-committer.md |  2 +-
 .../development/how-to-vote-a-committer-ppmc.md    | 48 +++++++++++++
 .../zh-cn/development/how-to-become-a-committer.md |  4 +-
 .../development/how-to-vote-a-committer-ppmc.md    | 47 +++++++++++++
 .../development/how-to-become-a-committer.html     |  2 +-
 .../development/how-to-become-a-committer.json     |  2 +-
 .../docs/development/how-to-become-a-committer.md  |  2 +-
 ...tter.html => how-to-vote-a-committer-ppmc.html} | 81 ++++++++++++++--------
 .../development/how-to-vote-a-committer-ppmc.json  |  8 +++
 .../development/how-to-vote-a-committer-ppmc.md    | 48 +++++++++++++
 .../development/how-to-become-a-committer.html     |  2 +-
 .../development/how-to-become-a-committer.json     |  2 +-
 .../docs/development/how-to-become-a-committer.md  |  4 +-
 ...tter.html => how-to-vote-a-committer-ppmc.html} | 81 ++++++++++++++--------
 .../development/how-to-vote-a-committer-ppmc.json  |  8 +++
 .../development/how-to-vote-a-committer-ppmc.md    | 47 +++++++++++++
 21 files changed, 333 insertions(+), 85 deletions(-)

diff --git a/build/blog.js b/build/blog.js
index 61d8077..6dc2bb3 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -151,7 +151,7 @@ var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جو
  * LICENSE file in the root directory of this source tree.
  */
 var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,c=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,m=i?Symbol.for("react.forward_ref"):60112,v=i?Symbol.for("react.suspense"):60113,y=i?Symb
 [...]
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
@@ -159,11 +159,11 @@ var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):6010
  * Licensed under MIT License
  */
 !function(o,i){"use strict";var 
a="model",c="name",s="type",l="vendor",u="version",f="mobile",p="tablet",d="smarttv",h={extend:function(e,t){var
 n={};for(var r in 
e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return 
n},has:function(e,t){return"string"==typeof 
e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return 
e.toLowerCase()},major:function(e){/*!
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
  * Copyright © 2012-2019 Faisal Salman <[email protected]>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/build/blogDetail.js b/build/blogDetail.js
index 064c9cd..35a90cd 100644
--- a/build/blogDetail.js
+++ b/build/blogDetail.js
@@ -151,7 +151,7 @@ var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جو
  * LICENSE file in the root directory of this source tree.
  */
 var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,c=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,m=i?Symbol.for("react.forward_ref"):60112,v=i?Symbol.for("react.suspense"):60113,y=i?Symb
 [...]
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
@@ -159,11 +159,11 @@ var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):6010
  * Licensed under MIT License
  */
 !function(o,i){"use strict";var 
a="model",c="name",s="type",l="vendor",u="version",f="mobile",p="tablet",d="smarttv",h={extend:function(e,t){var
 n={};for(var r in 
e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return 
n},has:function(e,t){return"string"==typeof 
e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return 
e.toLowerCase()},major:function(e){/*!
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
  * Copyright © 2012-2019 Faisal Salman <[email protected]>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/build/community.js b/build/community.js
index 55747f0..8e52c9f 100644
--- a/build/community.js
+++ b/build/community.js
@@ -151,7 +151,7 @@ var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جو
  * LICENSE file in the root directory of this source tree.
  */
 var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,c=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,m=i?Symbol.for("react.forward_ref"):60112,v=i?Symbol.for("react.suspense"):60113,y=i?Symb
 [...]
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
@@ -159,11 +159,11 @@ var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):6010
  * Licensed under MIT License
  */
 !function(o,i){"use strict";var 
a="model",c="name",s="type",l="vendor",u="version",f="mobile",p="tablet",d="smarttv",h={extend:function(e,t){var
 n={};for(var r in 
e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return 
n},has:function(e,t){return"string"==typeof 
e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return 
e.toLowerCase()},major:function(e){/*!
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
  * Copyright © 2012-2019 Faisal Salman <[email protected]>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/build/documentation.js b/build/documentation.js
index f255453..4b154fa 100644
--- a/build/documentation.js
+++ b/build/documentation.js
@@ -151,7 +151,7 @@ var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جو
  * LICENSE file in the root directory of this source tree.
  */
 var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,c=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,m=i?Symbol.for("react.forward_ref"):60112,v=i?Symbol.for("react.suspense"):60113,y=i?Symb
 [...]
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
@@ -159,11 +159,11 @@ var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):6010
  * Licensed under MIT License
  */
 !function(o,i){"use strict";var 
a="model",c="name",s="type",l="vendor",u="version",f="mobile",p="tablet",d="smarttv",h={extend:function(e,t){var
 n={};for(var r in 
e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return 
n},has:function(e,t){return"string"==typeof 
e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return 
e.toLowerCase()},major:function(e){/*!
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
  * Copyright © 2012-2019 Faisal Salman <[email protected]>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/build/home.js b/build/home.js
index cbb9a21..7ef28c6 100644
--- a/build/home.js
+++ b/build/home.js
@@ -151,7 +151,7 @@ var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جو
  * LICENSE file in the root directory of this source tree.
  */
 var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,c=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,u=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,m=i?Symbol.for("react.forward_ref"):60112,v=i?Symbol.for("react.suspense"):60113,y=i?Symb
 [...]
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
@@ -159,11 +159,11 @@ var i="function"==typeof 
Symbol&&Symbol.for,a=i?Symbol.for("react.element"):6010
  * Licensed under MIT License
  */
 !function(o,i){"use strict";var 
a="model",c="name",s="type",l="vendor",u="version",f="mobile",p="tablet",d="smarttv",h={extend:function(e,t){var
 n={};for(var r in 
e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return 
n},has:function(e,t){return"string"==typeof 
e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return 
e.toLowerCase()},major:function(e){/*!
- * UAParser.js v0.7.22
+ * UAParser.js v0.7.23
  * Lightweight JavaScript-based User-Agent string parser
  * https://github.com/faisalman/ua-parser-js
  *
  * Copyright © 2012-2019 Faisal Salman <[email protected]>
  * Licensed under MIT License
  */
-return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
+return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 
0},trim:function(e){return 
e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},m={rgx:function(e,t){for(var
 n,r,o,i,a,c,s=0;s<t.length&&!a;){var 
l=t[s],u=t[s+1];for(n=r=0;n<l.length&&!a;)if(a=l[n++].exec(e))for(o=0;o<u.length;o++)c=a[++r],i=u[o],"object"==typeof
 i&&i.length>0?2==i.length?"function"==typeof 
i[1]?this[i[0]]=i[1].call(this,c):this[i[0]]=i[1]:3==i.length?"function"!=typeof
 i[1]||i[1].exec&&i[1].test?this[i [...]
\ No newline at end of file
diff --git a/docs/en-us/development/how-to-become-a-committer.md 
b/docs/en-us/development/how-to-become-a-committer.md
index 9b15b97..df8bc75 100644
--- a/docs/en-us/development/how-to-become-a-committer.md
+++ b/docs/en-us/development/how-to-become-a-committer.md
@@ -2,7 +2,7 @@
 title: How to Become a Committer - Apache TubeMQ
 ---
 
-# 如何成为Apache TubeMQ Committer
+# 如何成为Apache TubeMQ Committer 和 PPMC
 
 <font color="#dd0000" size="4">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font>
 
diff --git a/docs/en-us/development/how-to-vote-a-committer-ppmc.md 
b/docs/en-us/development/how-to-vote-a-committer-ppmc.md
new file mode 100644
index 0000000..84f1c4e
--- /dev/null
+++ b/docs/en-us/development/how-to-vote-a-committer-ppmc.md
@@ -0,0 +1,48 @@
+---
+title: How to vote a Committer or PPMC - Apache TubeMQ
+---
+
+
+# 成为TubeMQ Committer 或 PPMC 的投票过程
+<font color="#dd0000" size="4">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font>
+
+1. TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;
+    > [DISCUSS] YYYYY as a TubeMQ XXXXXX
+
+    
邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;
+
+    
+2. 不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;
+    > [VOTE] YYYYY as a TubeMQ XXXXXX
+
+     投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1票则投票失败;如果-1,需要把问题说清楚,便于大家理解和知晓
+
+
+3. 投票邮件结束后,由投票发起者在投票线上总结并提醒投票结束,并发投票总结邮件;
+   > [RESULTS][VOTE] YYYYY as a TubeMQ XXXXXX
+
+
+4. 投票总结邮件发出后,投票发起者要给候选人发起邀请邮件,该邀请邮件需要候选人通过指定的邮箱回复接受或者拒绝;
+    > [Invitation] Invitation to join Apache TubeMQ as a XXXXXX
+
+    邮件主送邀请人,抄送[email protected]
+
+
+5. 候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起者需要协助候选人按照指引创建apache帐号;
+
+   
+6. 如果选举的是PPMC,在候选人的Apache帐号创建完成后,投票发起者还需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;
+   > [NOTICE] XXXXXX for TubeMQ PPMC
+
+   
邮件主送[email protected],抄送[email protected],IPMC们会分析合规性,直到没有疑义。
+
+ 
+7. 如果以上内容都以完成,投票发起者还需要做如下2件事情:
+   7.1  向项目负责人申请添加项目组成员,开通jira及apache项目的权限帐号。     
+
+   7.2         向[email protected]邮件组发通知邮件:
+      >        [ANNOUNCE] New XXXXXX: YYYYY
+
+
+到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。
+
diff --git a/docs/zh-cn/development/how-to-become-a-committer.md 
b/docs/zh-cn/development/how-to-become-a-committer.md
index 8e2c3b8..704b031 100644
--- a/docs/zh-cn/development/how-to-become-a-committer.md
+++ b/docs/zh-cn/development/how-to-become-a-committer.md
@@ -2,7 +2,7 @@
 title: 如何成为Committer - Apache TubeMQ
 ---
 
-# 如何成为TubeMQ Committer
+# 如何成为TubeMQ Committer 和 PPMC
 
 > Apache TubeMQ是完全按照Apache的规则来构建社区的,Apache 
 > Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,
 Apache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。
@@ -32,4 +32,4 @@ Apache TubeMQ Committer拥有TubeMQ代码库的写权限,可以合并PR,任
 邀请您成为Committer是您与社区长期稳定互动的结果,是TubeMQ社区对您的信任和认可。
 
 Committer有义务审查(Review)和合并(merge)其他人提交的PR,版本发布时测试和投票候选版本,参与特性设计方案的讨论以及其他类型的项目贡献。
-当你足够活跃且对社区的贡献比较大后,就可以晋升为TubeMQ项目的PPMC成员。
\ No newline at end of file
+当你足够活跃且对社区的贡献比较大后,就可以晋升为TubeMQ项目的PPMC成员。
diff --git a/docs/zh-cn/development/how-to-vote-a-committer-ppmc.md 
b/docs/zh-cn/development/how-to-vote-a-committer-ppmc.md
new file mode 100644
index 0000000..2f8eb6a
--- /dev/null
+++ b/docs/zh-cn/development/how-to-vote-a-committer-ppmc.md
@@ -0,0 +1,47 @@
+---
+title: 成为TubeMQ Committer 或 PPMC 的投票过程 - Apache TubeMQ
+---
+
+
+# 成为TubeMQ Committer 或 PPMC 的投票过程
+
+1. TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;
+    > [DISCUSS] YYYYY as a TubeMQ XXXXXX
+
+    
邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;
+
+    
+2. 不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;
+    > [VOTE] YYYYY as a TubeMQ XXXXXX
+
+     投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1票则投票失败;如果-1,需要把问题说清楚,便于大家理解和知晓
+
+
+3. 投票邮件结束后,由投票发起者在投票线上总结并提醒投票结束,并发投票总结邮件;
+   > [RESULTS][VOTE] YYYYY as a TubeMQ XXXXXX
+
+
+4. 投票总结邮件发出后,投票发起者要给候选人发起邀请邮件,该邀请邮件需要候选人通过指定的邮箱回复接受或者拒绝;
+    > [Invitation] Invitation to join Apache TubeMQ as a XXXXXX
+
+    邮件主送邀请人,抄送[email protected]
+
+
+5. 候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起者需要协助候选人按照指引创建apache帐号;
+
+   
+6. 如果选举的是PPMC,在候选人的Apache帐号创建完成后,投票发起者还需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;
+   > [NOTICE] XXXXXX for TubeMQ PPMC
+
+   
邮件主送[email protected],抄送[email protected],IPMC们会分析合规性,直到没有疑义。
+
+ 
+7. 如果以上内容都以完成,投票发起者还需要做如下2件事情:
+   7.1  向项目负责人申请添加项目组成员,开通jira及apache项目的权限帐号。     
+
+   7.2         向[email protected]邮件组发通知邮件:
+      >        [ANNOUNCE] New XXXXXX: YYYYY
+
+ 
+到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。
+
diff --git a/en-us/docs/development/how-to-become-a-committer.html 
b/en-us/docs/development/how-to-become-a-committer.html
index 8295e92..d045af0 100644
--- a/en-us/docs/development/how-to-become-a-committer.html
+++ b/en-us/docs/development/how-to-become-a-committer.html
@@ -12,7 +12,7 @@
        <link rel="stylesheet" href="/build/documentation.css" />
 </head>
 <body>
-       <div id="root"><div class="documentation-page" 
data-reactroot=""><header class="header-container header-container-normal"><div 
class="header-body"><a href="/en-us/index.html"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
+       <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"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
 <p><font color="#dd0000" size="4">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font></p>
 <blockquote>
 <p>Apache TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,
diff --git a/en-us/docs/development/how-to-become-a-committer.json 
b/en-us/docs/development/how-to-become-a-committer.json
index d95eba7..7db6aea 100644
--- a/en-us/docs/development/how-to-become-a-committer.json
+++ b/en-us/docs/development/how-to-become-a-committer.json
@@ -1,6 +1,6 @@
 {
   "filename": "how-to-become-a-committer.md",
-  "__html": "<h1>如何成为Apache TubeMQ Committer</h1>\n<p><font color=\"#dd0000\" 
size=\"4\">TODO: This page needs to be translated into English. If you are 
interested, just do it.</font></p>\n<blockquote>\n<p>Apache 
TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,\nApache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>\n</blockquote>\n<p>任何人只要对TubeMQ项目做了贡献,那你就是官方承认的TubeMQ项目的Contributor了,从Contributor成长为Committer并没
 [...]
+  "__html": "<h1>如何成为Apache TubeMQ Committer 和 PPMC</h1>\n<p><font 
color=\"#dd0000\" size=\"4\">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font></p>\n<blockquote>\n<p>Apache 
TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,\nApache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>\n</blockquote>\n<p>任何人只要对TubeMQ项目做了贡献,那你就是官方承认的TubeMQ项目的Contributor了,从Contributor成长为Comm
 [...]
   "link": "/en-us/docs/development/how-to-become-a-committer.html",
   "meta": {
     "title": "How to Become a Committer - Apache TubeMQ"
diff --git a/en-us/docs/development/how-to-become-a-committer.md 
b/en-us/docs/development/how-to-become-a-committer.md
index 9b15b97..df8bc75 100644
--- a/en-us/docs/development/how-to-become-a-committer.md
+++ b/en-us/docs/development/how-to-become-a-committer.md
@@ -2,7 +2,7 @@
 title: How to Become a Committer - Apache TubeMQ
 ---
 
-# 如何成为Apache TubeMQ Committer
+# 如何成为Apache TubeMQ Committer 和 PPMC
 
 <font color="#dd0000" size="4">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font>
 
diff --git a/en-us/docs/development/how-to-become-a-committer.html 
b/en-us/docs/development/how-to-vote-a-committer-ppmc.html
similarity index 73%
copy from en-us/docs/development/how-to-become-a-committer.html
copy to en-us/docs/development/how-to-vote-a-committer-ppmc.html
index 8295e92..988fcbe 100644
--- a/en-us/docs/development/how-to-become-a-committer.html
+++ b/en-us/docs/development/how-to-vote-a-committer-ppmc.html
@@ -4,44 +4,65 @@
 <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="how-to-become-a-committer" />
-       <meta name="description" content="how-to-become-a-committer" />
+       <meta name="keywords" content="how-to-vote-a-committer-ppmc" />
+       <meta name="description" content="how-to-vote-a-committer-ppmc" />
        <!-- 网页标签标题 -->
-       <title>How to Become a Committer - Apache TubeMQ</title>
+       <title>How to vote a Committer or PPMC - Apache TubeMQ</title>
        <link rel="shortcut icon" href="/img/apache.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"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
+       <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"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
 <p><font color="#dd0000" size="4">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font></p>
+<ol>
+<li>
+<p>TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;</p>
 <blockquote>
-<p>Apache TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,
-Apache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>
+<p>[DISCUSS] YYYYY as a TubeMQ XXXXXX</p>
 </blockquote>
-<p>任何人只要对TubeMQ项目做了贡献,那你就是官方承认的TubeMQ项目的Contributor了,从Contributor成长为Committer并没有一个确切的标准,
-也没有任何预期的时间表,但是Committer的候选人一般都是长期活跃的贡献者,成为Committer并没有要求必须有巨大的架构改进贡献,
-或者多少行的代码贡献,贡献代码、贡献文档、参与邮件列表的讨论、帮助回答问题等等都提升自己影响力的方式。</p>
-<p>潜在贡献清单(无特定顺序):</p>
-<ul>
-<li>提交自己发现的Bug、特性、改进到issue</li>
-<li>更新官方文档使项目的文档是最近的、撰写TubeMQ的最佳实践、特性剖析的各种对用户有用的文档</li>
-<li>执行测试并报告测试结果,性能测试与其他MQ的性能对比测试等</li>
-<li>发布版本时,积极参与投票</li>
-<li>参与邮件列表中的讨论,一般会有以[DISCUSS]开头的邮件</li>
-<li>回答用户或开发人员在邮件列表中的提问</li>
-<li>审查(Review)其他人的工作(包括代码和非代码)并发表你自己的建议</li>
-<li>对JIRA上的issue进行审查,维护issue为最新状态,比如:关闭过时的issue、更改issue的错误信息等</li>
-<li>指导新加入的贡献者,熟悉社区流程</li>
-<li>发表关于TubeMQ的演讲和博客,并将这些添加到TubeMQ的官方网站</li>
-<li>有利于TubeMQ社区发展的任何贡献</li>
-<li>......</li>
-</ul>
-<p>更多可以参考:<a href="https://community.apache.org/contributors/";>ASF官方文档</a></p>
-<p>并不是每个人都能完成这个清单上的所有(甚至任何)项目。如果你想用其他方式来做贡献,那就去做吧(并把它们添加到列表中)。
-愉快的举止和乐于奉献的精神是您对TubeMQ项目产生积极影响所需要的全部。
-邀请您成为Committer是您与社区长期稳定互动的结果,是TubeMQ社区对您的信任和认可。</p>
-<p>Committer有义务审查(Review)和合并(merge)其他人提交的PR,版本发布时测试和投票候选版本,参与特性设计方案的讨论以及其他类型的项目贡献。
-当你足够活跃且对社区的贡献比较大后,就可以晋升为TubeMQ项目的PPMC成员。</p>
+<p>邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;</p>
+</li>
+<li>
+<p>不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;</p>
+<blockquote>
+<p>[VOTE] YYYYY as a TubeMQ XXXXXX</p>
+</blockquote>
+<p>投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1票则投票失败;如果-1,需要把问题说清楚,便于大家理解和知晓</p>
+</li>
+<li>
+<p>投票邮件结束后,由投票发起者在投票线上总结并提醒投票结束,并发投票总结邮件;</p>
+<blockquote>
+<p>[RESULTS][VOTE] YYYYY as a TubeMQ XXXXXX</p>
+</blockquote>
+</li>
+<li>
+<p>投票总结邮件发出后,投票发起者要给候选人发起邀请邮件,该邀请邮件需要候选人通过指定的邮箱回复接受或者拒绝;</p>
+<blockquote>
+<p>[Invitation] Invitation to join Apache TubeMQ as a XXXXXX</p>
+</blockquote>
+<p>邮件主送邀请人,抄送[email protected]</p>
+</li>
+<li>
+<p>候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起者需要协助候选人按照指引创建apache帐号;</p>
+</li>
+<li>
+<p>如果选举的是PPMC,在候选人的Apache帐号创建完成后,投票发起者还需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;</p>
+<blockquote>
+<p>[NOTICE] XXXXXX for TubeMQ PPMC</p>
+</blockquote>
+<p>邮件主送[email protected],抄送[email protected],IPMC们会分析合规性,直到没有疑义。</p>
+</li>
+<li>
+<p>如果以上内容都以完成,投票发起者还需要做如下2件事情:
+7.1  向项目负责人申请添加项目组成员,开通jira及apache项目的权限帐号。</p>
+<p>7.2         向[email protected]邮件组发通知邮件:</p>
+<blockquote>
+<pre><code>   [ANNOUNCE] New XXXXXX: YYYYY
+</code></pre>
+</blockquote>
+</li>
+</ol>
+<p>到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。</p>
 </div></section><footer class="footer-container"><div class="footer-body"><img 
src="/img/incubator-logo.svg"/><div class="cols-container"><div class="col 
col-24"><p>Apache TubeMQ (incubating) is an effort undergoing incubation at The 
Apache Software Foundation (ASF), sponsored by Incubator. Incubation is 
required of all newly accepted projects until a further review indicates that 
the infrastructure, communications, and decision making process have stabilized 
in a manner consistent with  [...]
        <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/development/how-to-vote-a-committer-ppmc.json 
b/en-us/docs/development/how-to-vote-a-committer-ppmc.json
new file mode 100644
index 0000000..38fae63
--- /dev/null
+++ b/en-us/docs/development/how-to-vote-a-committer-ppmc.json
@@ -0,0 +1,8 @@
+{
+  "filename": "how-to-vote-a-committer-ppmc.md",
+  "__html": "<h1>成为TubeMQ Committer 或 PPMC 的投票过程</h1>\n<p><font 
color=\"#dd0000\" size=\"4\">TODO: This page needs to be translated into 
English. If you are interested, just do 
it.</font></p>\n<ol>\n<li>\n<p>TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;</p>\n<blockquote>\n<p>[DISCUSS]
 YYYYY as a TubeMQ 
XXXXXX</p>\n</blockquote>\n<p>邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;</p>\n</li>\n<li>\n<p>不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private
 [...]
+  "link": "/en-us/docs/development/how-to-vote-a-committer-ppmc.html",
+  "meta": {
+    "title": "How to vote a Committer or PPMC - Apache TubeMQ"
+  }
+}
\ No newline at end of file
diff --git a/en-us/docs/development/how-to-vote-a-committer-ppmc.md 
b/en-us/docs/development/how-to-vote-a-committer-ppmc.md
new file mode 100644
index 0000000..84f1c4e
--- /dev/null
+++ b/en-us/docs/development/how-to-vote-a-committer-ppmc.md
@@ -0,0 +1,48 @@
+---
+title: How to vote a Committer or PPMC - Apache TubeMQ
+---
+
+
+# 成为TubeMQ Committer 或 PPMC 的投票过程
+<font color="#dd0000" size="4">TODO: This page needs to be translated into 
English. If you are interested, just do it.</font>
+
+1. TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;
+    > [DISCUSS] YYYYY as a TubeMQ XXXXXX
+
+    
邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;
+
+    
+2. 不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;
+    > [VOTE] YYYYY as a TubeMQ XXXXXX
+
+     投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1票则投票失败;如果-1,需要把问题说清楚,便于大家理解和知晓
+
+
+3. 投票邮件结束后,由投票发起者在投票线上总结并提醒投票结束,并发投票总结邮件;
+   > [RESULTS][VOTE] YYYYY as a TubeMQ XXXXXX
+
+
+4. 投票总结邮件发出后,投票发起者要给候选人发起邀请邮件,该邀请邮件需要候选人通过指定的邮箱回复接受或者拒绝;
+    > [Invitation] Invitation to join Apache TubeMQ as a XXXXXX
+
+    邮件主送邀请人,抄送[email protected]
+
+
+5. 候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起者需要协助候选人按照指引创建apache帐号;
+
+   
+6. 如果选举的是PPMC,在候选人的Apache帐号创建完成后,投票发起者还需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;
+   > [NOTICE] XXXXXX for TubeMQ PPMC
+
+   
邮件主送[email protected],抄送[email protected],IPMC们会分析合规性,直到没有疑义。
+
+ 
+7. 如果以上内容都以完成,投票发起者还需要做如下2件事情:
+   7.1  向项目负责人申请添加项目组成员,开通jira及apache项目的权限帐号。     
+
+   7.2         向[email protected]邮件组发通知邮件:
+      >        [ANNOUNCE] New XXXXXX: YYYYY
+
+
+到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。
+
diff --git a/zh-cn/docs/development/how-to-become-a-committer.html 
b/zh-cn/docs/development/how-to-become-a-committer.html
index 4adda47..bbfa528 100644
--- a/zh-cn/docs/development/how-to-become-a-committer.html
+++ b/zh-cn/docs/development/how-to-become-a-committer.html
@@ -12,7 +12,7 @@
        <link rel="stylesheet" href="/build/documentation.css" />
 </head>
 <body>
-       <div id="root"><div class="documentation-page" 
data-reactroot=""><header class="header-container header-container-normal"><div 
class="header-body"><a href="/zh-cn/index.html"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
+       <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"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
 <blockquote>
 <p>Apache TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,
 Apache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>
diff --git a/zh-cn/docs/development/how-to-become-a-committer.json 
b/zh-cn/docs/development/how-to-become-a-committer.json
index 47a8253..9b1150d 100644
--- a/zh-cn/docs/development/how-to-become-a-committer.json
+++ b/zh-cn/docs/development/how-to-become-a-committer.json
@@ -1,6 +1,6 @@
 {
   "filename": "how-to-become-a-committer.md",
-  "__html": "<h1>如何成为TubeMQ Committer</h1>\n<blockquote>\n<p>Apache 
TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,\nApache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>\n</blockquote>\n<p>任何人只要对TubeMQ项目做了贡献,那你就是官方承认的TubeMQ项目的Contributor了,从Contributor成长为Committer并没有一个确切的标准,\n也没有任何预期的时间表,但是Committer的候选人一般都是长期活跃的贡献者,成为Committer并没有要求必须有巨大的架构改进贡献,\n或者多少行的代码贡献,贡献代码、贡献文档、参与邮件列表的讨论、帮助回答问题等等都提升自己影响力的方式。</p>\n<p>潜在贡
 [...]
+  "__html": "<h1>如何成为TubeMQ Committer 和 PPMC</h1>\n<blockquote>\n<p>Apache 
TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,\nApache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>\n</blockquote>\n<p>任何人只要对TubeMQ项目做了贡献,那你就是官方承认的TubeMQ项目的Contributor了,从Contributor成长为Committer并没有一个确切的标准,\n也没有任何预期的时间表,但是Committer的候选人一般都是长期活跃的贡献者,成为Committer并没有要求必须有巨大的架构改进贡献,\n或者多少行的代码贡献,贡献代码、贡献文档、参与邮件列表的讨论、帮助回答问题等等都提升自己影响力的方式。</p>\
 [...]
   "link": "/zh-cn/docs/development/how-to-become-a-committer.html",
   "meta": {
     "title": "如何成为Committer - Apache TubeMQ"
diff --git a/zh-cn/docs/development/how-to-become-a-committer.md 
b/zh-cn/docs/development/how-to-become-a-committer.md
index 8e2c3b8..704b031 100644
--- a/zh-cn/docs/development/how-to-become-a-committer.md
+++ b/zh-cn/docs/development/how-to-become-a-committer.md
@@ -2,7 +2,7 @@
 title: 如何成为Committer - Apache TubeMQ
 ---
 
-# 如何成为TubeMQ Committer
+# 如何成为TubeMQ Committer 和 PPMC
 
 > Apache TubeMQ是完全按照Apache的规则来构建社区的,Apache 
 > Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,
 Apache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。
@@ -32,4 +32,4 @@ Apache TubeMQ Committer拥有TubeMQ代码库的写权限,可以合并PR,任
 邀请您成为Committer是您与社区长期稳定互动的结果,是TubeMQ社区对您的信任和认可。
 
 Committer有义务审查(Review)和合并(merge)其他人提交的PR,版本发布时测试和投票候选版本,参与特性设计方案的讨论以及其他类型的项目贡献。
-当你足够活跃且对社区的贡献比较大后,就可以晋升为TubeMQ项目的PPMC成员。
\ No newline at end of file
+当你足够活跃且对社区的贡献比较大后,就可以晋升为TubeMQ项目的PPMC成员。
diff --git a/zh-cn/docs/development/how-to-become-a-committer.html 
b/zh-cn/docs/development/how-to-vote-a-committer-ppmc.html
similarity index 72%
copy from zh-cn/docs/development/how-to-become-a-committer.html
copy to zh-cn/docs/development/how-to-vote-a-committer-ppmc.html
index 4adda47..6642b68 100644
--- a/zh-cn/docs/development/how-to-become-a-committer.html
+++ b/zh-cn/docs/development/how-to-vote-a-committer-ppmc.html
@@ -4,43 +4,64 @@
 <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="how-to-become-a-committer" />
-       <meta name="description" content="how-to-become-a-committer" />
+       <meta name="keywords" content="how-to-vote-a-committer-ppmc" />
+       <meta name="description" content="how-to-vote-a-committer-ppmc" />
        <!-- 网页标签标题 -->
-       <title>如何成为Committer - Apache TubeMQ</title>
+       <title>成为TubeMQ Committer 或 PPMC 的投票过程 - Apache TubeMQ</title>
        <link rel="shortcut icon" href="/img/apache.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"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
+       <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"><a href="//www.apache.org"><img 
class="logo apache" style="width:120px" src="/img/asf_logo.svg"/></a><div 
class="logo-split"></div><a href=""></a><img class="logo tube" 
style="width:72px" src="/img/Tube logo.svg"/></a><div class="search 
search-normal"><span class="icon-search"></span></div><span class="language-swi 
[...]
+<ol>
+<li>
+<p>TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;</p>
 <blockquote>
-<p>Apache TubeMQ是完全按照Apache的规则来构建社区的,Apache 
Committer是ASF(Apache软件基金会)中用来表示提交特定项目的人的术语,
-Apache TubeMQ 
Committer拥有TubeMQ代码库的写权限,可以合并PR,任何人只要为社区做出了足够的贡献并获取到足够的信任就可以成为Apache TubeMQ 
Committer。</p>
+<p>[DISCUSS] YYYYY as a TubeMQ XXXXXX</p>
 </blockquote>
-<p>任何人只要对TubeMQ项目做了贡献,那你就是官方承认的TubeMQ项目的Contributor了,从Contributor成长为Committer并没有一个确切的标准,
-也没有任何预期的时间表,但是Committer的候选人一般都是长期活跃的贡献者,成为Committer并没有要求必须有巨大的架构改进贡献,
-或者多少行的代码贡献,贡献代码、贡献文档、参与邮件列表的讨论、帮助回答问题等等都提升自己影响力的方式。</p>
-<p>潜在贡献清单(无特定顺序):</p>
-<ul>
-<li>提交自己发现的Bug、特性、改进到issue</li>
-<li>更新官方文档使项目的文档是最近的、撰写TubeMQ的最佳实践、特性剖析的各种对用户有用的文档</li>
-<li>执行测试并报告测试结果,性能测试与其他MQ的性能对比测试等</li>
-<li>发布版本时,积极参与投票</li>
-<li>参与邮件列表中的讨论,一般会有以[DISCUSS]开头的邮件</li>
-<li>回答用户或开发人员在邮件列表中的提问</li>
-<li>审查(Review)其他人的工作(包括代码和非代码)并发表你自己的建议</li>
-<li>对JIRA上的issue进行审查,维护issue为最新状态,比如:关闭过时的issue、更改issue的错误信息等</li>
-<li>指导新加入的贡献者,熟悉社区流程</li>
-<li>发表关于TubeMQ的演讲和博客,并将这些添加到TubeMQ的官方网站</li>
-<li>有利于TubeMQ社区发展的任何贡献</li>
-<li>......</li>
-</ul>
-<p>更多可以参考:<a href="https://community.apache.org/contributors/";>ASF官方文档</a></p>
-<p>并不是每个人都能完成这个清单上的所有(甚至任何)项目。如果你想用其他方式来做贡献,那就去做吧(并把它们添加到列表中)。
-愉快的举止和乐于奉献的精神是您对TubeMQ项目产生积极影响所需要的全部。
-邀请您成为Committer是您与社区长期稳定互动的结果,是TubeMQ社区对您的信任和认可。</p>
-<p>Committer有义务审查(Review)和合并(merge)其他人提交的PR,版本发布时测试和投票候选版本,参与特性设计方案的讨论以及其他类型的项目贡献。
-当你足够活跃且对社区的贡献比较大后,就可以晋升为TubeMQ项目的PPMC成员。</p>
+<p>邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;</p>
+</li>
+<li>
+<p>不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;</p>
+<blockquote>
+<p>[VOTE] YYYYY as a TubeMQ XXXXXX</p>
+</blockquote>
+<p>投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1票则投票失败;如果-1,需要把问题说清楚,便于大家理解和知晓</p>
+</li>
+<li>
+<p>投票邮件结束后,由投票发起者在投票线上总结并提醒投票结束,并发投票总结邮件;</p>
+<blockquote>
+<p>[RESULTS][VOTE] YYYYY as a TubeMQ XXXXXX</p>
+</blockquote>
+</li>
+<li>
+<p>投票总结邮件发出后,投票发起者要给候选人发起邀请邮件,该邀请邮件需要候选人通过指定的邮箱回复接受或者拒绝;</p>
+<blockquote>
+<p>[Invitation] Invitation to join Apache TubeMQ as a XXXXXX</p>
+</blockquote>
+<p>邮件主送邀请人,抄送[email protected]</p>
+</li>
+<li>
+<p>候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起者需要协助候选人按照指引创建apache帐号;</p>
+</li>
+<li>
+<p>如果选举的是PPMC,在候选人的Apache帐号创建完成后,投票发起者还需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;</p>
+<blockquote>
+<p>[NOTICE] XXXXXX for TubeMQ PPMC</p>
+</blockquote>
+<p>邮件主送[email protected],抄送[email protected],IPMC们会分析合规性,直到没有疑义。</p>
+</li>
+<li>
+<p>如果以上内容都以完成,投票发起者还需要做如下2件事情:
+7.1  向项目负责人申请添加项目组成员,开通jira及apache项目的权限帐号。</p>
+<p>7.2         向[email protected]邮件组发通知邮件:</p>
+<blockquote>
+<pre><code>   [ANNOUNCE] New XXXXXX: YYYYY
+</code></pre>
+</blockquote>
+</li>
+</ol>
+<p>到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。</p>
 </div></section><footer class="footer-container"><div class="footer-body"><img 
src="/img/incubator-logo.svg"/><div class="cols-container"><div class="col 
col-24"><p>Apache TubeMQ (incubating) is an effort undergoing incubation at The 
Apache Software Foundation (ASF), sponsored by Incubator. Incubation is 
required of all newly accepted projects until a further review indicates that 
the infrastructure, communications, and decision making process have stabilized 
in a manner consistent with  [...]
        <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/development/how-to-vote-a-committer-ppmc.json 
b/zh-cn/docs/development/how-to-vote-a-committer-ppmc.json
new file mode 100644
index 0000000..69fb665
--- /dev/null
+++ b/zh-cn/docs/development/how-to-vote-a-committer-ppmc.json
@@ -0,0 +1,8 @@
+{
+  "filename": "how-to-vote-a-committer-ppmc.md",
+  "__html": "<h1>成为TubeMQ Committer 或 PPMC 
的投票过程</h1>\n<ol>\n<li>\n<p>TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;</p>\n<blockquote>\n<p>[DISCUSS]
 YYYYY as a TubeMQ 
XXXXXX</p>\n</blockquote>\n<p>邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;</p>\n</li>\n<li>\n<p>不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;</p>\n<blockquote>\n<p>[VOTE]
 YYYYY as a TubeMQ 
XXXXXX</p>\n</blockquote>\n<p>投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1 [...]
+  "link": "/zh-cn/docs/development/how-to-vote-a-committer-ppmc.html",
+  "meta": {
+    "title": "成为TubeMQ Committer 或 PPMC 的投票过程 - Apache TubeMQ"
+  }
+}
\ No newline at end of file
diff --git a/zh-cn/docs/development/how-to-vote-a-committer-ppmc.md 
b/zh-cn/docs/development/how-to-vote-a-committer-ppmc.md
new file mode 100644
index 0000000..2f8eb6a
--- /dev/null
+++ b/zh-cn/docs/development/how-to-vote-a-committer-ppmc.md
@@ -0,0 +1,47 @@
+---
+title: 成为TubeMQ Committer 或 PPMC 的投票过程 - Apache TubeMQ
+---
+
+
+# 成为TubeMQ Committer 或 PPMC 的投票过程
+
+1. TubeMQ的PPMC成员发现社区贡献者任何有价值的贡献并取得候选人本人同意后,在TubeMQ的private邮件列表发起讨论;
+    > [DISCUSS] YYYYY as a TubeMQ XXXXXX
+
+    
邮件里要把对方的贡献,可以查看的出处说清楚,便于大家讨论分析;讨论邮件将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法;
+
+    
+2. 不管有没有分歧,在讨论邮件过后,投票发起者需要在在TubeMQ的private邮件列表发起Committer或PPMC的选举投票;
+    > [VOTE] YYYYY as a TubeMQ XXXXXX
+
+     投票邮件至少持续72小时,至少要3票+1通过,如果0票或者有1票-1票则投票失败;如果-1,需要把问题说清楚,便于大家理解和知晓
+
+
+3. 投票邮件结束后,由投票发起者在投票线上总结并提醒投票结束,并发投票总结邮件;
+   > [RESULTS][VOTE] YYYYY as a TubeMQ XXXXXX
+
+
+4. 投票总结邮件发出后,投票发起者要给候选人发起邀请邮件,该邀请邮件需要候选人通过指定的邮箱回复接受或者拒绝;
+    > [Invitation] Invitation to join Apache TubeMQ as a XXXXXX
+
+    邮件主送邀请人,抄送[email protected]
+
+
+5. 候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起者需要协助候选人按照指引创建apache帐号;
+
+   
+6. 如果选举的是PPMC,在候选人的Apache帐号创建完成后,投票发起者还需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;
+   > [NOTICE] XXXXXX for TubeMQ PPMC
+
+   
邮件主送[email protected],抄送[email protected],IPMC们会分析合规性,直到没有疑义。
+
+ 
+7. 如果以上内容都以完成,投票发起者还需要做如下2件事情:
+   7.1  向项目负责人申请添加项目组成员,开通jira及apache项目的权限帐号。     
+
+   7.2         向[email protected]邮件组发通知邮件:
+      >        [ANNOUNCE] New XXXXXX: YYYYY
+
+ 
+到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。
+

Reply via email to