头图来源:https://opensource.guide/
来源 | 阿里巴巴云原生公众号

只有贡献代码才算是参与开源项目社区贡献吗?

一说到参与开源项目贡献,一般大家的反应都是代码级别的贡献,总觉得我的代码被社区合并了,我才算一个贡献者,这是一个常见的错误认知。其实,在一个开源社区中有非常多的角色是 non-code contributor,一个开源社区中的很多关键职责被大家给忽略了。

组织活动也可以是贡献社区:

  • 你可以像远在巴西库亚巴的 @fzamperin学习,为你喜欢的开源项目组织 workshop 或线下 meetup
  • 你还可以帮助社区成员找到合适的线下峰会来提交技术议题
  • ……

技术写作或者技术布道也是贡献社区:

  • 为你喜欢的开源项目编写或者改进文档
  • 建立一个如何使用这个开源项目的 samples
  • 将文档翻译成其他语言,帮助全球开发者认识、使用该项目
  • 在自己的公众号或者博客分享使用该项目的指南和心得
  • ……

设计和官网开发也是贡献社区:

  • 重构开源项目官网来帮助开发者更好的认识、使用该开源项目
  • 进行用户调研来更好地改善官网导航和目录
  • 构建一个 style guide 来帮助该项目拥有一个更统一、完善的视觉设计
  • 为该开源项目设计贴纸、T 恤等周边
  • ……

Apache Dubbo Samples SIG 成立!samples 贡献者招募中

Apache Dubbo 发展到今天,已经有 386 个贡献者,贡献者了包括代码、测试、用例、文档、使用建议等丰富内容。当前 Dubbo Core 有 2.7、3.0 两个非常活跃的演进分支,其中 2.7 版本已被众多知名企业大规模的投入生产环境,如携程、工商银行、瓜子二手车等,而 3.0 分支也已经在 3 月份发布了 preview 版本,按照计划在 6 月份第一个 3.0 可用版本也将正式发布。

内核的快速演进与迭代促进了 Dubbo 的快速发展,同时,也给整个社区与 Committer 核心项目组带来新的挑战,这体现在:

  • 新 Feature 相关的用户示例与文档缺失。用户对新版本特性如何使用无从知晓,翻阅代码成为唯一的途径。
  • 稳定性无法得到充分保障。在迭代过程中,单元测试、集成测试没有得到有效的补充,这导致测试覆盖度的下降和回归成本的高涨,更糟糕的是如果发版环节有些问题仍未被发现,则它们将不可避免的被带到用户使用环节。

由于文档和用例的缺失,我们不得不处理大量的 Issue、也包括其他的线上答疑,来解答用户的疑问,其中有一些是用户不知道某个具体功能怎么用,有一些则是使用了不正确的配置方式导致不能正常运行;稳定性的下降则是对我们自己以及 Dubbo 用户两方面的双重打击,持续的出现问题会导致用户开始对 Dubbo 的版本发布失去信心,而对我们这些核心维护者而言,花费大量精力完成的版本却给用户带来了困扰,这会让整个开发组也变得沮丧。毫无疑问,对于 Dubbo 社区而言,解决以上问题成为了当前迫在眉睫的工作任务,这本身的重要性并不亚于大家所热衷的核心功能开发,但我们也认识到,投入到其中需要花费一定的精力,仅仅靠当前的几位维护者会非常吃力,尤其是考虑到他们还需要兼顾整个 Dubbo 社区的运作。

在这样的背景下,我们想到了召集来自社区的力量,今天在 Committer 核心成员的一致建议下,Apache Dubbo 决定成立 Samples SIG(注:SIG 是 special interest group 的缩写,即兴趣小组),以期能改善以上的示例缺失、稳定性等问题。毫无疑问,这个 SIG 的运转需要广大开发者的积极参与,当然,社区的核心开发者们也会积极的活跃在其中。

Dubbo 现状

当然,能稳定的支撑这么多企业与实例稳定的运行,Dubbo 的测试与稳定性机制也并非一无是处,以下是 Dubbo 具备的一些能力与运作机制。

  • 单元测试。单元测试全部位于_https://github.com/apache/dubbo_主干仓库,目前能达到大概 40% - 50% 的覆盖度,但遗憾的是近期的很多新增修改,包括 2.7 与 3.0,在这方面做的都有所欠缺。
  • 集成测试。Dubbo 的集成测试项目位于_https://github.com/apache/dubbo-samples_,里面包含了我们当前建设的大部分 Dubbo Feature 用例,你可以把当做一个Quick Start的示例工程用,也可以作为功能参考手册(代码),我们在其上构建了自动化的集成测试机制,能实现对所有用例的全量验证。
  • 基于 Github Actions 的自动化测试流程。每一次代码提交、PR 都会触发这个 Workflow,它会对主干仓库进行编译,并依次运行单元测试、集成测试,同时还有一些代码合规范的检查。

我们要做的提升计划,就是在以上已有组件的基础之上继续完善。通过梳理,我们总结出以下部分内容需要重点完善:

  • Dubbo 3.0 中新引入的一些核心机制、组件的单元测试覆盖
  • Dubbo 3.0 中新引入的一些核心组件的用户用例、集成测试
  • Dubbo 重点组件的,如 Zookeeper、Nacos 等
  • Dubbo 内核一些核心组件,如 Registry、Directory、URL、FilterBuilder、Context、AsyncRpcResult、ApplicationModel、ServiceRepository 等的单元测试覆盖

请关注下文的 SIG 联系方式,以实现更好的持续协作和任务进度的更新。

对参与者的帮助与要求

