开源项目贡献者_如何认识您的开源项目贡献者并发展您的社区

开源项目贡献者

by David Herron

大卫·赫伦(David Herron)

如何认识您的开源项目贡献者并发展您的社区 (How to recognize your open source project contributors and grow your community)

There’s a truism — if a community is not growing, it is slowly dying. How is your open source community doing? Is your contributor base stagnant, shrinking or growing? Are you like many open source community leaders with little idea of how to encourage new participation?

这是不言而喻的-如果社区没有成长,它就快要死了。 您的开源社区表现如何? 您的贡献者基础是否停滞,萎缩或增长? 您是否像许多开源社区领导者,对如何鼓励新参与者一无所知?

There are many opinions out there about growing the activity around an open source project. Successfully building an open source community-driven project is more than just throwing your code on Github and doing development in the open.

关于围绕开源项目开展活动的观点很多。 成功构建一个开源社区驱动的项目不只是将代码投放到Github上并进行公开开发。

Folks must know the project exists, that you’re open to contributions, what the contribution process is, coding practices in the project, and so on.

人们必须知道该项目存在,您愿意捐款,捐款过程是什么,项目中的编码实践等等。

One very visible tactic is to establish what some call “social proof”. That is, some kind of visual indicator that the project is currently receiving contributions.

一种非常明显的策略是建立所谓的“社会证明”。 也就是说,某种视觉指示器表明该项目当前正在收到捐款。

What does the word “community” mean in this context?

在这种情况下,“社区”一词是什么意思?

A “community” is a group of people coming together for a shared purpose or shared goal. The traditional meaning is the folks living in a town, and their shared goal is living peacefully together in that city.

“社区”是为了共同的目的或共同的目标而聚集在一起的一群人。 传统含义是居住在城镇中的人们,他们的共同目标是在该城市和平共处。

But communities can form for other purposes. For example, a Facebook group about electric motorcycles will host discussions of electric motorcycle brands, where to ride, how to maintain or customize the bikes, and so on. As the members get to know one another through discussing electric motorcycles, they form a community.

但是社区可以为其他目的而成立。 例如,一个有关电动摩托车的Facebook小组将主持有关电动摩托车品牌,骑乘地点,如何维护或定制自行车等的讨论。 当成员通过讨论电动摩托车而彼此了解时,他们便组成了一个社区。

Likewise, the folks maintaining an open source software project also form a community whose goal is improving that software. This article is focused on one aspect of growing community participation in an open source project — acknowledging those who contribute to the project.

同样,维护开源软件项目的人们也组成了一个社区,其目标是改进该软件。 本文的重点是增加社区对开放源代码项目的参与的一个方面-承认那些为该项目做出贡献的人。

Many project websites have “widgets” showing data like build status, whether the tests are passing, and so forth. What if another widget showed an indicator of contributors to the project? Namely:

许多项目网站都有“小部件”,显示诸如构建状态,测试是否通过等数据。 如果另一个小部件显示了该项目的参与者指标,该怎么办? 即:

  • A list of folks making code contributions — demonstrating to the public that this project has contributors

    贡献代码的人员列表-向公众证明该项目有贡献者
  • Giving kudos to contributors, so they can have bragging rights, and to feel appreciated

    向贡献者表示敬意,以便他们拥有吹牛的权利,并感到赞赏
  • Demonstrate there is communal ownership of the project

    证明该项目具有公共所有权
  • Demonstrate who has how much of a stake in the project

    演示谁在项目中拥有多少股份
  • Tell the public this project is not the hair-brained idea of one guy/gal who’s coding to suit their whims

    告诉公众这个项目不是一个正在编码以适应他们的异想天开的家伙/女孩的头脑

The existence of build status widgets and the like demonstrates a place for automatically-updated widgets giving data about open source projects. These widgets are geared for the public, and the purpose is reassuring potential users or contributors the project has an automated build and test system, and whether the current status is green.

构建状态窗口小部件等的存在展示了自动更新的窗口小部件的位置,这些小部件提供了有关开源项目的数据。 这些小部件是面向公众的,目的是向潜在用户或参与者保证该项目具有自动化的构建和测试系统,以及当前状态是否为绿色。

But that’s not the only kind of status system a project team may use. For team management purposes, a team might use a private dashboard giving the status of various aspects of their project. Commercial software projects regularly do this. Dashboards are maintained by the product manager to measure progress towards goals. This post is not talking about that kind of status system, but instead, one that is shown to the public.

