You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by je...@apache.org on 2018/09/04 02:09:08 UTC

[incubator-dubbo-website] branch asf-site updated: add how to involve dubbo community

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

jerrick 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 3016481  add how to involve dubbo community
3016481 is described below

commit 30164811cc10b036e362fc2e20722360784dc50f
Author: zhuyong <yo...@alibaba-inc.com>
AuthorDate: Tue Sep 4 10:08:44 2018 +0800

    add how to involve dubbo community
---
 blog/zh-cn/how-to-involve-dubbo-community.md   | 106 ++++++++++++++++++++++++
 build/blog.js                                  |   2 +-
 img/blog/involve-dubbo/apache-history.png      | Bin 0 -> 240521 bytes
 img/blog/involve-dubbo/apache-org.png          | Bin 0 -> 131032 bytes
 img/blog/involve-dubbo/apache-way.png          | Bin 0 -> 272260 bytes
 img/blog/involve-dubbo/dubbo-community.png     | Bin 0 -> 246902 bytes
 img/blog/involve-dubbo/dubbo-project.png       | Bin 0 -> 412187 bytes
 img/blog/involve-dubbo/get-into-apache.png     | Bin 0 -> 298404 bytes
 img/blog/involve-dubbo/head.jpg                | Bin 0 -> 229503 bytes
 site_config/blog.js                            |  23 ++++--
 zh-cn/blog/how-to-involve-dubbo-community.html | 107 +++++++++++++++++++++++++
 zh-cn/blog/how-to-involve-dubbo-community.json |   4 +
 zh-cn/blog/index.html                          |   2 +-
 13 files changed, 234 insertions(+), 10 deletions(-)

