菜单

开发和贡献

相关源文件

本页面为希望为 NVM (Node 版本管理器) 项目做出贡献的开发者提供了重要信息。它涵盖了开发工作流程、测试框架、贡献指南和发布流程。有关如何使用 NVM 的信息,请参阅用法,有关安装说明,请参阅安装

设置开发环境

在为 NVM 做出贡献之前,您需要通过克隆存储库和安装所需依赖项来设置您的开发环境。

这将安装必要的开发依赖项,包括 urchin (测试框架)、replacesemver,它们用于测试和发布管理。

来源: Makefile11-15 CONTRIBUTING.md35-37

贡献工作流程

贡献流程图

来源: CONTRIBUTING.md41-86

创建分支

在处理新功能或错误修复时,请创建一个描述性的分支名称,最好引用问题编号

来源: CONTRIBUTING.md54-58

修改与测试

修改时

  1. 遵循代码风格约定
  2. 确保您的更改在所有支持的 shell 中都能正常工作(bashsh/dashzsh
  3. 运行测试以验证您的更改不会破坏现有功能

这将使用 Makefile 运行测试,Makefile 将在所有支持的 shell 中执行测试。

来源: CONTRIBUTING.md45-48 Makefile53-54

提交拉取请求

提交拉取请求之前

  1. 确保您的分支基于最新的上游代码

  2. 验证您的更改是否通过了所有测试

  3. 推送您的更改并在 GitHub 上创建拉取请求

来源: CONTRIBUTING.md66-85

提交消息指南

NVM 遵循特定的提交消息格式

[Tag]: Short description of what you did

Longer description here if necessary

Fixes #1234

关键指南

  • 第一行限制在 72 个字符以内
  • 使用现在时态(“添加功能”而不是“已添加功能”)
  • 在提交正文中引用问题
  • 对于多作者提交,请使用 Co-authored-by: Name <email> 添加协作者

来源: CONTRIBUTING.md87-108

测试框架

NVM 拥有完善的测试基础架构,以确保更改不会破坏现有功能。

测试架构

来源: Makefile20-26 Makefile41-50

测试套件

测试在 test/ 目录中组织成多个套件

测试套件目的
fast快速测试,验证基本功能
installation_node安装 Node.js 版本的测试
installation_iojs安装 io.js 版本的测试
xenial特定于 Ubuntu Xenial 环境的测试

每个测试套件都包含单独的测试用例,用于验证 NVM 功能的特定方面。

来源: .travis.yml77-94 Makefile26

运行测试

运行测试

这将针对所有支持的 shell 运行所有测试套件。要运行特定 shell 的测试

或者针对特定 shell 中的特定测试套件

来源: Makefile41-50 Makefile29-32

CI/CD 流水线

NVM 使用 Travis CI 进行持续集成测试。CI 流水线确保所有更改在合并之前都在多个环境中进行测试。

CI 流水线结构

来源: .travis.yml41-94

Travis CI 配置

Travis CI 配置在多个环境中测试 NVM

  1. 不同的 shell (bash, sh, dash, zsh)
  2. 安装了 curl 和未安装 curl 的情况(WITHOUT_CURL=1
  3. 不同的测试套件 (fast, installation_node, installation_iojs, xenial)
  4. 不同的 Ubuntu 发行版 (默认, xenial)

这些广泛的测试确保 NVM 在各种环境中都能正常工作。

来源: .travis.yml1-94

发布流程

为 NVM 发布新版本遵循 Makefile 管理的特定流程

  1. 确定新版本(补丁、次版本、主版本或显式版本)
  2. 使用所需版本标签运行发布目标
  3. 这将更新所有相关文件中的版本号,提交更改,并创建新的版本标签

版本化文件包括

  • nvm.sh
  • install.sh
  • README.md
  • package.json

来源: Makefile56-89 Makefile18

行为准则

NVM 遵循 OpenJS Foundation 的成员项目 Contributor Covenant 行为准则 v2.1。行为准则确保了所有贡献者的尊重和包容性社区。

关键方面:

  • 尊重沟通和行为
  • 为所有贡献者提供包容性环境
  • 违规举报机制(ljharb@gmail.com
  • 通过 OpenJS Foundation 进行升级(coc-escalation@lists.openjsf.org

有关完整的行为准则,请参阅存储库中的CODE_OF_CONDUCT.md 文件。

来源: CODE_OF_CONDUCT.md1-33

开发者身份证明

通过贡献 NVM,您证明:

  • 您有权根据项目的许可证提交贡献
  • 贡献是您的原创作品,或者您有权提交它
  • 您理解您的贡献记录将永久保存

此认证确保所有项目贡献都经过适当授权,并尊重知识产权。

来源: CONTRIBUTING.md117-123