Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我在开源社区的 4 年运营经验

我在开源社区的 4 年运营经验

作者头像
开源社
发布于 2019-11-23 08:24:42
发布于 2019-11-23 08:24:42
9520
举报
文章被收录于专栏:开源社开源社

| 作者:Linda Peng

| 原文译者:王文刚

| 转载自:InfoQ 平台

| 编辑:Corrie

我的开源故事开始于 2014 年,当时我从参加 Hacker Hours 之类的免费技术聚会中受益匪浅,很多开发者聚在一起,在编程问题上互相帮助,这种知识共享文化对一名刚从校园毕业,且没有大型协作经验的毕业生来说是非常有趣的。

虽然这种技术聚会很好,但我发现这种方式比较容易分散注意力。偶然间,我发现与其他开发者通过 Google Hangouts 屏幕共享是解决分散注意力问题的绝妙方法。我发现许多初学者很容易陷入编程的细节中,但是与其他人结伴是更快调试这些问题的有效方法。此外,通过网络连接,随时随地都可进行“远程聚会”,这将有助于因日程安排或地理问题而无法参加技术聚会的人。

接触开源

最初,Google Hangouts 由一系列 Google Group 邮件列表组织而成,形成了一个很小的数百人的社区。几个月后,我们发现需要一个合适的平台来主持远程学习课程。因此,我为该项目启动了一个基于 MeteorJS 构建的 GitHub 存储库。

现在,CodeBuddies 已有 5 年历史,并且已经成长为国际社区,仍然本着自愿且非营利的原则。开源是我做的最好的事情。尽管它不是传统的开源库或工具,但我所经历的许多学习和挑战与其他开源维护者完全一样。

接下来,我将分享维护此开源项目汲取的十个经验。

1

向贡献者学习

做开源,可以从其他贡献者那里学到很多。我清楚地记得两个核心贡献者(distalx 和 d3vild06)在项目早期就教了我两个基本准则:

  • 不要让贡献者直接 push 到 master,而是 fork 项目,然后提 PR;
  • 务必评审代码,然后再合并。

过往,我是没有这种意识的,但我接受了上述反馈,并继续向每个新人学习更多的课程,将他们的观点、问题和技术知识的多样性带入项目。

我从贡献者那里学到的很多东西甚至都与软件无关,而与项目工作流程或社区相关。 项目最开始的一个贡献者(olii)大大改善了早期的 CONTRIBUTING.MD 文档。 我学会了如何设置 CircleCI,以及如何使用 Invision 等设计工具。

提示:不确定如何检出 PR 的 git 分支? 请遵循以下命令:

2

项目代码实时在线

我通过在 codebuddies.org/hangouts 上安排视频群聊来为自己的项目提供技术协助,该视频群聊主要是通过代码库吸引新的贡献者。由于以下原因,我建议其他开源项目维护者也做同样的事情。因为这为新贡献者提供了一个提问的渠道,确实可以帮助 git 和 GitHub 新用户。此外,我发现对话可以帮助加强联系。许多参加过代码演练的人已经成为目前主要的贡献者和朋友。

3

充分利用 GitHub 的功能

我将分享一些有关使用 GitHub 的快速技巧,比如利用 GitHub 的问题和 PR 模板;保护 master 分支;使用 CI 集成,以便在合并新提交的 PR 之前对它们进行检查;认真考虑在 GitHub 提交的问题中添加易于搜索的标签。在 CodeBuddies 上,贡献者(billglover)亲自负责清理标签,并引入了一种更有效的问题标签系统。

确保贡献者就正在处理的问题进行交流。例如,在 Hacktoberfest 业务繁忙的时期,多个人可以很容易地为同一问题提交 PR,最终导致彼此冲突。在 CodeBuddies,这是我们为减少问题冲突而制定的政策:

  • 如果贡献者发现错误或尚未提交功能请求,请要求他们提交。
  • 请和贡献者就分配问题进行沟通。
  • 维护者将重新标记该问题,从标签开始。
  • 如果提出问题的人在两天内没有更新,则维护者会将问题重新标记为再次需要帮助标签。

4

贡献不一定全部是代码

贡献不必全部都是代码。在 CodeBuddies 上,我们使用“所有贡献者”插件,该插件可识别贡献者为项目提供的替代贡献,例如设计、文档帮助、项目管理、内容、贡献者演练、请求审查以及有关 Github 上问题的讨论。

