diff --git "a/\347\254\2545\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\344\270\252\344\272\272\347\273\264\346\212\244\345\222\214\345\273\272\347\253\213\347\244\276\345\214\272\357\274\214\344\270\244\350\200\205\345\246\202\344\275\225\351\200\211\346\213\251.md" "b/\347\254\2545\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\344\270\252\344\272\272\347\273\264\346\212\244\345\222\214\345\273\272\347\253\213\347\244\276\345\214\272\357\274\214\344\270\244\350\200\205\345\246\202\344\275\225\351\200\211\346\213\251.md" index 942d4cd01e1ca36f4a2c14bc4d8b9bce0b3d866d..ad2346deeddf52cbce160f14b16179648bce3eb1 100644 --- "a/\347\254\2545\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\344\270\252\344\272\272\347\273\264\346\212\244\345\222\214\345\273\272\347\253\213\347\244\276\345\214\272\357\274\214\344\270\244\350\200\205\345\246\202\344\275\225\351\200\211\346\213\251.md" +++ "b/\347\254\2545\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\344\270\252\344\272\272\347\273\264\346\212\244\345\222\214\345\273\272\347\253\213\347\244\276\345\214\272\357\274\214\344\270\244\350\200\205\345\246\202\344\275\225\351\200\211\346\213\251.md" @@ -4,7 +4,7 @@ 开始的方法也非常简单 - 以个人的特长、经验和兴趣来创建一个项目并在开源平台(比如 Gitee)与大家分享。 -通过开源平台提供的工具就可以很有效的与用户进行沟通。包括创建 issue,review Pull Request (PR),简单的任务管理,发布版本,创建 wiki 等。 +通过开源平台提供的工具就可以很有效的与用户进行沟通。包括创建 Issue,Review Pull Request (PR),简单的任务管理,发布版本,创建 WiKi 等。 在与用户的交流过程中可以不断积累经验,改进项目,进而回馈用户。 @@ -18,32 +18,32 @@ ## 建设开源项目社区 -开源社区所涉及的范畴要比个人维护要广的多。发起者一般是由一个组织 (organization)、一个公司或者公司与组织的联盟等(当然也可以以个人的名义发起)。 +开源社区所涉及的范畴要比个人维护要广的多。发起者一般是由一个组织 (Organization)、一个公司或者公司与组织的联盟等(当然也可以以个人的名义发起)。 若干志同道合的个人可以成立开源组织,以协作的方式建立项目社区。开源组织成熟后,可以吸纳其他开源组织或者公司加入,从而扩大项目的影响力。 社区围绕着一个共同的目标,借用组织或公司的人力财力,将一个或者若干个项目向前推进。 -社区针对项目的投入不光体现在对项目功能的开发和 bug 修正,更是从更高的层面来提升项目的影响力、路线图、沟通协作和质量保证等。具体来说: +社区针对项目的投入不光体现在对项目功能的开发和 Bug 修正,更是从更高的层面来提升项目的影响力、路线图、沟通协作和质量保证等。具体来说: 项目的影响力主要体现在使用者的质量和数量。社区可以通过吸收战略同盟会员等手段吸引在该领域有影响力的公司加入社区,并将该开源项目应用到公司的产品中,从而大大提升项目的实用性,扩展应用实例。继而提升项目的成熟度,吸引更多的会员加入,不断滚雪球,将优势扩大。 借助与业内厂商或者产业联盟沟通协作的优势,社区项目的路线图会更加贴近市场,有着非常强的针对性,符合市场愿景。 -社区的沟通协作会更加规范。用户的参与贡献方式会被更加正式的说明和要求,甚至签订 CLA (Contributor License Agreement),从而帮助项目使用者很好的规避一些风险 (如许可证、著作权、专利等)。用户提出的 issue 由团队在规定的时间内按照优先级予以处理。定期组织会议,培训或者线下活动等。 +社区的沟通协作会更加规范。用户的参与贡献方式会被更加正式的说明和要求,甚至签订 CLA (Contributor License Agreement),从而帮助项目使用者很好的规避一些风险 (如许可证、著作权、专利等)。用户提出的 Issue 由团队在规定的时间内按照优先级予以处理。定期组织会议,培训或者线下活动等。 因为社区项目一般都是将实际产品应用作为目标,所以质量保证上有着更加高的要求。CI 或 CD 成为社区项目的必选项。针对测试投入大量的人力物力(比如租用测试服务器或者云服务器)。 -除此之外,社区运行的主要项目一般会有更多的配套项目进行支持,比如上 test suite、 API 兼容性测试工具、脚本工具等。 +除此之外,社区运行的主要项目一般会有更多的配套项目进行支持,比如上 Test Suite、 API 兼容性测试工具、脚本工具等。 -在与业内其他相关系统的集成方面,社区也会更加积极的推进,将集成方案和 demo 推到对方仓库或者维护在本项目仓库。 +在与业内其他相关系统的集成方面,社区也会更加积极的推进,将集成方案和 Demo 推到对方仓库或者维护在本项目仓库。 综上所述,开源社区是以开源为基础,协作为框架,应用为目的(之一)的高效运作团体。所以社区内部的管理上也会更加规范。 尽管社区的组织形式不尽相同,但是一般都会有核心决策团体或者管理委员会来从技术和项目管理的角度履行管理者的权力。甚至有些社区组织结构非常接近于公司的产品开发,从而保证其协同效率。 -## 个人维护 vs 建设社区 +## 个人维护 VS 建设社区 从上面的描述中可以看出,个人维护更加适合初期学习开源项目维护的朋友,积累沟通协作的经验,深入理解开源文化和开源世界。