贡献
Grunt 有许多项目。
- grunt - Grunt 主项目
- grunt-init - 独立的 grunt-init 项目脚手架工具
- gruntjs.com - gruntjs.com 网站
- grunt-contrib 集合 - 所有 Grunt “contrib” 插件的集合
此外,每个 grunt-contrib 插件都是一个独立的存储库,列在 gruntjs 组织主页 上。每个存储库都有自己的维护者,您可以通过查看最近的提交和推送轻松找到维护者。只需在您感兴趣的存储库中创建一个问题,并 @提及
其中一个维护者即可开始。
贡献者许可协议
除了向其他用户提供支持外,大多数形式的贡献都需要您与 jQuery 基金会签署并提交一份贡献者许可协议(简称“CLA”)。
总而言之,CLA 声明,当您捐赠修复或文档时,您既拥有您提交的代码,而 jQuery 基金会又可以将该代码许可给其他人。
提交 CLA 是一次性的事情,一旦完成,您就可以开始为所有 jQuery 基金会项目做出贡献!但是,为了提高效率,您需要了解一些关于贡献者和提交者如何协调他们的工作的信息,因此参与进来并提出问题应该是您的第一步。
有关 CLA 的更多信息,请阅读 Alex Russell 的“为什么我需要签署此协议?”。
想贡献力量吗?
如果您想做出贡献,但不知道从哪里开始,这里就是您的答案。下面链接的问题被标记为需要 PR,这意味着它们需要一个拉取请求才能修复。选择任何这些问题,并确保在您处理它们时发表评论。
- grunt-init - 贡献指南应该放在 contributing.md 中
- grunt-contrib-jade - 添加对 basedir 选项的支持
- grunt-init-gruntfile - 不生成 package.json
- grunt-contrib-coffee - 支持 process 选项
- grunt - --gruntfile 参数在父目录中损坏
- grunt-contrib-compress - 添加 bzip2 支持
- grunt-contrib-jasmine - 增强日志记录
- grunt-contrib-less 具有多个 src 文件的源映射
发布新版本
要发布 grunt-contrib-*
插件的新版本,请按照以下步骤操作
- 检查插件 GitHub 页面以确保它通过了 Travis CI。
cd
进入插件目录。- 从
master
分支git pull
最新更改。 rm -rf node_modules
删除过时或旧的节点模块。npm install
获取最新版本的节点模块。- 运行
npm test
并确保所有测试都在本地通过。 - 在
package.json
中提升版本 - 更新 CHANGELOG.md
- 在插件目录中运行
grunt
。这应该会生成新的 README。 - 提交更改日志、
package.json
和 README 更改。 - 为新版本创建一个新的 git 标签。对标签使用以下格式:
vX.Y.Z
。(例如v0.1.13
) - 将更改推送到
master
,将标签推送到插件存储库。 - 发布到 npm:
npm publish .
。如果您无权访问npm publish
,请请求核心贡献者之一为您发布。
非代码贡献
如果您不想编写代码,您仍然可以为项目做出贡献!
- 您可以提交对 文档 的更新和改进。
- 提交文章和指南,这些文章和指南也是 文档 的一部分。
- 通过回答 StackOverflow、IRC 和 GitHub 上的问题来帮助 Grunt 用户。
提交问题
如果某些内容没有按您的预期工作,请阅读 文档,尤其是 入门 指南。如果您想与他人聊天,请进入 IRC discussing-grunt 并在那里提出您的问题。
如果您有一个文档中未涵盖的问题或想报告错误,确保解决该问题的最佳方法是在相应的错误跟踪器中提交该问题。
- 如果 grunt、grunt-init、grunt-lib-??? 模块或特定的 grunt-contrib-??? 插件出现问题
- 请在该项目的错误跟踪器上提交问题。
- 如果您想贡献一个新插件
- 请在 grunt-contrib 集合问题跟踪器 上提交问题。我们不接受所有插件,但我们一定会考虑您的插件。
- 如果 网站 出现问题
- 请在 gruntjs.com 网站问题跟踪器 上提交问题。
- 如果存在与上述任何一项无关的问题
- 请在 grunt 问题跟踪器 上提交问题,并告诉我们您为什么在那里提交。
简化问题
尝试 减少您的代码 到重现问题所需的最低限度。这使得隔离和修复问题变得更加容易(并且速度更快)。
解释问题
如果我们无法重现该问题,我们就无法修复它。请列出重现该问题所需的确切步骤。包括您的操作系统、Node.js、grunt 等的版本。包括相关的日志或示例代码。
讨论 grunt
加入 freenode:IRC #grunt 频道进行一般性讨论,或 #grunt-dev 进行核心和插件开发讨论。我们有机器人和一切。
请勿发送私人消息。
修改 grunt
- 确保已安装 grunt-cli(有关更多信息,请参阅 入门 指南)
- Fork 并克隆存储库。
- 检出 master 分支(大多数 grunt/grunt-contrib 开发都在那里进行)。
- 运行
npm install
以安装所有 Grunt 依赖项。 - 运行
npm uninstall grunt
这将删除node_modules
中的额外 Grunt,请参阅 npm 问题 3958 - 运行
grunt
来 Grunt grunt。
假设您没有看到任何红色,则说明您已准备就绪。请务必在进行任何更改后运行 grunt
,以确保没有任何损坏。
提交拉取请求
- 创建一个新分支,请不要直接在
master
中工作。 - 为要进行的更改添加失败的测试。运行
grunt
以查看测试失败。 - 修复问题。
- 运行
grunt
以查看测试是否通过。重复步骤 2-4,直到完成。 - 更新文档以反映任何更改。
- 推送到您的 fork 并提交拉取请求。
语法
- 两个空格缩进。不要在任何地方使用制表符。如果需要在字符串中使用制表符,请使用
\t
。 - 没有尾随空格,但必须强制换行的 markdown 文件除外。
- 不要过度使用空格。
- 每个
var
语句不超过 一个赋值。 - 使用单引号
'
分隔字符串,而不是双引号"
。 - 更喜欢
if
和else
,而不是 “聪明地” 使用? :
条件或||
、&&
逻辑运算符。 - 注释很好。只需将它们放在代码行的前面,而不是行尾。
- 如有疑问,请遵循您在源代码中看到的约定。
自述文件
所有 grunt-contrib-* 插件都使用 grunt-contrib-internal 来构建 README.md
和 CONTRIBUTING.md
文件。源文件位于相应的 docs/
文件夹中。自述文件中的更改日志是从 CHANGELOG
文件生成的。
提交对自述文件的更改时,请仅编辑源文件,而不要直接编辑自述文件。