如果没有 adachiu,那么 CodeBuddies 就不会有今天,因为 adachiu 设计了 CodeBuddies 的徽标和网站的许多部分。

通常,我还尝试为贡献者提供他们想要的方式添加到项目中。例如:由 billglover 创建的 Buddybot,可让 Slack 社区中的用户将消息标记到私有管理员频道;由 bethanyg 在 stain88 和 angelocordon 的帮助下创建 Greetbot 向 Slack 上的新成员发送欢迎消息,并允许用户向该机器人请求编程资源;Gaurav 编写了一个 Slack 集成,使成员可以从 Slack 内部安排有关 CodeBuddies 的视频群聊。

最终,如果没有无数人的参与,他们将不会成为今天的社区,这些人提供反馈,在 Slack 上互相帮助解决编程问题,并发起群聊,邀请世界各地的开发者一起讨论。

我记得一个周末,我随机参加了一个学习群聊。事实证明,参与者来自澳大利亚、尼日利亚、芬兰、中国和印度。每个人都在不同时区随机地在同一小时自由活动,并且在增进对技术概念的理解方面有着共同的兴趣,这是因为有人在网站上安排了时间和空间,这些贡献者也提供了帮助。

5

API 发生变化

开源项目所依赖的依赖项在整个项目过程中可能会发生很大的变化。这个过程还要密切关注 Github 安全警报,这些通知通常会在存储库顶部告警,其他工具可以帮助及时了解安全警告和依赖项升级:

  • Snyk
  • Greenkeeper
  • Dependabot

6

公共工作

从本质上讲,从事开源工作是公开的,但也可通过其他方式公开工作。例如:

  • 撰写博客文章(如 Tumblr);
  • 写 ReleaseNote;
  • 视频采访社区成员和核心贡献者;
  • 在处理代码库时发布到到 Twitch;
  • 在 Slack 或 Discord 社区中创建开放渠道,以邀请成员并讨论项目更新。

上述所有,可以帮助社区更好地了解项目路线图,更好地招募新的贡献者,并阐明迄今所取得的进展。

7

金钱不是感谢贡献者的唯一奖励

我在 2017 年和 2018 年参加的 SustainOSS(我在 2017 年和 2018 年参加的开源会议)上的一个话题是如何为开源项目提供财务支持,Nadia Erghbal 在 2016 年为此撰写了出色的指南。

值得分享的是,如果项目没有很多钱,可以通过多种方式奖励贡献者。首先要记住,金钱并不是人们在贡献时一定会期望得到的回报。做出贡献的常见原因包括:

  • 培养技术技能或探索新技术的机会
  • 相信项目的总体目标
  • 与他人合作的机会
  • 在未来的工作面试中有机会谈论他们的工作

关于非金钱奖励的主要提示是:在发行说明中感谢贡献者,查找愿意捐赠非货币性物品的赞助商,例如网站托管(感谢 DigitalOcean,MongoDB Atlas 和 Netlify),课程促销代码(感谢 egghead.io 和 Tyler McGinnis),也可以抽奖给贡献者。如果碰巧拥有少量预算,那么可以使用一些钱来购买 logo 贴纸感谢核心贡献者。

8

社区管理和项目管理技能

也很有价值

作为开源项目维护者,您可能会戴上许多头衔:

  • 项目经理 (project manager)
  • 产品经理 (product manager)
  • 工程经理 (engineering manager)
  • 社区管理员 (community manager)
  • 代码贡献者(code contributor)

开源本质上是陌生人一起工作和众筹代码。作为维护者,可能会遇到一些需要调解的冲突,例如人们在技术指导上存在分歧,以及主要通过文本交流的人们之间的误解。这就需要制定路线图,传达愿景,确定问题的优先级,加入新的贡献者,学会委派并激发新兴的领导者。

老实说,我没有打算参加所有这些工作。过去几年,随着社区的发展,以及从关心该项目的成员提供的想法和反馈中学到的知识,让我感到满意。因此,在某种程度上,社区给了我学习的机会。

9

倦怠

事实上,倦怠是真实存在的,尤其是维护开源项目并不是你的全职工作时。对于一般的辅助型项目,建议弄清楚要从中获得什么,是因为正在努力学习还是因为喜欢新任务,喜欢与为该项目做出贡献的开发者合作等。