但这不是项目团队可能使用的唯一状态系统。 为了团队管理的目的,团队可以使用私有仪表板来提供项目各个方面的状态。 商业软件项目通常会这样做。 仪表板由产品经理维护,以衡量实现目标的进度。 这篇文章不是在谈论那种状态系统,而是在向公众展示。

Isn’t it reassuring to know an open source project is team driven? That there is more than one set of eyeballs looking for bugs? That the direction is not the mad ravings of one person but driven by a collaborative process? If you’re looking to integrate an open source tool into the software driving your business, don’t you need to know the tool has a stable future?

知道一个开源项目是团队驱动的,这是否令人放心? 是否有超过一组的眼睛在寻找错误? 方向不是一个人疯狂的狂欢,而是一个协作过程的驱动? 如果您希望将开源工具集成到推动业务发展的软件中,您是否不需要知道该工具的未来稳定吗?

Let’s think first about a status widget that does some of the above. Then look at what some prominent open source projects are doing along these lines. Finally look for any existing tool of this nature.

让我们首先考虑一个状态窗口小部件,该窗口小部件可以完成上述操作。 然后看一下一些著名的开源项目在这些方面所做的事情。 最后寻找具有这种性质的任何现有工具。

集思广益 (Brainstorming)

Generally speaking, we’re talking about a “status widget” to install on project pages, like the source code repository. The widget must present some data about the contributors to the open source project, and implement as many of the ideas above as possible. Some possible attributes to show are:

一般而言,我们所说的是要在项目页面上安装的“状态小部件”,例如源代码存储库。 该小部件必须提供有关开源项目贡献者的一些数据,并实现上述尽可能多的想法。 一些可能显示的属性是:

  • Easily installed — insert an HTML widget into websites

    易于安装—将HTML小部件插入网站
  • Automatically retrieve data from Github/Gitlab/etc commits

    从Github / Gitlab / etc提交中自动检索数据
  • Identify the type, size, etc, of code changes in commits

    确定提交中的代码更改的类型,大小等
  • Present contributor data in several forms (customizability)

    以几种形式(可定制性)显示贡献者数据
  • Present useful information about each contributor

    提供有关每个贡献者的有用信息
  • Present useful information about total contributions

    提供有关总捐款的有用信息
  • Be utterly objective about listing contributors

    关于上市贡献者要绝对客观

一些开源项目采取的行动,以确认贡献者 (Actions by some Open Source projects to recognize contributors)

Since it’s useful to take a look around and see what others are doing, let’s look at certain high profile open source projects. What are they are doing in terms of recognizing contributors?

由于四处查看并查看其他人在做什么非常有用,因此让我们看一下某些知名的开源项目。 他们在认可贡献者方面正在做什么?

Vue.js — This leading UI framework for modern web applications has a “Contributors” widget that links over to a Github page which displays Vue.js code contribution data. The contributor's widget is somehow derived from an OpenCollective widget showing “backers” of the Vue.js project. This shows monetary contributors. The avatars do not necessarily correspond to code contributors on the project.

Vue.js —这个领先的现代Web应用程序UI框架具有“贡献者”小部件,该小部件链接到Github页面,该页面显示Vue.js代码贡献数据 。 贡献者的小部件以某种方式从OpenCollective小部件派生而来,该小部件显示了Vue.js项目的“支持者”。 这显示了货币贡献者。 化身不一定与项目上的代码贡献者相对应。

ReactJS — This leading UI framework for modern web applications has a well-developed Contributors area. But nowhere was there found a listing or recognition of contributors.

ReactJS —这个用于现代Web应用程序的领先的UI框架拥有一个完善的Contributors区域。 但是,找不到任何地方列出或认可贡献者。

Bootstrap — This leading responsive UI framework has a well developed Contributors area. On the main page of the repository are mentioned Mark Otto and Jacob Thornton as the Creators. Under “Copyright” it mentions ownership is split between Twitter and “The Bootstrap Authors”. The latter linking to the Github-generated list of contributors.

Bootstrap-这个领先的响应式UI框架具有完善的Contributors区域。 在存储库的主页上,提到了马克·奥托和雅各布·桑顿作为创作者。 在“版权”下,它提到所有权在Twitter和“ The Bootstrap Authors”之间分配。 后者链接到Github生成的贡献者列表。