参与到 SIG 中来,不论你是学生、初学 Dubbo 的开发者、用户、或是混迹职场的技术达人,这里应该都能您带来一些帮助:

  • 掌握 Dubbo 新特性的使用方式
  • 快速了解 Dubbo 的核心工作机制
  • 掌握 Dubbo 的演进动态的一手信息
  • 如果你是企业用户,也能共同实现推动 Dubbo 稳定性的提升,解决 Dubbo 的企业落地问题
  • 与业内的技术专家、同行深入交流,提升自己,实现信息共享
  • 积累活跃度,成为开源达人,与 Apache 结缘并有机会成为 Apache Dubbo Committer

另外,社区也会不定期的举办线上、线下活动,获得社区贡献者专属礼物。
我们对参与者的唯一要求就是热情,希望参与者能持续的投入在 Dubbo 社区的建设中,并定期的参加我们 SIG 的交流活动,以实现与其他人的协作。

参考文档

  • https://opensource.guide/how-to-contribute/

参与 Apache 顶级开源项目的 N 种方式,Apache Dubbo Samples SIG 成立!相关推荐

  1. 参与Apache顶级开源项目的N种方式,Apache Dubbo Samples SIG 成立!

    简介:一说到参与开源项目贡献,一般大家的反应都是代码级别的贡献,总觉得我的代码被社区合并了,我才算一个贡献者,这是一个常见的错误认知.其实,在一个开源社区中有非常多的角色是 non-code cont ...

  2. 创建 SpringBoot 项目的 3 种方式

    前言 如果你是一个浸淫 SpringBoot 已久的老手,那么可能下面的内容可能不那么适合你,写得很简单.但如果是 对于一个刚学习 SpringBoot 的新手而言,我想多少还是有些用的.本文就来手把 ...

  3. Tomcat部署Web项目的3种方式

    一.将war包丢进webapps 这是最简单粗暴的方式:将web工程打成war,丢进tomcat/webapps目录即可,tomcat会自动解压.无需修改任何配置文件即可完成部署. 这里我准备了tom ...

  4. 学生开源项目_吸引学生加入您的开源项目的9种方法

    学生开源项目 社区经理有很多文章,介绍如何吸引学生志愿者加入您的开源项目. 这次,我将从学生的角度写同样的事情. 这是您如何吸引我 加入您的开源项目的方法 . 制作一个我将实际使用的开源项目 这是我要 ...

  5. 滑了个大稽,顶级开源项目的 5.4 万个 Star 一夜之间化为乌有!

    出大事了,一个非常知名的开源项目 Star 数量一夜之间归零了

  6. 开源指南|如何从零开始参与 Apache 顶级开源项目?(二)

    作者:苏奕嘉|SelectDB 生态研发工程师 写在开头 上一篇文章 如何从零开始参与 Apache 顶级开源项目?我们介绍了 Apache Doris 社区的工作机制.如何参与社区贡献以及如何完成第 ...

  7. IaaS开源软件之zstack(OSC中国开源项目的TOP30)

    IaaS开源软件之zstack(OSC中国开源项目的TOP30) 中国的开源软件事业正在蓬勃发展,开源的技术也成为了中国信息技术产业不可分割的一部分. 全新的开源IaaS国产开源软件-zstack曾于 ...

  8. 简单介绍apache虚拟主机配置的三种方式

    本文主要介绍了apache虚拟主机配置的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 记事本打开httpd.conf文 ...

  9. GitHub 超 14,000 Star,中国又一 Apache 顶级开源项目诞生!

    [编者按]时至今日,Apache bRPC 在 GitHub 上已经收获了 14,356 个 Star,并正式从 Apache 孵化器毕业成为顶级开源项目.但 bRPC 的成功并不是一蹴而就的,开源近 ...

最新文章

  1. 【H.264】x264命令详解:x264 --fullhelp
  2. 淘宝技术沙龙「系统稳定性与性能」的笔记与思考
  3. python制作图片墙_利用python生成照片墙的示例代码
  4. Cuda:invalid device pointer
  5. php 5.6.21连接mysql_IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
  6. opencv 编译安装时出现报错 modules/videoio/src/cap_ffmpeg_impl.hpp:585:34: error: ‘AVStream {aka struct AVStre
  7. 协助你写 Python,只是 AI 取代程序员的第一步
  8. js日历控件源代码下载
  9. 酒店抖音小程序开发方案
  10. 正则表达式的进阶用法——预查与分组
  11. 计算机网络系统不可用,网络连接不可用,小编教你电脑网络连接不可用怎么办...
  12. 国外打工人分享如何如何通过销售excel电子表格赚到 28 万美元
  13. ACM里的生成函数初探
  14. 学会php想转学java好学吗_Java和PHP哪个好学
  15. ACRO2010__系统性综述: 达到缓解的AS患者能否停用TNF拮抗剂
  16. Visual Studio/AnkhSVN在VS中出现SVN代码冲突的解决方法
  17. 弥散磁共振成像技术:在脑内的应用
  18. MATLAB colorbar颜色红黄绿,Matlab获取colorbar颜色并转换为需要的CPT文件
  19. 【JAVA今法修真】 第八章 仙道万维网 圣地元宇宙
  20. 工具篇---Node.js的安装和配置

热门文章

  1. 攻击面管理(ASM),企业攻击面管理实践指南
  2. 【正则】匹配html标签里的内容,不含标签
  3. 1.3 List集合:ArrayList和LinkedList类的用法及区别
  4. HDU 1711 -Number Sequence(KMP)
  5. 2.3.8 吸烟者问题
  6. java的准动态(反射)
  7. Thymeleaf语法变量
  8. zemax 宏怎么编写数组_编写Excel VBA程序的10个技巧
  9. IDEA 上位?不!Eclipse Theia 1.0 发布!
  10. 01 ORA系列:ORA-00904 标识符无效 invalid identifier