贡献者付费的一年:回顾

作为 ESLint Collective 目标的一部分,过去一年我们一直在向贡献者付费。我们分享了我们尝试的不同方法及其结果。我们重视贡献者的时间,并且一直在寻找更好的方法来奖励他们的工作。

早在 2019 年 2 月,我们就宣布启动 ESLint Collective,以为 ESLint 的持续开发提供资金。寻求资金的主要原因之一是,维护一个项目所需的时间越来越多,截至今天,该项目每周的下载量超过 1300 万次。我们等到 2019 年最后一个季度才开始向贡献者付款,因为我们想看看我们的每月赞助金额会稳定在什么水平,这样我们就可以存一些钱来保证有一定金额可用于支付贡献者。从那时起,我们尝试了几种不同的方法,有成功也有失败,我们想分享一下这段经历。

技术指导委员会

技术指导委员会 (TSC) 是一个由五人组成的小组,负责管理 ESLint 项目的总体方向。每个 ESLint 版本的大部分工作都由 TSC 成员完成,包括实际的发布过程本身。此外,TSC 成员还会审查问题和拉取请求,并在外部活动中代表 ESLint。这就是为什么我们首先想办法向 TSC 成员付款,他们中的许多人在 ESLint 获得资金之前就已经参与该项目多年了。

以下是我们想出的办法

  • 每位 TSC 成员对 ESLint 的任何贡献都将获得 50 美元/小时的报酬。贡献可以包括在 GitHub 中工作的实际时间、编写代码或文档、参加会议(包括 ESLint 会议和他们代表 ESLint 参加的外部会议)以及向社区提供支持(通过电子邮件、聊天等)。
  • 每位成员的付款上限为每月 1,000 美元。设置此上限的主要目的是确保我们能够节省每月捐款的一部分,其次是为了劝阻 TSC 成员不要在项目上花费过多时间,而影响他们的全职工作。我们不想资助倦怠。
  • 后来,我们在 TSC 成员之间增加了 Tidelift 资金的分成。我们称之为“TSC 津贴”,每月支付给每位 TSC 成员,无论他们的工时贡献如何。TSC 津贴计入每位成员每月 1,000 美元的限额,成员可以就他们贡献的工时与 Tidelift 金额之间的差额向项目开具发票。

到目前为止,这种安排运作得非常好。自从开始支付 TSC 成员报酬以来,我们看到 TSC 成员的参与度缓慢增加。为有价值的工作付费是有道理的:当工作被明确重视时,人们更愿意去做。总的来说,我们认为我们计划的这一部分是成功的。

专职维护者

早在 2019 年 11 月,我们 宣布 聘请长期维护者 Kai Cataldo 担任专职维护者。Kai 最近辞去了全职工作,希望花更多时间在 ESLint 上工作。我们没有足够的预算为他的工作支付适当的全职薪水,因此我们商定每周工作 20 小时,每月 5,000 美元,Kai 将每周的另外 20 小时用于其他项目或自由职业。

我们尝试了几个月,然后发现这种安排对 Kai 来说是不可持续的。虽然 ESLint 的付款很稳定,但他每周必须花费另外 20 个小时来寻找赚钱的方法。因此,我们将安排更新为每周工作 10 小时,报酬为 2,500 美元,以便 Kai 有更多时间寻找其他工作,同时仍然提供基本的 ESLint 专用时间。

不幸的是,这种安排也行不通。再一次,事实证明,将时间分配给 ESLint 的职责和试图寻找其他兼职工作比我们任何人意识到的都要困难,而本月,Kai 决定辞去专职维护者的职务。他将继续留在 TSC,并且仍然有资格获得 TSC 成员的报酬。

这对团队来说是一件难事,我们认为这里有一个关于开源可持续性的重要教训:即使我们收到捐款,ESLint 的收入也不足以支付维护者的全职工资。当这种情况发生时,维护者面临着一个艰难的决定:我们可以尝试让兼职开发工作,但很难找到其他兼职工作来弥补我们每月所需的收入,使其值得。在某些情况下,做兼职工作会使寻找其他工作变得更加困难,因为您在时间上受到限制,而其他自由职业者则不受限制。

鉴于 Kai 的经验,我们目前正在重新考虑未来如何(以及是否)聘请专职维护者。

其他实验

除了 TSC 付款和聘请专职维护者之外,我们还尝试了其他几种方法来向更多贡献者分配付款。我们的最终目标是能够向 ESLint 的大多数(如果不是全部)贡献者付费,因为所有贡献都有帮助。我们仍然没有考虑清楚这将如何运作的细节,但我们已经尝试了其他几个实验

  1. 对于 v7.0.0,我们决定向对该版本做出突出贡献的几位贡献者一次性支付 250 美元。贡献者们既惊讶又高兴,但我们也了解到,在一些国家,对于我们美国所谓的自雇收入的规定非常严格。并非所有人都能参与,原因就在于此。
  2. 长期贡献者 Kevin Partington 开始花费大量时间在我们的 Discord 中帮助社区成员,为了感谢他,我们开始为他提供的任何帮助支付 25 美元/小时的报酬。如果您曾在我们的 Discord 中停留并寻求帮助,那么很有可能帮助您的人就是 Kevin。

总结

总的来说,我们一直在寻找对 ESLint 有意义且有影响力的贡献,以便我们可以奖励人们的这些贡献。我们将继续尝试以不同的方式向贡献者付款,因为我们正在寻找使 ESLint 在可预见的未来可持续发展的方法。

我们尝试的一切并非都奏效,我们也没想到会这样,但我们坚信继续解决这个问题是值得的。维护像 ESLint 这样的项目需要大量的工作和许多人的大量贡献。让这种情况继续下去的唯一方法是为人们的时间付费。

最新的 ESLint 新闻、案例研究、教程和资源。

Evolving flat config with extends
5 分钟阅读

使用 extends 改进扁平配置

您的 eslint.config.js 文件现在可以使用 extends 来简化您的配置。

ESLint v9.22.0 released
1 分钟阅读

ESLint v9.22.0 发布

我们刚刚推送了 ESLint v9.22.0,这是一个 ESLint 的次要版本升级。此版本添加了一些新功能并修复了先前版本中发现的几个错误。

ESLint v9.21.0 released
2 分钟阅读

ESLint v9.21.0 发布

我们刚刚推送了 ESLint v9.21.0,这是一个 ESLint 的次要版本升级。此版本添加了一些新功能并修复了先前版本中发现的几个错误。