Contributing

Grunt 项目有多个仓库

此外,每个单独的 grunt-contrib 插件都是 gruntjs 组织主页上列出的独立仓库。每个仓库都有自己的维护者,你可以通过查看最近的提交和推送轻松找到维护者。只需在你感兴趣的仓库中创建一个 issue,并 @mention 其中一个维护者即可开始。

贡献者许可协议

除了为其他用户提供支持外,大多数形式的贡献都需要你签署并提交一份贡献者许可协议(简称 CLA)给 jQuery 基金会。

简而言之,CLA 声明当你捐赠修复或文档时,你拥有你提交的代码,并且 jQuery 基金会可以将该代码授权给其他人。

签署 CLA 是一次性的事情,一旦完成,你就可以开始为所有 jQuery 基金会项目做贡献!但要有效,你需要了解贡献者和提交者如何协调他们的工作,所以参与并提出问题应该是你的第一步。

关于 CLA 的更多信息,请阅读 Alex Russell 的 为什么我需要签署这个?

想要贡献?

如果你想贡献,但不知道从哪里开始,这里有一些建议。 下面链接的 issues 被标记为 需要 PR,这意味着它们需要一个拉取请求来修复。 选择任何这些 issues 并确保在处理它们时进行评论。

发布新版本

要发布 grunt-contrib-* 插件的新版本,请按照以下步骤操作:

  • 检查插件的 GitHub 页面,确保它通过了 Travis CI。
  • cd 进入插件目录。
  • git pullmaster 分支获取最新更改。
  • rm -rf node_modules 删除过时或旧的 node 模块。
  • npm install 获取最新版本的 node 模块。
  • 运行 npm test 并确保所有测试在本地通过。
  • package.json 中bump版本
  • 更新 CHANGELOG.md
  • 在插件目录中运行 grunt。这应该生成新的 README。
  • 提交更改日志、package.json 和 README 的更改。
  • 为新版本创建一个新的 git 标签。使用此格式:vX.Y.Z。(例如 v0.1.13
  • 推送更改到 master,推送标签到插件仓库。
  • 发布到 npm:npm publish .。如果你没有 npm publish 的权限,请询问核心贡献者为你发布。

非代码贡献

如果你不想写代码,你仍然可以为项目做贡献!

  • 你可以提交对文档的更新和改进。
  • 提交文章和指南,这些也是文档的一部分。
  • 通过在 StackOverflowIRCGitHub 上回答问题来帮助 Grunt 用户。

提交 issues

如果某些东西没有按照你的预期工作,请阅读文档,特别是新手入门指南。如果你想与某人聊天,请进入 IRC讨论 Grunt 并在那里提出你的问题。

如果文档中没有涵盖你的问题或你想报告一个 bug,确保它得到处理的最佳方式是在适当的 issues 跟踪器中提交。

  • 如果 grunt、grunt-init、grunt-lib-??? 模块或特定的 grunt-contrib-??? 插件有问题
    • 请在该项目的 issues 跟踪器中提交 issue。
  • 如果你想贡献一个新插件
  • 如果网站有问题
  • 如果有一个不特定于上述任何项目的 issue

简化 issue

尝试将你的代码缩减到重现 issue 所需的最小程度。这使得隔离和修复 issue 变得更加容易(和更快)。

解释 issue

如果我们无法重现 issue,我们就无法修复它。请列出重现 issue 所需的确切步骤。包括你的操作系统、Node.js、grunt 等版本。包括相关日志或示例代码。

讨论 Grunt

加入 freenode:IRC #grunt 频道进行一般讨论,或 #grunt-dev 进行核心和插件开发讨论。我们甚至有一个机器人。

请不要发私信。

修改 Grunt

首先,确保你已安装最新的 Node.jsnpm

  1. 确保已安装 grunt-cli(有关更多信息,请参见新手入门指南)
  2. Fork 并克隆仓库。
  3. 检出 master 分支(大多数 grunt/grunt-contrib 开发都发生在这里)。
  4. 运行 npm install 安装所有 Grunt 依赖。
  5. 运行 npm uninstall grunt,这将删除 node_modules 中额外的 Grunt,参见 npm issue 3958
  6. 运行 grunt 来 Grunt grunt。

假设你没有看到任何红色,你已经准备好了。只需确保在进行任何更改后运行 grunt,以确保没有东西被破坏。

提交拉取请求

  1. 创建一个新分支,请不要直接在 master 中工作。
  2. 为你想要做的更改添加失败的测试。运行 grunt 查看测试失败。
  3. 修复问题。
  4. 运行 grunt 查看测试是否通过。重复步骤 2-4,直到完成。
  5. 更新文档以反映任何更改。
  6. 推送到你的 fork 并提交拉取请求。

语法

  • 两个空格缩进。不要在任何地方使用制表符。如果需要制表符字符,请在字符串中使用 \t
  • 没有尾随空白,除非在 markdown 文件中必须强制换行。
  • 不要过度使用空白。
  • 每个 var 语句不超过一个赋值
  • 使用单引号 ' 分隔字符串,而不是双引号 "
  • 相比于 ? : 条件或 ||&& 逻辑运算符的"聪明"用法,更喜欢使用 ifelse
  • 注释很棒。只需将它们放在代码行之前,而不是行末尾
  • 如有疑问,请遵循源代码中已使用的约定。

READMEs

所有 grunt-contrib-* 插件都使用 grunt-contrib-internal 来构建 README.mdCONTRIBUTING.md 文件。源文件位于相应的 docs/ 文件夹中。README 中的更改日志是从 CHANGELOG 文件生成的。

提交对 README 文件的更改时,请直接编辑源文件,而不是直接编辑 README。