10

永无止境

我花了一段时间才能接受的一点是,CodeBuddies 永远不会“完成”。最终,每个开源项目都面临这个问题,类似#sustainnoss 这样的社区正在探索的关键问题是如何使开源项目更具可持续性。

*本文图片来源网络,如有侵权请联系删除!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
帮助开源社区不断发展的3种方法
我们的技术社区陷入了困境。 Meetups 正在消失。 社区举办的会议正在取消。 开源项目失去了维护者。 社区组织者是我们社区的基石,他们正在疲惫不堪。
云云众生s
2024/03/28
850
如何做好一个开源社区?
开源社区是一个由志愿者、开发者和用户组成的社区,共同参与开发和维护开源软件项目。要做好一个开源社区,需要以下步骤:
徐建国
2023/02/23
4390
如何做好一个开源社区?
📌 开源社区新生态:AI贡献者VS人类维护者
开源社区曾是程序员的“乌托邦”,GitHub上每分每秒的代码提交、Issue讨论和PR合并,构成了技术进步的毛细血管。但2023年,一个标志性事件悄然发生:GitHub Copilot生成的代码占平台总提交量的12% (数据来源:GitHub年度报告)。AI不再只是“工具”,而是以“贡献者”身份踏入开源战场。
Jimaks
2025/04/17
1340
Github 开源项目贡献指南:如何给开源项目做贡献 (上)
腾讯开源
2017/05/05
3.4K0
Github 开源项目贡献指南:如何给开源项目做贡献 (上)
Github开源项目贡献指南:创建开放的社区
原文【Open Source Guides——Building Welcoming Communities】 建立成功的项目 你们已经启动了你们的项目,你们正在传播它,同时有人正在查看它。真棒!现
腾讯开源
2017/05/11
1.5K0
Github开源项目贡献指南:创建开放的社区
开源项目赋能利器 | 衡量社区指标
对于如何衡量一个开源项目的质量和健康状态,我们可以从分析项目的不同方面着手,例如技术健康状况(GitHub 上的分叉数量、随时间变化的贡献者数量以及bug的数量)、财务状况(捐赠和收入)、社区活跃度(社交媒体提及、帖子分享和跨社交媒体渠道的情感分析)以及多样性和包容性(制定行为准则、创建包容性活动,举办对色盲人士友好的演示文稿以及项目设计等)。
TARS基金会
2022/03/18
5600
开源项目赋能利器 | 衡量社区指标
TODO指南:参与开源社区
不仅仅在技术领域,在各个行业,开源已经成为开发软件的实际途径。随着公司使用开源代码来开发自己的商业产品和服务,他们也看到了开源贡献回馈给开源项目的策略价值。
CNCF
2019/12/05
9790
TODO指南:参与开源社区
全职工作者如何为 Kubernetes 做贡献
我是从 2018年10月开始为 Kubernetes (K8s) 做贡献的。那时我在 IBM 的产品安全事件响应团队工作,被分布式系统所吸引,但日常工作中接触不到,于是我导师 Lin Sun 建议我在空闲时间为开源的分布式系统做贡献。自此,我开始对 K8s 产生兴趣,再也没有回头。
开源社
2020/06/24
8590
全职工作者如何为 Kubernetes 做贡献
如何玩转 Kubernetes 开源社区?这篇文章一定要看!
近日,「DaoCloud 道客」成功进入 Kubernetes 开源榜单累计贡献度全球前十,亚洲前三。基于在 Kuberntes 开源社区的长期深耕细作,「DaoCloud 道客」积累了一些心得,特写此文章,旨在帮助对开源贡献感兴趣的同学快速⼊⻔,并为之后的进阶之路提供⼀些参考和指导意义。
CNCF
2021/10/15
1.2K0
加入开源社区,让开源成为日常习惯 | LF APAC 首批开源布道者发布会演讲文字稿
陈一苇,Linux Foundation APAC 首批开源布道者(Open Source Evangelist)之一;SuperEdge 边缘容器开源项目发起人之一;腾讯云资深架构师,拥有多年 Kubernetes,云原生架构设计开发经验。 本文整理自 陈一苇 在 2021 年 2 月 3 日 Linux Foundation APAC 首批开源布道者官方发布会上的分享内容——加入开源社区,让开源成为日常习惯。 前言 在大家阅读发布会的文字稿之前,我想先聊聊为什么我想去讲这个题目。 在发布会几分钟的分享
腾讯云原生
2021/02/07
1K0
Github 开源项目贡献指南:领导和管理社区
本文介绍了开源项目贡献者指南和如何管理开源项目,包括贡献者、领导者和维护者等角色,以及如何进行社区管理和贡献者管理。同时,还探讨了开源项目治理模型和开源项目中的商业元素,以及如何平衡商业和开源的需求。
腾讯开源
2017/05/04
5.2K0
Github 开源项目贡献指南:领导和管理社区
顶级开源社区都能吵起来?
因为订阅了 Pulsar 的开发者邮件,前段时间看到一封标题为《(Apache committer criteria) [ANNOUNCE] New Committer: Asaf Mesika》的邮件。
crossoverJie
2024/03/25
1100
顶级开源社区都能吵起来?
Envoy 代理开源五周年,创始人 Matt Klein 亲述开源心路历程及经验教训
‍‍ 译者注:本文译自 Envoy 代理的创始人 Matt Klein 于9月14日晚在个人博客上发布的文章 5 year of Envoy OSS[1]。原文地址:https://mattklein123.dev/2021/09/14/5-years-envoy-oss/。他在 Twitter 因为自己的程序 bug 造成重大事故而离职,后加入 Lyft,在开源 Envoy 之前几乎没有贡献和管理开源项目的经验,这篇文章分享了他个人及 Envoy 开源的心路历程,在投身开源 Envoy 还是为雇主
腾源会
2021/09/18
4510
如果您有全职工作,如何为Kubernetes做贡献
当我在IBM产品安全事件响应团队工作时,我于2018年10月开始为Kubernetes(K8s)做出贡献。我被分布式系统所吸引,但在日常工作中无法与它们合作,因此我的导师Lin Sun建议我在业余时间为开源分布式系统做出贡献。我对K8感兴趣,再也没有回头!
Hyman.W
2019/11/15
1.5K0
如果您有全职工作,如何为Kubernetes做贡献
开源社区的运作模式:Debian Vs. Ubuntu
Debian和Ubuntu都有一组官方授予的针对贡献者的成员角色,他们可以以参加选举或其他官方决策等方式参与到项目的治理中,同时这也是给贡献者分配工作的一种手段,大部分贡献者对他们获得的身份都感到很自豪。
Debian中国
2018/12/20
2K0
开源社区的力量:软件工程的协作新模式
在当今数字化时代,开源软件社区正以惊人的速度蓬勃发展,成为软件工程的一支强大力量。本文将深入探讨开源社区的兴起、协作模式的变革以及它如何塑造软件工程的新模式。
人不走空
2024/02/20
5500
TODO指南:在开源社区建立领导力
集成到开源社区需要时间和精力,并且需要一种新的产品开发方法。传统的专有开发需要保密和管理层次结构,开源开发需要开放性和价值共识。代码贡献,而不是标题或职位,决定了开源项目的影响力和技术方向。
CNCF
2019/12/05
4690
TODO指南:在开源社区建立领导力
开源项目的社区建设与管理
开源项目的成功往往依赖于一个活跃且健康的社区。本文将探讨如何建设和管理一个开源项目的社区,确保其持续的健康发展。
猫头虎
2024/04/09
3640
开源项目的社区建设与管理
【开源社区建设】开源社区如何组织运营?
开源社区作为集结全球开发者智慧和力量的平台,其组织运营的成功与否直接关系到社区的繁荣与活力。为了确保开源社区的持续健康发展,我们需要从多个维度进行深入思考和细致规划。
帐篷Li-物联网布道师
2024/03/24
7620
大学生开发者通过开源项目积累实践经验指南
开源社区为开发者提供了一个展示技能、学习新技术和与全球开发者合作的机会。对于在校生来说,参与开源不仅能帮助他们提升技术水平,还能积累实战经验、增强就业竞争力。本文将探讨在校生如何积极参与开源,并分享一些实践建议和代码实例。
一键难忘
2025/01/03
1570
推荐阅读
相关推荐
帮助开源社区不断发展的3种方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档