Webpack — The project homepage shows several lists of monetary contributors. Each generated by OpenCollective. On the Webpack project repository, it’s clear there is a well-developed Contributors area. It also includes a link to a Medium publication. Here they publish information about how to contribute to the Webpack project. The only folks mentioned here are the Webpack Core Team. Again the lists of monetary contributors generated by OpenCollective.

Webpack —项目主页显示了一些货币捐助者列表。 每个由OpenCollective生成。 在Webpack项目存储库上 ,很明显有一个发达的Contributors区域。 它还包括指向Medium出版物的链接。 他们在这里发布有关如何为Webpack项目做出贡献的信息。 这里提到的唯一的人是Webpack核心团队。 再次由OpenCollective生成货币贡献者列表。

jQuery — This extremely popular library for DOM manipulation in web browsers has a very well developed contributors guideline. Nothing could be found listing the contributors.

jQuery —这个非常流行的Web浏览器中的DOM操作库具有非常完善的贡献者指南 。 没有列出列出贡献者的信息。

ExpressJS — This popular framework for developing web applications with Node.js. It shows TJ Hollowaychuk as the original author and Douglas Wilson as the current project maintainer. It then links to the contributor list generated by Github. It’s clear from that list those two made the overwhelming majority of code contributions to the project.

ExpressJS —这个流行的框架,用于使用Node.js开发Web应用程序。 它显示TJ Hollowaychuk是原始作者,Douglas Wilson是当前项目维护者。 然后,它链接到Github生成的贡献者列表。 从清单中可以明显看出,这两个代码为项目贡献了绝大多数。

Node.js — This popular platform for JavaScript development outside web browsers has a Foundation and a highly structured set of maintainers. The Node.js Technical Steering Committee has final authority over technical direction and governance. There is a manually maintained list of TSC members in the repository. Another manually maintained list contains the other collaborators. These lists are replicated on the main Node.js repository home page.

Node.js —这个流行的Web浏览器外部JavaScript开发平台具有一个Foundation和一组高度结构化的维护者。 Node.js技术指导委员会对技术指导和管理拥有最终授权。 存储库中有一个手动维护的TSC成员列表 。 另一个手动维护的列表包含其他协作者 。 这些列表复制在Node.js存储库主页上

Alongside the TSC is the Community Committee which is focused on “community-facing efforts”. A manually-maintained list of Community Committee members is in that projects repository.

与TSC并排的是社区委员会 ,其重点是“面向社区的努力”。 该项目存储库中有一个社区委员会成员的手动维护列表。

One item of note about these manually maintained lists is that they’re in the project Git repository. The process for resigning from one of these teams is to issue a Pull Request against that page announcing the intention to resign from the project team. That’s an interesting use of Git, to track project members over time.

关于这些手动维护列表的注意事项之一是它们位于项目Git存储库中。 从这些团队之一辞职的过程是针对该页面发出“拉取请求”,宣布打算从项目团队辞职。 这是Git的一种有趣用法,用于随着时间的推移跟踪项目成员。

Django — This popular Python framework for developing web applications has both a Foundation to handle business matters, and a few technical teams for technical matters. The technical team members are published on the project website. There is a well developed contributors guide.

Django-这个流行的用于开发Web应用程序的Python框架拥有一个处理业务事项的基金会和一些技术事项的技术团队。 技术团队成员已发布在项目网站上 。 有一个完善的贡献者指南。

Cheerio — This popular Node.js project implements a subset of the jQuery API to run on the Node.js project for server-side DOM manipulation. The project README includes a list of contributors that is generated by running Git commands. This makes it an automatically generated list but the user experience is pretty bad. The Github repository shows lists of monetary contributors generated by OpenCollective.

Cheerio-这个受欢迎的Node.js项目实现了jQuery API的一个子集,以便在Node.js项目上运行以进行服务器端DOM操作。 项目README包含通过运行Git命令生成的贡献者列表。 这使其成为一个自动生成的列表,但是用户体验非常差。 Github存储库显示了OpenCollective生成的货币贡献者列表。

BabelJS — This popular JavaScript developer tool is a transpiler allowing us to use modern JavaScript while deploying to older environments. The website has an extensive “Meet the Team” page. This page lists a wide range of contributors, including a non-human contributor (a Twitter bot). The Github repository contains a list of monetary sponsors generated by OpenCollective.

