开源项目贡献者

by Shubheksha

通过Shubheksha

如何吸引新的贡献者加入您的开源项目 (How to attract new contributors to your open source project)

It’s hard to attract contributors to your FOSS project — especially contributors who are new to open source.

很难吸引到您的FOSS项目的贡献者,尤其是刚接触开源的贡献者。

Project maintainers often discuss making their open source projects more beginner-friendly, so they they can attract new contributors and make them feel welcome. But this dialogue often gets trapped in the echo chamber of maintainers themselves. Instead, it needs to involve the other party: the new contributors themselves.

项目维护者经常讨论使他们的开源项目更适合初学者,以便他们吸引新的贡献者并使他们感到受欢迎。 但是这种对话常常陷入维护者自己的回声室。 相反,它需要让另一方参与:新的贡献者自己。

During my short time as an open source contributor, I’ve browsed through tons of projects, and contributed to a few of them as well. In this post, I’ll try to list what appealed to me as a new contributor, and what didn’t. And I’ll use a few projects as case studies.

在担任开源贡献者的短时间内,我浏览了无数项目,并为其中的一些项目做出了贡献。 在这篇文章中,我将尝试列出吸引我成为新贡献者的因素,而不是吸引我的东西。 我将使用一些项目作为案例研究。

提示1:适当地标记初学者问题 (Tip 1: Label beginner issues appropriately)

This is definitely the most important consideration to me as a potential contributor.

作为潜在的贡献者,这绝对是我最重要的考虑因素。

Labels make it easier to find issues that can serve as a beach head for a first contribution. If your project doesn’t have these, it significantly raises the bar for contributing to it.

标签可以更轻松地找到可以作为第一手资源的问题。 如果您的项目没有这些内容,那么它将大大提高对其做出贡献的标准。

It is very difficult for someone unfamiliar with your codebase to gauge the difficulty of an issue. So a generic label like help wanted isn’t useful enough on its own. Try using more specific labels, such as good first bug, easy, low hanging fruit, etc. to communicate that an issue is easy enough for an initial contribution.

不熟悉您的代码库的人很难评估问题的难度。 因此,像help want这样的通用标签本身并没有足够的用处。 尝试使用更具体的标签,例如良好的初次发现错误,容易获得的结果,低垂的果实等,以表明问题足够容易进行初始贡献。

