在新的一年里开始为 Node.js 做出贡献

2025-05-25

在新的一年里开始为 Node.js 做出贡献

Node.js 项目是一个庞大的社区项目,涵盖 Node.js GitHub 组织中的 162 个存储库,不包括 Express 和 libuv GitHub 组织(它们都是 Node.js 基金会下的项目)。

这就是在 Node.js GitHub org 中工作时有时的感觉——标题:文件柜打开的距离比应有的距离要远得多

Node.js 项目本身有各种各样的需求,从构建基础设施到自动化工具,再到文档的本地化。

我已经整理了一份详细的清单,列出了该项目需要帮助的所有内容,希望将dev.to社区与 Node.js 项目联系起来。

如果你最终做出了贡献,看到你的贡献被记录在dev.to上将是件令人欣喜的事——无论是通过你自己的帖子,通过对这篇文章的评论,还是通过帮助社区中的其他人做出贡献!❤️

首先,一些背景

Node.js 有一套熟悉的缩写词,大家可能还不太熟悉。以下是一些快速入门指南:

  • TSC:Node.js 技术指导委员会,是 Node.js 基金会的一个顶级委员会,负责整个项目的技术管理。
  • CommComm:Node.js 社区委员会,Node.js 基金会中负责对外工作和社区关系的顶级委员会。
  • WG:工作组,对特定任务或领域具有独立治理和所有权的团体。
  • 倡议团队:这些团体并非独立成立,但对某项任务或领域拥有某种形式的所有权。倡议用于 CommComm 和 TSC,而团队仅用于 TSC。
  • 核心:有效的nodejs/noderepo。
  • 治理:Node.js 高度依赖开放治理。项目本身有一个GOVERNANCE.md文件来规定项目的治理方式,但GOVERNANCE.mdGitHub 组织中还有其他文件,分别针对不同的小组(例如 CommComm),这些小组拥有独立的治理机制。

还值得注意的是,Node.js 遵循全球行为准则,因此如果您有兴趣参与,请务必阅读。

关于该组织的更多背景信息

  • Node.js 基金会董事会管理,董事会成员包括企业会员、个人会员董事、TSC 董事和 CommComm 董事。基金会内设 5 个委员会:TSC、CommComm、法律委员会、市场营销委员会和财务委员会。
    • 作为一名开源贡献者,这可能对你来说并不重要,但了解背景总是好的,而不是缺乏背景👍
  • 工作组是 TSC 下的一个概念,而非社区委员会下的一个概念。它们与 TSC 和 CommComm 一样,拥有正式的独立章程。倡议和团队是 TSC 和 CommComm 中的概念,在实践中与工作组几乎相同,但关键区别在于它们没有独立的章程。

为工作组、倡议和团队做出贡献

Node.js 项目的各个部分都缺少所需的贡献者,因此他们一直在寻找更多的贡献者。

我们需要你的帮助!标题:烟鬼组合 (The Chainsmokers) 歌曲《Don't Let Me Down》中 Daya 的动图

以下是一些您今天可以产生重大影响的工作组/倡议/团队:

  • 包维护
    • 较新的团队主要由 IBM 员工创立,负责帮助维护那些维护不善的深层嵌入式生态系统模块。
  • i18n——国际化
    • i18n 团队正在完善 Node.js 的本地化流程和内容。该流程涵盖翻译从文档到指南再到错误信息的所有内容,所有操作都使用 GitHub 自动化和CrowdIn的简单组合完成。如果您精通多种语言,并愿意参与内容本地化设置自动化流程,那么这将是一个帮助全球用户的绝佳方式。
  • 自动化团队
    • 我们有一个自动化团队,专注于构建和改进项目现有的自动化流程。总的来说,目前大量人工工作可以通过 Node.js 实现自动化。构建自动化流程是您可以发挥最大影响力的方式之一。
  • 国际贸易管理委员会
    • citgm(金丝雀检测)是 Node.js 核心用来测试 Node.js 构建是否会破坏生态系统的工具。随着我们模块数量迅速接近 90 万,我们不可能测试所有模块,但我们可以测试一些全球最常用的模块,以获得更全面的了解。
    • 贡献者很少,而且有很多不稳定的检查,只要花点心思和关注就可以修复或改进。
  • 基准测试工作组
    • 基准测试工作组致力于确保 Node.js 随着时间的推移不会出现显著的回归问题。在一些情况下,他们发现了一些严重的回归问题,并能够在问题影响任何人之前迅速识别和修复。
    • 目前只有少数活跃的贡献者正在做这项工作,他们可以借助您的帮助来继续建立基准并采用现有的基准。
    • 如果您有兴趣了解实际的基准测试情况,该团队致力于Node.js 的基准测试。
  • 发布团队
    • 致力于将更改移植到旧版本的 Node.js(LTS 版本)并发布新版本。
    • 我们最近严重缺乏发布者——至少有一年时间只有一个人。发布工作对一个人来说太过繁重,更不用说一个五人团队了。这是一个在发挥巨大作用的同时,提升技术水平和参与度的绝佳方式。
    • 一般来说,要成为一名发布者,您需要能够将大量参与 Node.js 作为全职工作的一部分——很少有人能够做到这一点。
  • 社区委员会
    • 社区委员会涵盖了一系列不同的工作,并愿意开展更多工作(并且需要为其当前的一些举措争取支持!)
    • CommComm 的一项重要举措是导师制计划。如果你对长期持续的导师制(或者成为一名导师)感兴趣,那么这个计划值得一试🙌
    • 如果您有兴趣参加社区委员会,与我联系,以便我帮助您实现这一目标。
  • 即将推出:网站重新设计和 i18n
    • 网站重新设计是一个长期项目,即将进入技术实施阶段。