diff --git a/blog/zh-cn/how-to-involve-dubbo-community.md b/blog/zh-cn/how-to-involve-dubbo-community.md
new file mode 100644
index 0000000..1c218c9
--- /dev/null
+++ b/blog/zh-cn/how-to-involve-dubbo-community.md
@@ -0,0 +1,106 @@
+# 如何参与贡献Dubbo社区
+
+![img](../../img/blog/involve-dubbo/head.jpg)
+
+## 前言
+
+本文首次分享是在Apache Dubbo(incubating)成都meetup上,这个话题是第一次在meetup上讲,不是我们没有更好的话题吗?相反,我们认为这个话题非常重要,建议这个话题以后每次meetup都要讲。
+
+Dubbo的发展历史大家应该并不陌生了,这里我还是简单回顾一下。Dubbo于2011年在github开源,后面几年由于一些原因停止了维护,直接去年7月份阿里重启维护,并于2018年2月16日捐献给Apache。
+
+为什么会选择捐献给Apache,主要是为了打消社区对Dubbo未来发展的顾虑,给Dubbo用户足够的信心;Apache认为`社区大于代码`,非常注重多样性,强调一个项⽬需要有多个公司和个人贡献者参与,现在Dubbo的发展完全是按`The Apache Way`社区化的方式来运作的。
+
+
+## Apache的诞生
+
+说到Apache,大家都非常熟悉了,它是全球目前最大的软件基金;Apache的很多项目我们都用过,比如Maven、Log4j、Tomcat等,但有一个项目要特别强调的,那就是 Apache httpd server,这是Apache的第一个项目。
+
+Apache软件基金会正式创建于1999年,主要是为公众提供有用的免费软件,并为软件开发者社区提供支持和服务;它的创建者是一个自称为`Apache组织`的群体;
+
+早在1995年,这个组织就存在了,他们聚集在一起,在美国伊利诺伊大学超级计算机应用程序国家中心开发的NCSA HTTPd服务器的基础上开发与维护了一个叫Apache的HTTP服务器。
+
+最早NCSA HTTPd服务器是一个叫Rob McCool的人开发的,但是后来慢慢失去了兴趣,导致这个功能强大又好用的服务器没人维护;于是一些爱好者和用户就自发开始维护起来,并不断改善功能、发布版本;为了更好进行沟通,一哥们就创建了一个邮件组,并把维护工作高效组织起来,且自称是`Apache组织`,并把这个软件叫`Apache 服务器`。
+
+这也是为什么Apache的所有的项目到今天为止依然以邮件列表作为沟通的主要方式。
+
+关于Apache的命名来源,从北美当地的一支叫`Apache`的印第安部落名称而来,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗;为了对这支部落表示敬仰,就取了这个名字;但这里还流传着一个小故事,说是在NCSA HTTPd基础上,大家都通过打补丁不断在修改这个软件,被戏称为`A Patchy Server`,和`Apache Server`读音很像。
+
+![img](../../img/blog/involve-dubbo/apache-history.png)
+
+随着后来商业需求扩大,围绕Apache HTTP服务器的项目越来越多,后来越来越多的项目启动,也有很多外部组织捐献项目;为了让这些外部项目能顺利进入到Apache基金会,2002年创建了Incubator(孵化)项目。可以看到,经过10多年的发展,到2010年,75个顶级项目,30个孵化项目,每天2697封讨论邮件;2018年这个数据进一步增长,194个顶级项目,54个孵化项目,3255个committers;其中中国人主导的项目,有RocketMQ,WeeX,ECharts,Skywalking等。
+
+Dubbo正在成为Apache顶级项目的路上——Apache孵化项目中。
+
+回顾一下Apache这些历史和数据,我们不难发现几个关键词:兴趣、参与、邮件;这些就是我们后面要重点介绍的`The Apache Way`。
+
+## ASF组织架构
+
+![img](../../img/blog/involve-dubbo/apache-org.png)
+
+我们知道每个组织都有它自己的架构,ASF同样也不例外;那Apache的组织架构是什么样的呢?它有什么独特的地方吗?这里特别要强调的是Project Management Committees,即 PMC,每个项目从孵化阶段开始就会有PMC,主要负责保证开源项目的社区活动都能运转良好,这里运转的机制就是`The Apache Way`。
+
+图中,Board就是负责整个基金会符合章程的运作。Board我们一般很少能接触到,接触更多的是PMC以及下面的这几层。
+
+参与Apache项目社区活动的人,一般分为以下几类:
+
+* 直接用户:在座的都是Dubbo的用户,可能部分现在还不是,但将来肯定会是
+
+* 贡献者:部分用户在使用Dubbo过程中,遇到问题,自己通过分析调试找到解决方案,并提交给Dubbo官方,最终被接受,这些用户就是Dubbo的贡献者
+
+* 提交者:贡献多了,经过PMC的提议和投票,就会成为Committer;Committer即意味着正式加入Apache,拥有个人Apache帐号以及相应项目的写权限
+
+* PMC:Committer再往上走就是PMC,这个必须由现有PMC成员提名
+
+个人在社区的成长,就像我们在公司晋升一样,一步一步往上走。
+
+本文的目的就是告诉大家,从User到Contributor没有大家想像的那么难,从Contributor到Committer也不是不可能;只要大家拥有一颗开源的心,找到自己感兴趣的项目,并持续投入,付出肯定会有回报。
+
+## The Apache Way
+
+就像你加入一家公司需要了解这家公司的文化一样,参与Apache开源项目之前,同样我们需要需要了解ASF的文化,这个文化就称为`The Apache Way`。
+
+![img](../../img/blog/involve-dubbo/apache-way.png)
+
+这里想特别强调以下几点:
+
+* 社区胜于代码:把项目构建出来这不是开源,去构建社区才是真正的开源;对社区而言,一切都是围绕代码而生,无代码则社区不复存在;在代码之上,则是如何做事、如何待人、如何决策的理念体现;一个健康的社区远比优秀的代码重要——如果代码奇烂无比,社区可以重写,但社区有了毛病,代码最终也会付之东流;
+* 公开透明与共识决策:`If it doesn't happen on email, it doesn't happen.` 所有的决定,不管是技术feature、发展方向,还是版本发布等,都应该被公开讨论,而形式就是邮件列表,这些讨论过程和结论都会被永久存档;而讨论的过程,就是大家自由发表意见的过程,但最终大家要投票,比较民主的做法;
+* 任人唯贤:`Those that have proven they can do, get to do more.` 特别强调一点,贡献绝不仅仅是代码,贡献可以是很多方面,接下来我们结合Dubbo来讲,大家如何参与并贡献;
+
+## 参与Dubbo社区
+
+![img](../../img/blog/involve-dubbo/dubbo-community.png)
+
+要参与Dubbo社区,就要先大概了解一下目前社区的工作方式。总结一句话就是4个角色、3个途径以及2个代码组;
+
+1. 4个角色前面也提到过了,分别是User、Contributor、Committer、PPMC;这里特别要强调用的是,角色之间不是孤立的,比如提功能建议的也可以是Committer或Contributor等;PPMC有投票权,但其他人一样也可以投票,这本身就是一种参与、一种贡献;
+2. 3个途径,分别是Dubbo官网、github、dev邮件列表;目前比较活跃的是github issue/PR;我们鼓励按`The Apache Way`的方式,使用邮件列表交流,让导师看到我们的贡献;
+3. 2个代码组,一个是 `github.com/apache/incubator-dubbo*` ,这里是dubbo孵化的项目,目前主要包含dubbo-rpc、dubbo-spring-boot-start、dubbo-ops三个部分;另外一个就是 `github.com/dubbo`,这个是dubbo作为微服务解决方案的所有相关的生态部分,包括dubbo-rpc的扩展、dubbo与其他产品集成、dubbo多语言客户端实现以及一些工具和套件等;
+
+![img](../../img/blog/involve-dubbo/dubbo-project.png)
+
+所以,对于想参与Dubbo社区、想为Dubbo这个微服务解决方案自己一份力量的人来说,以下就是你们现在就可以开始做的:
+
+1. 开发邮件组可以订阅起来,可以参考这里:https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide
+2. github.com/apache/incubator-dubbo star起来,fork起来
+3. 学习中英文文档,进行修正或优化,提PR;有疑问的地方,可以email到邮件组或提issue;官方开发者的回复总比google或stackoverflow里找到的答案要强的多吧?
+4. 如果你正在使用dubbo,可以将经验总结出来,写篇blog,分享给社区;真实的案例总是最具有说服力;
+5. 如果你有时间,可以参与issue和PR的解决,回条用户的问题、PR的review;`Good first issue`以及`Help wanted`的issue,总有一个是适合你的;
+6. 如果你想深入学习dubbo-rpc框架,UT是一个非常好的开始,完善和补充现有的UT,一边学习一边贡献,何乐而不为?
+7. 发现了bug,报issue;通过自己的努力最终解决了,提一个issue,`first-contributor`并不是那么难;哦,对了,拼写错误也算哦;
+8. 如果你发现一个可以帮助用户更方便地使用dubbo,开发、测试、调试、mock、工具等;都可以贡献到Dubbo生态中来;
+9. 最后我们非常欢迎大家通过邮件提想法,也欢迎大家多讨论;你会发现,技术变牛的同时,英文也变的66的了;
+
+## 加入Apache孵化
+
+如果大家有好的项目希望捐献给Apache,这个流程可以参考一下;
+
+![img](../../img/blog/involve-dubbo/get-into-apache.png)
+
+进⼊ Apache 分为三个阶段,准备阶段、孵化阶段和毕业阶段。准备阶段需要做的事情有找到愿意帮助孵化的导师,向Apache 提交进⼊孵化的申请,经过导师们讨论并投票,如果通过的话就可以进⼊入孵化。孵化阶段分为两大环节,第⼀个环节是公司和个人签署协议向Apache 移交代码和知识产权,之后就是在导师的指导下按照Apache的规范做版本迭代、社区运营、发展更多的Committer;如果最终通过了成熟度评估,就可以顺利毕业成为Apache的顶级项目。
+
+## 结语
+
+希望越来越多的公司团队和个人能够贡献到国际化的开源社区里去,一起打造我们中国的开源品牌!也希望大家都能愉快去贡献,罗马非一日建成,但付出一定会有回报。
+
+这里透露一个小福利,所有Apache Committer可以免费使用InteliJ的全套付费产品,包括全宇宙最好用的IDEA。
\ No newline at end of file
diff --git a/build/blog.js b/build/blog.js
index 3ae6656..4d13924 100644
--- a/build/blog.js
+++ b/build/blog.js
@@ -3,4 +3,4 @@
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var u in r)i.call(r,u)&&r[u]&&e.push(u)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...]
\ No newline at end of file
+!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var u in r)i.call(r,u)&&r[u]&&e.push(u)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...]
\ No newline at end of file
diff --git a/img/blog/involve-dubbo/apache-history.png b/img/blog/involve-dubbo/apache-history.png
new file mode 100644
index 0000000..176ebae
Binary files /dev/null and b/img/blog/involve-dubbo/apache-history.png differ
diff --git a/img/blog/involve-dubbo/apache-org.png b/img/blog/involve-dubbo/apache-org.png
new file mode 100644
index 0000000..5dd56c9
Binary files /dev/null and b/img/blog/involve-dubbo/apache-org.png differ
diff --git a/img/blog/involve-dubbo/apache-way.png b/img/blog/involve-dubbo/apache-way.png
new file mode 100644
index 0000000..6d1fd24
Binary files /dev/null and b/img/blog/involve-dubbo/apache-way.png differ
diff --git a/img/blog/involve-dubbo/dubbo-community.png b/img/blog/involve-dubbo/dubbo-community.png
new file mode 100644
index 0000000..33f25d5
Binary files /dev/null and b/img/blog/involve-dubbo/dubbo-community.png differ
diff --git a/img/blog/involve-dubbo/dubbo-project.png b/img/blog/involve-dubbo/dubbo-project.png
new file mode 100644
index 0000000..9578608
Binary files /dev/null and b/img/blog/involve-dubbo/dubbo-project.png differ
diff --git a/img/blog/involve-dubbo/get-into-apache.png b/img/blog/involve-dubbo/get-into-apache.png
new file mode 100644
index 0000000..fce6ce1
Binary files /dev/null and b/img/blog/involve-dubbo/get-into-apache.png differ
diff --git a/img/blog/involve-dubbo/head.jpg b/img/blog/involve-dubbo/head.jpg
new file mode 100644
index 0000000..4ae3d79
Binary files /dev/null and b/img/blog/involve-dubbo/head.jpg differ
diff --git a/site_config/blog.js b/site_config/blog.js
index 80adf31..4a48abe 100644
--- a/site_config/blog.js
+++ b/site_config/blog.js
@@ -156,14 +156,21 @@ export default {
     barText: '博客',
     postsTitle: '所有文章',
     list: [
-	{
-	    title: '使用Skywalking追踪Dubbo服务',
-	    author:'张鑫',
-	    dateStr: 'Sep 3nd, 2018',
-	    desc: '使用Skywalking追踪Dubbo服务',
-	    link: '/zh-cn/blog/tracing-with-skywalking.html',
-	},
-	{
+		{
+		    title: '如何参与贡献Dubbo开源',
+		    author:'@jerrick',
+		    dateStr: 'Sep 4th, 2018',
+		    desc: '以Apache Way的方式参与Dubbo并做贡献',
+		    link: '/zh-cn/blog/how-to-involve-dubbo-community.html',
+		},
+	    {
+	        title: '使用Skywalking追踪Dubbo服务',
+	        author:'张鑫',
+	        dateStr: 'Sep 3nd, 2018',
+	        desc: '使用Skywalking追踪Dubbo服务',
+	        link: '/zh-cn/blog/tracing-with-skywalking.html',
+	    },
+	    {
             title: '如何准备Apache Release',
             author: 'Jun Liu',
             dateStr: 'Sep 2nd, 2018',
diff --git a/zh-cn/blog/how-to-involve-dubbo-community.html b/zh-cn/blog/how-to-involve-dubbo-community.html
new file mode 100644
index 0000000..0872f4e
--- /dev/null
+++ b/zh-cn/blog/how-to-involve-dubbo-community.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<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-involve-dubbo-community" />
+	<meta name="description" content="how-to-involve-dubbo-community" />
+	<!-- 网页标签标题 -->
+	<title>how-to-involve-dubbo-community</title>
+	<link rel="shortcut icon" href="/img/dubbo.ico"/>
+	<link rel="stylesheet" href="/build/blogDetail.css" />
+</head>
+<body>
+	<div id="root"><div class="blog-detail-page" data-reactroot="" data-reactid="1" data-react-checksum="2031702288"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/zh-cn/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">En</span><div class="header-menu" data-reactid="7"><img class="header-menu-to [...]
+<p><img src="../../img/blog/involve-dubbo/head.jpg" alt="img"></p>
+<h2>前言</h2>
+<p>本文首次分享是在Apache Dubbo(incubating)成都meetup上,这个话题是第一次在meetup上讲,不是我们没有更好的话题吗?相反,我们认为这个话题非常重要,建议这个话题以后每次meetup都要讲。</p>
+<p>Dubbo的发展历史大家应该并不陌生了,这里我还是简单回顾一下。Dubbo于2011年在github开源,后面几年由于一些原因停止了维护,直接去年7月份阿里重启维护,并于2018年2月16日捐献给Apache。</p>
+<p>为什么会选择捐献给Apache,主要是为了打消社区对Dubbo未来发展的顾虑,给Dubbo用户足够的信心;Apache认为<code>社区大于代码</code>,非常注重多样性,强调一个项⽬需要有多个公司和个人贡献者参与,现在Dubbo的发展完全是按<code>The Apache Way</code>社区化的方式来运作的。</p>
+<h2>Apache的诞生</h2>
+<p>说到Apache,大家都非常熟悉了,它是全球目前最大的软件基金;Apache的很多项目我们都用过,比如Maven、Log4j、Tomcat等,但有一个项目要特别强调的,那就是 Apache httpd server,这是Apache的第一个项目。</p>
+<p>Apache软件基金会正式创建于1999年,主要是为公众提供有用的免费软件,并为软件开发者社区提供支持和服务;它的创建者是一个自称为<code>Apache组织</code>的群体;</p>
+<p>早在1995年,这个组织就存在了,他们聚集在一起,在美国伊利诺伊大学超级计算机应用程序国家中心开发的NCSA HTTPd服务器的基础上开发与维护了一个叫Apache的HTTP服务器。</p>
+<p>最早NCSA HTTPd服务器是一个叫Rob McCool的人开发的,但是后来慢慢失去了兴趣,导致这个功能强大又好用的服务器没人维护;于是一些爱好者和用户就自发开始维护起来,并不断改善功能、发布版本;为了更好进行沟通,一哥们就创建了一个邮件组,并把维护工作高效组织起来,且自称是<code>Apache组织</code>,并把这个软件叫<code>Apache 服务器</code>。</p>
+<p>这也是为什么Apache的所有的项目到今天为止依然以邮件列表作为沟通的主要方式。</p>
+<p>关于Apache的命名来源,从北美当地的一支叫<code>Apache</code>的印第安部落名称而来,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗;为了对这支部落表示敬仰,就取了这个名字;但这里还流传着一个小故事,说是在NCSA HTTPd基础上,大家都通过打补丁不断在修改这个软件,被戏称为<code>A Patchy Server</code>,和<code>Apache Server</code>读音很像。</p>
+<p><img src="../../img/blog/involve-dubbo/apache-history.png" alt="img"></p>
+<p>随着后来商业需求扩大,围绕Apache HTTP服务器的项目越来越多,后来越来越多的项目启动,也有很多外部组织捐献项目;为了让这些外部项目能顺利进入到Apache基金会,2002年创建了Incubator(孵化)项目。可以看到,经过10多年的发展,到2010年,75个顶级项目,30个孵化项目,每天2697封讨论邮件;2018年这个数据进一步增长,194个顶级项目,54个孵化项目,3255个committers;其中中国人主导的项目,有RocketMQ,WeeX,ECharts,Skywalking等。</p>
+<p>Dubbo正在成为Apache顶级项目的路上——Apache孵化项目中。</p>
+<p>回顾一下Apache这些历史和数据,我们不难发现几个关键词:兴趣、参与、邮件;这些就是我们后面要重点介绍的<code>The Apache Way</code>。</p>
+<h2>ASF组织架构</h2>
+<p><img src="../../img/blog/involve-dubbo/apache-org.png" alt="img"></p>
+<p>我们知道每个组织都有它自己的架构,ASF同样也不例外;那Apache的组织架构是什么样的呢?它有什么独特的地方吗?这里特别要强调的是Project Management Committees,即 PMC,每个项目从孵化阶段开始就会有PMC,主要负责保证开源项目的社区活动都能运转良好,这里运转的机制就是<code>The Apache Way</code>。</p>
+<p>图中,Board就是负责整个基金会符合章程的运作。Board我们一般很少能接触到,接触更多的是PMC以及下面的这几层。</p>
+<p>参与Apache项目社区活动的人,一般分为以下几类:</p>
+<ul>
+<li>
+<p>直接用户:在座的都是Dubbo的用户,可能部分现在还不是,但将来肯定会是</p>
+</li>
+<li>
+<p>贡献者:部分用户在使用Dubbo过程中,遇到问题,自己通过分析调试找到解决方案,并提交给Dubbo官方,最终被接受,这些用户就是Dubbo的贡献者</p>
+</li>
+<li>
+<p>提交者:贡献多了,经过PMC的提议和投票,就会成为Committer;Committer即意味着正式加入Apache,拥有个人Apache帐号以及相应项目的写权限</p>
+</li>
+<li>
+<p>PMC:Committer再往上走就是PMC,这个必须由现有PMC成员提名</p>
+</li>
+</ul>
+<p>个人在社区的成长,就像我们在公司晋升一样,一步一步往上走。</p>
+<p>本文的目的就是告诉大家,从User到Contributor没有大家想像的那么难,从Contributor到Committer也不是不可能;只要大家拥有一颗开源的心,找到自己感兴趣的项目,并持续投入,付出肯定会有回报。</p>
+<h2>The Apache Way</h2>
+<p>就像你加入一家公司需要了解这家公司的文化一样,参与Apache开源项目之前,同样我们需要需要了解ASF的文化,这个文化就称为<code>The Apache Way</code>。</p>
+<p><img src="../../img/blog/involve-dubbo/apache-way.png" alt="img"></p>
+<p>这里想特别强调以下几点:</p>
+<ul>
+<li>社区胜于代码:把项目构建出来这不是开源,去构建社区才是真正的开源;对社区而言,一切都是围绕代码而生,无代码则社区不复存在;在代码之上,则是如何做事、如何待人、如何决策的理念体现;一个健康的社区远比优秀的代码重要——如果代码奇烂无比,社区可以重写,但社区有了毛病,代码最终也会付之东流;</li>
+<li>公开透明与共识决策:<code>If it doesn't happen on email, it doesn't happen.</code> 所有的决定,不管是技术feature、发展方向,还是版本发布等,都应该被公开讨论,而形式就是邮件列表,这些讨论过程和结论都会被永久存档;而讨论的过程,就是大家自由发表意见的过程,但最终大家要投票,比较民主的做法;</li>
+<li>任人唯贤:<code>Those that have proven they can do, get to do more.</code> 特别强调一点,贡献绝不仅仅是代码,贡献可以是很多方面,接下来我们结合Dubbo来讲,大家如何参与并贡献;</li>
+</ul>
+<h2>参与Dubbo社区</h2>
+<p><img src="../../img/blog/involve-dubbo/dubbo-community.png" alt="img"></p>
+<p>要参与Dubbo社区,就要先大概了解一下目前社区的工作方式。总结一句话就是4个角色、3个途径以及2个代码组;</p>
+<ol>
+<li>4个角色前面也提到过了,分别是User、Contributor、Committer、PPMC;这里特别要强调用的是,角色之间不是孤立的,比如提功能建议的也可以是Committer或Contributor等;PPMC有投票权,但其他人一样也可以投票,这本身就是一种参与、一种贡献;</li>
+<li>3个途径,分别是Dubbo官网、github、dev邮件列表;目前比较活跃的是github issue/PR;我们鼓励按<code>The Apache Way</code>的方式,使用邮件列表交流,让导师看到我们的贡献;</li>
+<li>2个代码组,一个是 <code>github.com/apache/incubator-dubbo*</code> ,这里是dubbo孵化的项目,目前主要包含dubbo-rpc、dubbo-spring-boot-start、dubbo-ops三个部分;另外一个就是 <code>github.com/dubbo</code>,这个是dubbo作为微服务解决方案的所有相关的生态部分,包括dubbo-rpc的扩展、dubbo与其他产品集成、dubbo多语言客户端实现以及一些工具和套件等;</li>
+</ol>
+<p><img src="../../img/blog/involve-dubbo/dubbo-project.png" alt="img"></p>
+<p>所以,对于想参与Dubbo社区、想为Dubbo这个微服务解决方案自己一份力量的人来说,以下就是你们现在就可以开始做的:</p>
+<ol>
+<li>开发邮件组可以订阅起来,可以参考这里:<a href="https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide">https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide</a></li>
+<li><a href="http://github.com/apache/incubator-dubbo">github.com/apache/incubator-dubbo</a> star起来,fork起来</li>
+<li>学习中英文文档,进行修正或优化,提PR;有疑问的地方,可以email到邮件组或提issue;官方开发者的回复总比google或stackoverflow里找到的答案要强的多吧?</li>
+<li>如果你正在使用dubbo,可以将经验总结出来,写篇blog,分享给社区;真实的案例总是最具有说服力;</li>
+<li>如果你有时间,可以参与issue和PR的解决,回条用户的问题、PR的review;<code>Good first issue</code>以及<code>Help wanted</code>的issue,总有一个是适合你的;</li>
+<li>如果你想深入学习dubbo-rpc框架,UT是一个非常好的开始,完善和补充现有的UT,一边学习一边贡献,何乐而不为?</li>
+<li>发现了bug,报issue;通过自己的努力最终解决了,提一个issue,<code>first-contributor</code>并不是那么难;哦,对了,拼写错误也算哦;</li>
+<li>如果你发现一个可以帮助用户更方便地使用dubbo,开发、测试、调试、mock、工具等;都可以贡献到Dubbo生态中来;</li>
+<li>最后我们非常欢迎大家通过邮件提想法,也欢迎大家多讨论;你会发现,技术变牛的同时,英文也变的66的了;</li>
+</ol>
+<h2>加入Apache孵化</h2>
+<p>如果大家有好的项目希望捐献给Apache,这个流程可以参考一下;</p>
+<p><img src="../../img/blog/involve-dubbo/get-into-apache.png" alt="img"></p>
+<p>进⼊ Apache 分为三个阶段,准备阶段、孵化阶段和毕业阶段。准备阶段需要做的事情有找到愿意帮助孵化的导师,向Apache 提交进⼊孵化的申请,经过导师们讨论并投票,如果通过的话就可以进⼊入孵化。孵化阶段分为两大环节,第⼀个环节是公司和个人签署协议向Apache 移交代码和知识产权,之后就是在导师的指导下按照Apache的规范做版本迭代、社区运营、发展更多的Committer;如果最终通过了成熟度评估,就可以顺利毕业成为Apache的顶级项目。</p>
+<h2>结语</h2>
+<p>希望越来越多的公司团队和个人能够贡献到国际化的开源社区里去,一起打造我们中国的开源品牌!也希望大家都能愉快去贡献,罗马非一日建成,但付出一定会有回报。</p>
+<p>这里透露一个小福利,所有Apache Committer可以免费使用InteliJ的全套付费产品,包括全宇宙最好用的IDEA。</p>
+</section><footer class="footer-container" data-reactid="19"><div class="footer-body" data-reactid="20"><img src="/img/dubbo_gray.png" data-reactid="21"/><img class="apache" src="/img/apache_logo.png" data-reactid="22"/><div class="cols-container" data-reactid="23"><div class="col col-12" data-reactid="24"><h3 data-reactid="25">Disclaimer</h3><p data-reactid="26">Apache Dubbo is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubatio [...]
+	<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>
+		window.rootPath = '';
+  </script>
+  <script src="/build/blogDetail.js"></script>
+  <!-- Global site tag (gtag.js) - Google Analytics -->
+	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-112489517-1"></script>
+	<script>
+		window.dataLayer = window.dataLayer || [];
+		function gtag(){dataLayer.push(arguments);}
+		gtag('js', new Date());
+
+		gtag('config', 'UA-112489517-1');
+	</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/blog/how-to-involve-dubbo-community.json b/zh-cn/blog/how-to-involve-dubbo-community.json
new file mode 100644
index 0000000..c1a5db8
--- /dev/null
+++ b/zh-cn/blog/how-to-involve-dubbo-community.json
@@ -0,0 +1,4 @@
+{
+  "filename": "how-to-involve-dubbo-community.md",
+  "__html": "<h1>如何参与贡献Dubbo社区</h1>\n<p><img src=\"../../img/blog/involve-dubbo/head.jpg\" alt=\"img\"></p>\n<h2>前言</h2>\n<p>本文首次分享是在Apache Dubbo(incubating)成都meetup上,这个话题是第一次在meetup上讲,不是我们没有更好的话题吗?相反,我们认为这个话题非常重要,建议这个话题以后每次meetup都要讲。</p>\n<p>Dubbo的发展历史大家应该并不陌生了,这里我还是简单回顾一下。Dubbo于2011年在github开源,后面几年由于一些原因停止了维护,直接去年7月份阿里重启维护,并于2018年2月16日捐献给Apache。</p>\n<p>为什么会选择捐献给Apache,主要是为了打消社区对Dubbo未来发展的顾虑,给Dubbo用户足够的信心;Apache认为<code>社区大于代码</code>,非常注重多样性,强调一个项⽬需要有多个公司和个人贡献者参与,现在Dubbo的发展完全是按<code>The  [...]
+}
\ No newline at end of file
diff --git a/zh-cn/blog/index.html b/zh-cn/blog/index.html
index d793f7d..39f7f3d 100644
--- a/zh-cn/blog/index.html
+++ b/zh-cn/blog/index.html
@@ -12,7 +12,7 @@
 	<link rel="stylesheet" href="/build/blog.css" />
 </head>
 <body>
-	<div id="root"><div class="blog-list-page" data-reactroot="" data-reactid="1" data-react-checksum="-1101049034"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/zh-cn/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">En</span><div class="header-menu" data-reactid="7"><img class="header-menu-tog [...]
+	<div id="root"><div class="blog-list-page" data-reactroot="" data-reactid="1" data-react-checksum="54353690"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/zh-cn/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">En</span><div class="header-menu" data-reactid="7"><img class="header-menu-toggle [...]
 	<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>