BabelJS-这个流行JavaScript开发人员工具是一个编译器,允许我们在部署到较旧的环境时使用现代JavaScript。 该网站上有一个广泛的“ 与团队见面 ”页面。 本页列出了广泛的贡献者,包括非人类贡献者(Twitter机器人)。 Github存储库包含由OpenCollective生成的货币赞助者列表。

Rust — This new systems programming language promises blazing fast execution, no segfaults, thread safety, and more. The team page appears to be manually maintained, and lists a dozen or so teams supporting Rust. Each team has a dozen or more members.

Rust –这种新的系统编程语言有望实现快速执行,无段错误,线程安全等等。 团队页面似乎是手动维护的,列出了支持Rust的十几个团队。 每个团队有十几个或更多成员。

协助自动识别贡献者的工具 (Tools to assist automagically recognize contributors)

We learned in the previous section that most open source projects try to acknowledge contributors and core team members. But that in most cases this is with manually maintained lists.

我们在上一节中了解到,大多数开放源代码项目都试图承认贡献者和核心团队成员。 但是在大多数情况下,这是手动维护的列表。

Manually maintaining a list of contributors is an administrative burden. It can create a situation where a contributor does not get recognized because nobody remembered to add them to the list. Just as we strive to automate software testing to ensure good development processes, we might also strive to automate contributor recognition to ensure everyone is recognized fairly. Let’s look at several ways of implementing an automated widget.

手动维护贡献者列表是一项管理负担。 这可能会导致由于没有人记得将其添加到列表而无法识别贡献者的情况。 正如我们努力自动化软件测试以确保良好的开发流程一样,我们也可能努力自动化贡献者识别以确保每个人都得到公平的认可。 让我们看一下实现自动化窗口小部件的几种方法。

Use the auto-generated contributor list on Github or Gitlab: Every Github project has an easily-accessed page showing contributions. Gitlab-hosted projects have a similar page that is harder to reach. Some projects simply link to these pages. The Github page is pretty useful, but it’s not the same as a status widget.

使用Github或Gitlab上自动生成的贡献者列表:每个Github项目都有一个易于访问的页面,其中显示了贡献。 由Gitlab托管的项目有一个相似的页面,很难访问。 有些项目只是链接到这些页面。 Github页面非常有用,但与状态小部件不同。

Create your own list: Using git commands (git shortlog -sn) it is possible to generate a list of committers. An inventive programmer could turn this into a list of avatars.

创建自己的列表 :使用git命令( git shortlog -sn )可以生成提交者列表。 有创造力的程序员可以将其变成化身列表。

We found an older (seemingly abandoned) project that did just that: https://github.com/blossom/contributors

我们找到了一个旧的(看似被遗弃的)项目,它就是这样做的: https//github.com/blossom/contributors

The OpenCollective Widget: Open Collective is a kind of social movement meant to create projects that are openly financed. It’s an interesting idea and worthy of further exploration. For the purpose of this article, the Open Collective team offers a dynamic widget that’s easy to install in a website, that shows contributors. Many open source projects are Open Collective projects, and use this widget. However, in this case “contributor” means monetary contributions rather than code contributions.

OpenCollective小部件Open Collective是一种社会运动,旨在创建公开资助的项目。 这是一个有趣的想法,值得进一步探索。 就本文而言,Open Collective团队提供了一个动态窗口小部件,该窗口小部件易于安装在网站上,其中显示了贡献者。 许多开源项目都是Open Collective项目,并且使用此小部件。 但是,在这种情况下,“贡献者”是指货币捐款而不是代码捐款。

Sourcerer.io Hall of Fame: Sourcerer.io is a service to automatically generate a profile page for software engineers based on their source code commits. It supports generating a personal profile from any set of git repositories. Github and Gitlab get the best support. For example, see my profile https://sourcerer.io/robogeek.

Sourcerer.io名人堂Sourcerer.io是一项服务,可根据他们的源代码提交为软件工程师自动生成配置文件页面。 它支持从任何一组git存储库生成个人资料。 Github和Gitlab得到最好的支持。 例如,请参阅我的个人资料https://sourcerer.io/robogeek

The Sourcerer.io Hall of Fame tool generates a summary of committers to Github projects. It picks up the user avatar, either from a Sourcerer profile or Github profile. Installation is very simple once you have a Sourcerer account. Head to the Hall of Fame tab in the Settings area and follow the directions. Sourcerer’s service takes care of the rest.