为 Node.js 做贡献最重要的一点是它是自发的、自愿的。基本上你可以承担任何你想做的工作,只要没有人反对,就能顺利完成。反对意见通常不是硬性的 -1,而是各种规模的变更请求。

通过内容贡献

Node.js 项目内有多个领域需要内容。

文档:

完善文档始终是必要的。很多地方缺乏代码示例或完善的 API 接口文档。“它是为贡献者服务的,而不是为用户服务的”这种说法我经常听到,我们应该改变这种现状。

一旦网站重新设计计划完成,我认为在改进技术文档和自动化检查方面将有更多的工作空间。

文档位于目录nodejs/node/doc/api中,这意味着你所做的任何贡献都将直接提交到nodejs/node。文档贡献是开始为 Node.js 做出贡献的绝佳方式,因为它不仅能向你介绍 Node.js 核心 PR 的工作原理,还能帮助所有尝试使用 Node.js 的人。

指南:

指南是网站重新设计计划 (Website Redesign Initiative)正在研究的一个新概念。关于指南的讨论已经展开(我也是其中的积极参与者),其中涵盖了无需与供应商无关的指南。现实世界的开发者会使用各种供应商和工具,例如 AWS、Azure、GCP、Sentry、Gatsby、Electron、npm、yarn、Snyk、Greenkeeper 等等。

回避现实、完全不考虑现实确实是一种做法,但最终只会损害用户而非帮助他们。欢迎围绕这些主题的贡献,这对于尝试在实际用例中部署 Node.js 应用程序的最终用户大有裨益。

因此,我们公开征集此类内容,这些内容将与新网站一同发布,并随着网站的推出而进一步完善。网站重新设计倡议组织 (Website Redesign Initiative) 维护着一份详尽的指南清单,并根据感兴趣的开发者类型进行了分类。

Node.js 集合

Node.js Collection是一个 Medium 出版物,由社区委员会和 Node.js 基金会旗下的 Node.js Collection 团队维护。

两年前创建 Node.js Collection 的初衷是成为 Node.js 社区内容的中心资源库。它确实做到了这一点,几乎所有博客文章都来自不同的社区成员。它欢迎任何与 Node.js 相关的优质内容——我们期待与您合作!

通过自动化做出贡献

Node.js 项目中围绕自动化存在各种各样的需求。我个人常常觉得,当前的工作量比提升自动化程度更重要,这导致工作量不断增加,为了减轻工作量,不得不引入更多流程。

以下是一些需要并可自动化的工作示例:

  • 用于提交 PR 的提交队列
  • 自动发布
  • 自动修复 CI
  • 密码合规性检查自动化(美国出口管制)
  • Markdown 样式检查
  • 安全漏洞检查 + 为安全工作组进行合并

目前还没有一份关于需要自动化的中央列表,但如果您感兴趣的话,至少还有十几项可以通过自动化实现的增强功能。

请让机器接管!标题:插图机器人很高兴机器接管了

如果您有兴趣参与其中,或者想提出其他形式的自动化建议,可以查看nodejs/automation仓库。在这个仓库中,您可以随时提交问题,建议自动化工具或提供帮助!

那么下一步是什么?

如果你有兴趣通过我描述的任何方式为 Node.js 做出贡献,那就赶紧加入吧!Node.js 项目极其注重完成工作,所以参与并完成工作是非常棒的——据我所知,你的工作很少不被认可和赞赏。

如果你任何疑问,我百分百乐意解答!如果你好奇你的技能组合适合哪些领域(相信我,无论你的技能组合如何,总有地方可以让你为 Node.js 做出贡献),或者想了解更多关于某个特定领域的信息,请随时在评论区或 Twitter 上提问。我非常乐意尽我所能帮助你提升水平并做出贡献 ❤️

无论发生什么,我们都在一起!标题:来自“在一起?在一起”的下一步的 GIF。

文章来源:https://dev.to/azure/start-contributing-to-nodejs-in-the-new-year-3dlh
PREV
使用 JavaScript Big-0 Notation Primer 理解 Big-O Notation
NEXT
Kubernetes 初学者术语概述