在新的一年里开始为 Node.js 做出贡献
Node.js 项目是一个庞大的社区项目,涵盖 Node.js GitHub 组织中的 162 个存储库,不包括 Express 和 libuv GitHub 组织(它们都是 Node.js 基金会下的项目)。
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/node
repo。 - 治理:Node.js 高度依赖开放治理。项目本身有一个
GOVERNANCE.md
文件来规定项目的治理方式,但GOVERNANCE.md
GitHub 组织中还有其他文件,分别针对不同的小组(例如 CommComm),这些小组拥有独立的治理机制。
还值得注意的是,Node.js 遵循全球行为准则,因此如果您有兴趣参与,请务必阅读。
关于该组织的更多背景信息
- Node.js 基金会由董事会管理,董事会成员包括企业会员、个人会员董事、TSC 董事和 CommComm 董事。基金会内设 5 个委员会:TSC、CommComm、法律委员会、市场营销委员会和财务委员会。
- 作为一名开源贡献者,这可能对你来说并不重要,但了解背景总是好的,而不是缺乏背景👍
- 工作组是 TSC 下的一个概念,而非社区委员会下的一个概念。它们与 TSC 和 CommComm 一样,拥有正式的独立章程。倡议和团队是 TSC 和 CommComm 中的概念,在实践中与工作组几乎相同,但关键区别在于它们没有独立的章程。
为工作组、倡议和团队做出贡献
Node.js 项目的各个部分都缺少所需的贡献者,因此他们一直在寻找更多的贡献者。
以下是一些您今天可以产生重大影响的工作组/倡议/团队:
- 包维护
- 较新的团队主要由 IBM 员工创立,负责帮助维护那些维护不善的深层嵌入式生态系统模块。
- i18n——国际化
- i18n 团队正在完善 Node.js 的本地化流程和内容。该流程涵盖翻译从文档到指南再到错误信息的所有内容,所有操作都使用 GitHub 自动化和CrowdIn的简单组合完成。如果您精通多种语言,并愿意参与内容本地化或设置自动化流程,那么这将是一个帮助全球用户的绝佳方式。
- 自动化团队
- 我们有一个自动化团队,专注于构建和改进项目现有的自动化流程。总的来说,目前大量人工工作可以通过 Node.js 实现自动化。构建自动化流程是您可以发挥最大影响力的方式之一。
- 国际贸易管理委员会
- citgm(金丝雀检测)是 Node.js 核心用来测试 Node.js 构建是否会破坏生态系统的工具。随着我们模块数量迅速接近 90 万,我们不可能测试所有模块,但我们可以测试一些全球最常用的模块,以获得更全面的了解。
- 贡献者很少,而且有很多不稳定的检查,只要花点心思和关注就可以修复或改进。
- 基准测试工作组
- 基准测试工作组致力于确保 Node.js 随着时间的推移不会出现显著的回归问题。在一些情况下,他们发现了一些严重的回归问题,并能够在问题影响任何人之前迅速识别和修复。
- 目前只有少数活跃的贡献者正在做这项工作,他们可以借助您的帮助来继续建立基准并采用现有的基准。
- 如果您有兴趣了解实际的基准测试情况,该团队致力于Node.js 的基准测试。
- 发布团队
- 致力于将更改移植到旧版本的 Node.js(LTS 版本)并发布新版本。
- 我们最近严重缺乏发布者——至少有一年时间只有一个人。发布工作对一个人来说太过繁重,更不用说一个五人团队了。这是一个在发挥巨大作用的同时,提升技术水平和参与度的绝佳方式。
- 一般来说,要成为一名发布者,您需要能够将大量参与 Node.js 作为全职工作的一部分——很少有人能够做到这一点。
- 社区委员会
- 即将推出:网站重新设计和 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 上提问。我非常乐意尽我所能帮助你提升水平并做出贡献 ❤️
文章来源:https://dev.to/azure/start-contributing-to-nodejs-in-the-new-year-3dlh