提示2:建立适当的贡献准则 (Tip #2: Establish proper contributing guidelines)

A well-written Contributing.md can describe the workflow your project’s maintainers expected contributors to follow. This is easy to document, and will save both sides a significant amount of time.

编写良好的Contributing.md可以描述您的项目维护人员期望的贡献者遵循的工作流程。 这很容易记录,并且可以为双方节省大量时间。

Specify whether the contributor is required to work on a separate branch for each issue, or to squash their commits and rebase their changes before submitting a PR. Try to link to an appropriate tutorials for each of these processes in case the contributor isn’t yet familiar with them.

指定是否需要贡献者针对每个问题在单独的分支上进行工作,或者在提交PR之前压缩其提交并重新存储其更改。 如果贡献者尚未熟悉这些过程,请尝试链接到每个过程的相应教程。

提示3:记录项目的设计,架构和目录结构 (Tip #3: Document your project’s design, architecture, and directory structure)

Having a document that gives a high-level overview of the design and architecture of your project can save both parties a lot of time.

拥有一个可以对项目的设计和体系结构进行高层概述的文档可以为双方节省大量时间。

Instead of explaining the same thing over and over again to every new contributor, take note of questions that are frequently and create an FAQ right there on your README.md.

不用一遍又一遍地向每个新贡献者解释同一件事,而要注意常见的问题,并在README.md上创建一个FAQ。

The steepest barrier for most new contributors is navigating dense codebases. Help newcomers find their way by offering a description of your folder structure.

对于大多数新贡献者而言,最大的障碍是浏览密集的代码库。 通过提供文件夹结构的描述来帮助新手找到方法。

A lot new contributors are junior developers who may not yet know a lot of common architecture and design patters. Create documents that highlight these decisions and the reasoning behind them.

许多新的贡献者是初级开发人员,他们可能还不了解很多常见的体系结构和设计模式。 创建突出显示这些决策及其背后原因的文档。

提示4:制定清晰的行为准则 (Tip #4: Put in place a clear Code of Conduct)

Create a proper Code of Conduct that explicitly states rules within your FOSS community. A lot of new contributors, including me, are scared of being treated badly, or looked down upon while trying to contribute.

创建适当的行为准则,明确规定您的FOSS社区内的规则。 包括我在内的许多新贡献者都害怕受到不良对待,或者在尝试贡献时被人鄙视。

Your Code of Conduct that clarifies how to report violations can help folks feel safe. This also entails calling out bad behavior at every step, irrespective of the stature of the person involved, and taking appropriate action.

您的行为守则阐明了如何举报违规行为,可以帮助人们感到安全。 这还需要在每个步骤中大声疾呼,不管涉案人员的身高如何,并采取适当的行动。

提示5:为拉取请求和问题创建模板 (Tip #5: Create templates for pull requests and issues)

A proper issue template can help people better describe the environment required to reproduce a bug. Contributors can then start working on the issue immediately, without needing to gather information from disparate places. This saves time for both parties.

适当的问题模板可以帮助人们更好地描述重现错误所需的环境。 然后,贡献者可以立即开始处理此问题,而无需从不同的地方收集信息。 这样可以为双方节省时间。

A similar argument can be made for pull request templates. Clearly lay out what’s expected when a contributor submits a PR, including the format of their commit message, test plan, the changes made. This will help with code review as well, saving everyone even more time.

拉取请求模板可以使用类似的参数。 明确列出贡献者提交PR时的期望,包括提交消息的格式,测试计划和所做的更改。 这也将有助于代码审查,从而节省了更多时间。

提示6:优先处理拉取请求 (Tip #6: Prioritize responding to pull requests)

Being the maintainer of a popular FOSS project is an incredible amount of work. Most people don’t get paid to contribute to FOSS — maintainers and contributors alike. Most maintainers don’t have enough time to review all PRs with the same amount of scrutiny.

成为受欢迎的FOSS项目的维护者是一项令人难以置信的工作。 大多数人没有薪水为FOSS做出贡献,无论是维护者还是贡献者。 大多数维护者没有足够的时间来审查所有具有相同审查量的PR。

Prioritize PRs so contributors can understand beforehand whether or not they can expect to receive feedback for a low priority/easy bug fix.

对PR进行优先级排序,以便贡献者可以事先了解他们是否可以期望收到针对低优先级/简单漏洞修复的反馈。

提示7:欢迎各种贡献 (Tip #7: Welcome all kinds of contributions)

Our field has a nasty tendency to look down on non-code translations. Please don’t let your project fall prey to this mentality.

我们的领域倾向于忽略非代码翻译。 请不要让您的项目成为这种想法的牺牲品。

Encourage all kinds of contributions, be they documentation, code, fixing typos, tests — anything at all.

鼓励各种形式的贡献,包括文档,代码,修正错误,测试等所有内容。

提示8:奖励新的贡献者 (Tip 8: Reward new contributors)

If you have the budget, reward new contributors by sending them swag such as stickers or shirts.

如果您有预算,请向新贡献者发送赃物,例如贴纸或衬衫,以奖励他们。

If your budget doesn’t permit that, then a simple shoutout or mention in a blogpost or on social media can also go a long way. It’ll make them realize that their contributions — no matter big or small — aren’t overlooked, and that they are valued.

如果您的预算不允许,那么在博客文章或社交媒体上简单地大喊大叫或提及也很长。 这将使他们意识到,无论大小,他们的贡献都不会被忽视,而且他们很有价值。

This establishes a feeling of belonging that may inspire them to contribute more.

这会产生一种归属感,可能会激发他们做出更大的贡献。

Kent C. Dodds made a nifty open source specification for this: All Contributors.

Kent C. Dodds为此制定了一个漂亮的开源规范: All Contributors 。

A good start can be maintaining a list of contributors on your project website and/or repository.

一个好的开始可以是在项目网站和/或存储库上维护一个贡献者列表。

Lastly, it never hurts to remember that everyone was once a junior developer. At some point, they needed help to get to the level they’re at today.

最后,记住每个人都曾经是初级开发人员,这无伤大雅。 在某些时候,他们需要帮助才能达到今天的水平。

This simple fact can go a long way in establishing a healthy culture of mentorship within your open source organization. Treating everyone with respect — irrespective of their background — is critical to running a successful open source project.

这个简单的事实对于在开源组织中建立健康的指导文化大有帮助。 尊重所有人(不论其背景如何)对成功运行开源项目至关重要。

I tweeted the above a while back, when I was just getting started with contributing to FOSS. But since then, a lot has changed. I’ve finally concluded:

当我刚开始为FOSS做出贡献时,我在上面发了一条推文。 但是从那以后,发生了很多变化。 我终于得出结论:

Open source is way more about people than it’ll ever be about code.

开源对人的意义远大于对代码的意义。

P.S. I am trying to create a list of beginner-friendly FOSS projects. If your open source project has any material relevant to new contributors, please consider opening an issue on this repository.

PS:我正在尝试创建一个适合初学者的FOSS项目列表。 如果您的开源项目包含与新贡献者有关的任何材料,请考虑在此存储库中打开问题。

A shout out to Dan Abramov, Kent C. Dodds and Quincy Larson for helping me with this piece by providing their perspectives as maintainers. ?

向Dan Abramov , Kent C. Dodds和Quincy Larson表示感谢,他们通过提供维护者的观点帮助我完成了这篇文章。 ?

If you have any further tips to add to this post, feel free to reach out to me or reply below.

如果您有任何其他提示可添加到此帖子中,请随时与我联系或在下面回复。

And if you found it useful, please tap or click “︎❤” to help to promote this piece to others.

如果您觉得它有用, 请点按或单击“︎❤ ”以帮助将此作品推广给他人。

翻译自: https://www.freecodecamp.org/news/how-to-attract-new-contributors-to-your-open-source-project-46f8b791d787/

开源项目贡献者

开源项目贡献者_如何吸引新的贡献者加入您的开源项目相关推荐

  1. python项目了解_神级程序员都是这样来开源 Python 项目!今天算是涨知识了!

    工具和概念 项目布局 当准备一个项目时,正确合理的布局(目录结构)是十分重要的.一个合理的布局意味着想参与开发者不必花时间来寻找某些代码的位置; 凭直觉就可以找到文件的位置.因为我们在处理一个项目,就 ...

  2. 开源软件使用_亲爱的父母:让您的孩子使用开源软件

    开源软件使用 最近有一个16岁的男孩向r / Linux社区寻求建议 . 当他的父母发现他在笔记本电脑上重新安装了Linux时,他们感到非常震惊-毕竟,这个"免费"软件肯定一定充满 ...

  3. 什么叫做项目孵化_蓝莓孵化营12进5争夺战,项目人绽放自我不留遗憾

    国内首档互联网职业竞技励志节目<蓝莓孵化营>,今晚22点在浙江卫视播出第十一期.本期节目中,第三事业群的12组项目人将为最终的5张终极考核入场券展开争夺.这一次,他们比拼的是以" ...

  4. react优秀项目案例_关于进行2019年北京市高等学校“实培计划”项目——毕业设计(创业类)项目总结与优秀项目案例征集的通知...

    BIT 关于进行2019年北京市高等学校"实培计划"项目--毕业设计(创业类)项目总结与优秀项目案例征集的通知 各相关学院: 为贯彻落实<北京高等学校高水平人才交叉培养计划& ...

  5. apache geode项目结构_使用IntelliJ IDEA+Maven 创建、开发、管理项目

    前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 来源:http://1t.click/ag4d # 前言 本篇开发环境 1.操作系统:Windows 10 X642.Java SDK: ...

  6. 开源贡献 计算_我的第一个Hacktoberfest-第一次为开源做贡献的经验

    开源贡献 计算 by Sibylle Sehl 通过Sibylle Sehl 我的第一个Hacktoberfest-第一次为开源做贡献的经验 (My First Hacktoberfest - Exp ...

  7. 开源合同管理系统_「物联网架构」最适合物联网的开源数据库

    物联网产生大量的数据,包括流数据.时间序列数据.RFID数据.传感数据等.要有效地管理这些数据,就需要使用数据库.物联网数据的本质需要一种不同类型的数据库.以下是一些数据库,当与物联网一起使用时,会给 ...

  8. idea编译项目 失败_在IntelliJ IDEA下使用Lombok时无法编译项目

    我正在尝试使用IntelliJ IDEA 11开发的项目中使用Lombok. 我已经为IDEA安装了3rd-party插件,由于IDEA可以看到所有自动生成的方法/字段,因此似乎工作正常. 所以我有一 ...

  9. java开源线程池_线程池 - Java 并发性和多线程 - UDN开源文档

    线程池 线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用.因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等. 我们可以把并发执行的任务传递给一个 ...

最新文章

  1. postgres默认安装后有哪些表_Greenplum 行存、列存,堆表、AO表的原理和选择
  2. SAP医药医疗行业解决方案
  3. JAVA学习绘图颜色及其笔画属性设置字体显示文字
  4. SAP一句话入门:Human Resource
  5. java环境变量的配置_Java的下载及环境变量的配置
  6. mycat核心配置详解(schema.xml配置)
  7. setNavigationBarTitle小程序基础性操作标题改变
  8. 1996年考研数学一解析pdf
  9. Quartus II 13.1 出现 ‘‘can‘t find design entity <Filename>‘‘ 问题的解决方法
  10. 【集合论】集合运算 ( 并集 | 交集 | 不相交 | 相对补集 | 对称差 | 绝对补集 | 广义并集 | 广义交集 | 集合运算优先级 )
  11. 20175212童皓桢 《Java程序设计》第十周学习总结
  12. 代理是如何实现IP伪装的呢?
  13. python floor是什么意思_简单介绍Python中的floor()方法
  14. [Pytorch框架] 5.1 kaggle介绍
  15. Big-man酷谈overflow
  16. sidebar(侧边栏原理vue admin)
  17. vivotek栈溢出漏洞复现
  18. npm installl preinstall
  19. Jenkins从svn获取代码报”E170001“异常问题解决
  20. C++学习/温习:新型源码学编程(一)

热门文章

  1. windows系统和linux系统可以使用相同的js代码吗_「React 手册 」在 Windows 下使用 React , 你需要注意这些问题...
  2. create-react-app my-app 报错解决方法
  3. 【Android】AsyncTask异步类
  4. MarkdownView:Markdown 文档预览视图组件
  5. 后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结
  6. 【重建】从FJOI2016一试谈起
  7. CQRS学习——最小单元的Cqrs(CommandEvent)[其一]
  8. sublime text3 前端插件介绍
  9. 避免死锁的一些注意事项
  10. eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析...