Sourcerer.io 名人堂工具会生成Github项目提交者的摘要。 它从Sourcerer配置文件或Github配置文件中选取用户头像。 拥有Sourcerer帐户后,安装非常简单。 转到“设置”区域中的“名人堂”选项卡,然后按照说明进行操作。 Sourcerer的服务将负责其余的工作。

The associated Github repository has a few example Hall of Fame widgets, such as iterative/dvc and epicmaxco/vuestic-admin.

关联的Github存储库具有一些名人堂小部件示例,例如iterative / dvcepicmaxco / vuestic-admin

结论/观察 (Conclusion / Observations)

We started this article theorizing that public recognition of contributors to an open source project would help the project to grow. The idea seems sound but we don’t know if it’s true. What we did learn is that many open source projects already have methods to recognize contributors (particularly the ones which do not seem to be corporate-backed — e.g. ReactJS).

我们从本文开始,理论上认为公众认可开源项目的贡献者将有助于该项目的发展。 这个主意听起来不错,但我们不知道这是不是真的。 我们了解到的是,许多开源项目已经有了识别贡献者的方法(尤其是那些似乎没有企业支持的方法,例如ReactJS)。

Not all contributions are in the form of software. Some projects have teams for marketing, or documentation, or testing, or security. An automated tool that scans Git commits will not be able to list folks making non-code contributions to the project. Those contributions do not land in a Git repository. Therefore a tool to generate a contributors widget for source contributions has a limited scope. By listing code contributions the widget does not list the other contributors.

并非所有的贡献都以软件的形式出现。 一些项目有团队进行市场营销,文档编制,测试或安全管理。 扫描Git提交的自动化工具将无法列出对项目做出非代码贡献的人员。 这些贡献不会降落在Git存储库中。 因此,生成用于源贡献的贡献者小部件的工具范围有限。 通过列出代码贡献,小部件不会列出其他贡献者。

The primary acknowledgement tactic among the open source projects we examined are manually maintained lists of team members. A project may have one or more “teams” assigned to handle different areas. Of course some of these teams focus on non-coding work. These team lists acknowledge the non-code contributors as well as the coders.

在我们研究的开源项目中,主要的确认策略是手工维护的团队成员列表。 一个项目可能分配了一个或多个“团队”来处理不同的领域。 当然,其中一些团队专注于非编码工作。 这些团队名单肯定了非代码贡献者和编码人员。

Another common tactic is acknowledging monetary contributions using the OpenCollective widget. It is easily installed and OpenCollective’s systems take care of updating the widgets. Of course it has limited scope. It does not serve the purpose of recognizing code contributions to a project.

另一个常见的策略是使用OpenCollective小部件确认货币捐款。 它易于安装,并且OpenCollective的系统负责更新小部件。 当然,它的范围有限。 它不能用于识别代码对项目的贡献。

We started this noting many teams have automated status widgets, and pondering a status widget for code contributors. While one can roll their own code contributor status widget, the simplest method is to install the Sourcerer.io Hall of Fame widget. It is easy to install and it manages itself. It concisely shows some of the contributors in a fashion that fits right next to the other status widgets. Keep in mind this only shows the code contributors.

我们首先注意到许多团队拥有自动化的状态小部件,并为代码贡献者考虑状态小部件。 虽然可以滚动自己的代码贡献者状态小部件,但最简单的方法是安装Sourcerer.io 名人堂小部件。 它易于安装并且可以自我管理。 它以与其他状态小部件相邻的方式简洁地显示了一些贡献者。 请记住,这仅显示代码贡献者。

Acknowledging team members isn’t the only step to building an active open source project with multiple contributors. The advice we found focused more on having a well documented contribution process, for example. There are many aspects to building and nurturing a community of folks working together on a goal. Obviously giving acknowledgement is one.

认可团队成员并不是构建具有多个贡献者的活跃的开源项目的唯一步骤。 例如,我们发现的建议更多地集中在有一个记录良好的捐款流程上。 建立和培养在目标上共同努力的人的社区有很多方面。 显然,给予认可是其中之一。

With that in mind, an automated code contributor status widget should be one of many tools used for encouraging contributions to your open source project.

考虑到这一点,自动化代码贡献者状态小部件应该是用于鼓励对开源项目做出贡献的众多工具之一。

翻译自: https://www.freecodecamp.org/news/how-to-recognize-your-open-source-project-contributors-and-grow-your-community-3eaa472344ab/

开源项目贡献者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值