5W1H聊开源之Who和How——谁、如何参与开源?
上次Who的主体是谁“发明”了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中?
很多人都以为参与开源是一件很高门槛的事情,必须要通过代码贡献才算是开源项目的参与者或贡献者,其实这是一个很大的理解误区。一个开源项目其实就是一个社区,在社区里面会包含各种各样的角色,开源项目的角色有Contributor(贡献者)、Committer(提交者)、Maintainer(维护者)、User(用户)。大多数人对参与开源的理解可能局限在狭义的前两者,而对于这个问题第一反应可能也是直接参与到开发中,才是参与了开源项目。
User
实际上,除了最直接的Contributor和Committer,其他人也可以通过各种各样的方式对项目作出贡献。如禅道项目管理软件的用户们,就是以User的身份参与到了禅道这个开源项目中,对禅道的使用、标记、推荐乃至提交Bug、提供使用反馈,都是一种对开源项目的参与和贡献。
比如在 Linux 内核开发中,到 5.9 版本发展到现在已经有 2.4 万开发者参与其中。没错,他们当时都是这个开源项目的参与者。
Contributor
开源项目的代码、文档和作品都是由项目社区的成员创建、测试、使用、讨论和优化构成。这些过程可划分为各种任务,需要不同技能、不同参与程度及不同技术专长水平。所以,如果想要参与到开源项目中成为真正的贡献者,有很多个活动可选择。比如对该项目发出过pull
request并合并到项目、测试和报告或者修复 Bug、编写和更新软件、撰写或更新文档、翻译、向他人推荐该项目、组织线下活动等。
Committer
Committer通常在项目日常运营过程中通过各种贡献积累,得到项目核心维护团队的提名和认可,最终从一般贡献者成为提交者,并且在开源项目中拥有更高的权限,他们是拥有代码仓库写操作权限的开发者。一般情况
Committer 有代码仓库的权限可以直接提交代码,通常也有权 Review
(检视)别人的代码决定是否可以合并提交。作为一个开源项目的参与者,能够成为 Committer
本身就是一种荣誉,也是鼓励大家能够持续参与、并保持社区健康的很重要的原因。比如成为Apache的Committer可能是很多开源项目工程师的小梦想。
Maintainer
致力于一个项目并促进该项目发展的用户。常常是该开源项目的发起者或owner,也可以是一个团队。他们在开源项目中拥有对此项目的最高决策权,决定项目的功能、战略、发展方向。在
Apache 软件基金会的组织架构体系中,每个项目都有独立的 PMC(项目管理委员会)进行管理,PMC
成员为项目提名并选举新提交者(Committer),PMC 成员还负责提名并投票新的 PMC 成员等。
参与开源的方式
- 直接参与开源项目的开发
- 参与开源项目的测试
- 为开源项目提交Bug、修复Bug
- 开发开源项目的插件
- 参与开源项目推广
- 参与开源项目的文档翻译
除了以上开发者作为个体参与的方式,还可以在商业公司参与开源项目,这样在为开源做出贡献的同时,也可以得到物质报酬,不至于陷入经济窘境。有很多商业公司就是开源项目的发起者或者主要参与者。比如近期很火的OpenHarmony就是由开放原子开源基金会(OpenAtom
Foundation)孵化及运营的开源项目,华为是项目发起者。那么华为公司参与到这个开源项目中的人员,同时也都是开源项目的参与者。
开源这个术语起源于软件开发的语境,用于指定创建计算机程序的特定方法。然而,今天,“开源”可以理解为一种更广泛的价值观——开放交流、协作参与、快速原型设计、透明、任人唯贤和面向社区的发展原则。在其他领域开源精神依然存在,开源的精神本质,就是“我做了一个东西,大家来用吧!”这样一种Geek的精神,同时也有让世界变得更加美好的愿望。
If you find it terrible, make it perfect.
5W1H聊开源之Who和How——谁、如何参与开源?的更多相关文章
- 2017云计算开源峰会 你是想听Linux谈开源还是想听OpenStack谈开源?
2017年,善于把握机遇的企业们不是正在开源,就是走在去开源的路上-- 开源是不是就意味着免费? 开源企业就是要当"活雷锋"? 开源项目究竟如何运作?如何参与开源社区? 如何获得最 ...
- 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...
- 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)
在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...
- 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧
注意:有网友提出部分项目停止更新的事情,这个问题我特意注意过,很多都是小功能组件,功能稳定,没有bug,没更新是正常的.够用就行了.其次技术支持的事情,对开源免费来说,不能太强求,这里发布的都是小功能 ...
- SourceTree的基本使用---团队开发/参与开源
1.实践入门-团队开发 如果你看到第二部分关于“参与开源”的内容,而你的需求是团队开发,你会发现几个不方便的地方: 1.1.组长建项目,组员每次提交,都需要组长审查同意merge 如果你觉得麻烦,组长 ...
- HTTPDNS开源 Android SDK,赋能更多开发者参与共建
为赋能更多开发者参与共建,阿里云HTTPDNS开源 Android SDK,iOS SDK也在做开源准备,不久也将开放给开发者.HTTPDNS是阿里云移动研发平台面向多端应用(移动端APP,PC客户端 ...
- 如何参与开源项目 - 细说 GitHub 上的 PR 全过程
目录 一.概述 二.为什么要参与开源项目 三.为什么我想介绍如何 PR 四.我想参与开源项目,怎么开始? 4.1.寻找一个合适的开源项目 4.2.寻找贡献点 五.我要提交 PR,怎么上手? 5.1.第 ...
- 参与开源之夏 x OpenTiny 跨端跨框架 UI 组件库贡献,可以赢取奖金🏆!这份《OpenTiny 开源贡献指南》请收好🎁!
大家好,我是 Kagol. 近期有几位朋友在 OpenTiny 技术交流群里询问我们在开源之夏(OSPP)的项目,希望能提前做一些准备工作. 这里给大家简单介绍下开源之夏. 开源之夏是由中科院软件所& ...
- 从热爱到深耕,全国Top10开源软件出品人手把手教你如何做开源
摘要:DTT直播邀请到管雷鸣与广大开发者分享"如何在开源领域找到适合自己的路". "想象一下,你写的代码被越来越多的人使用,并极大地帮助他们提高了开发效率和稳定性.&qu ...
- 积极参与开源项目,促进.NET Core生态社区发展
今天早上在微信群里聊天聊到百度的SDK 已经支持.NET Core, 百度已经在3月份就支持了,想起当时还是我在他们的github上提的issue: https://github.com/Baidu- ...
随机推荐
- lib,dll的位置
在添加第三方库的时候需要注意放置的路径,注意区分x86和x64的文件夹路径以及VS的版本,不要放错了 lib的位置:(需要先将lib放到该路径下,不然会说找不到.lib)C:\Program File ...
- C++ 析构函数的调用顺序
如果指针指向基类,但是指针在运行时指向派生类,则该基类必须具有虚拟析构函数,以便破坏派生类.如果没有虚拟析构函数,则只会运行基类的析构函数. 比如: Base* basePtr; basePtr = ...
- 好用的OCR文本识别工具
之所以会用到OCR工具,是因为在看一些扫描版的PDF文档时,有时候需要复制粘贴一些文字,特别是技术性文档,对于一些命令或者代码片段需要复制出来执行验证. 网络上有许多推荐OCR工具的文章,但是大多数都 ...
- RK3568开发笔记(一):瑞芯微RK3568芯片介绍,入手开发板的核心板介绍
前言 目前主流国产芯片为RV11XX.RK33XX.Hi35XX系列,本系列开启RK3568系列的技术教程笔记分享. 本篇主要介绍RK3568芯片和入手开发板的核心板详细介绍. RK3568 ...
- 手动下载sdk及avd
有时候下载sdk的时候报各种错误导致无法下载,如图 那么可以离线下载,到浏览器或IDM中下载图中提示的url链接,将第一个下载的包即sources的解压后放到SDK目录下的sources目录,并重命名 ...
- 【LeetCode递归】括号生成,使用dfs
括号匹配 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例 1: 输入:n = 3 输出:["((()))","(() ...
- 04、Etcd中常见的概念
本篇内容主要来源于自己学习的视频,如有侵权,请联系删除,谢谢. 上一章节,我们学习了 Etcdctl 的使用,从中窥探了 Etcd 的强大之处.从这一节开始,后面的内容基本上都是偏理论的东西,争取在看 ...
- 【Azure 环境】使用 az ad group create 时候遇见 Insufficient privileges to complete the operation
问题描述 使用China Azure,通过Azure CLI 创建AAD组报错,提示权限不足 Insufficient privileges to complete the operation # 使 ...
- 【Azure 应用服务】Azure Durable Function(持久函数)在执行Activity Function时候,因为调用函数名称错误而导致长时间无响应问题
问题描述 在使用Azure Durable Function函数,调用函数链模式来调用多个Activity Function. 函数链:https://docs.azure.cn/zh-cn/azur ...
- Linux_Centos_yum报错总结
此篇适用于yum报错[尝试其他镜像]并且[curl 外网]不通的情况,此时一般考虑是网络的问题 一,出现的报错信息: 此时测试curl / ping www.baidu.com会发现无法连通 二, ...