首先,非常感谢你正在考虑为 Active Admin 进行贡献,没错,正是像你这样的人打造了 Active Admin 这么精良的工具。
[来源: Active Admin] **需要更多启发?**请参考: [1] Read The Docs [2] Mustache.js
了解向导的内容,有助于你和开发者的沟通,可以有效节省该开源项目的开发者管理和开发的宝贵时间。作为回报,他们会在回复你的issue、评估变更、以及完成你的 Pull Request 给予同样的尊重。
[来源: Hoodie]
保持开放的头脑!改进文档、bug 筛选、以及为任何有用处的贡献撰写教程,都会大大的减轻维护者的工作量。
ElasticSearch 是一款开源项目,而且我们非常热心的希望收到来自共同体的——你——的贡献!有很多种路径实现贡献:撰写教程、撰写博客、改进现有文档、提交bug报告、提交新功能需求、以及提交代码,均是为 Elasticsearch 自身内部合作的一部分。
[来源: Elasticsearch] 想获得更多启发?请参考: [1] Devise [2] Geocoder (“已知问题”)
再重复一遍,做这些工作可以大大的减轻维护者的工作量。如果有人忽略掉你的向导指南,并提交了一些你最不想看到的内容,那么这个时候你就可以正当的关闭它,并告诉ta你的规程。
请不要使用 issue 跟踪来获得问题支持。请到 Freenode 上的 IRC 频道找 #pocoo 来进一步获得支持。如果你的问题不是直接和 Werkzeug 或 Flask 相关,#python 频道是非常活跃的有可能帮到你的,另外 Stack Overflow 也非常值得考虑。
[来源: Flask] 想获得更多启发?请参考: [1] cucumber-ruby [2] Read the Docs
此处的信息不仅包括如何和他人沟通(彼此尊重、考虑对方等),也要包括技术上的责任(测试的重要性、项目依赖等),如果有行为准则的话,提示并将链接地址释出。
责任:
- 确保每次变更跨平台的兼容性都能被接受:Windows、Mac、Debian& Ubuntu Linux。
- 确保进入核心的代码满足检查表中的所有要求: https://gist.github.com/audreyr/4feef90445b9680475f2
- 任何主要的变更和改进都要创建issue,以透明的方式进行讨论,且要获得共同体的反馈。
- 除非是绝对必要的情况下,否则不要为代码增加新的类,Err on the side of using functions.
- 尽可能的保持特性版本最小化,理想的情况是一个版本只有一个特性。
- 对新来这表示友好!鼓励多样性,任何背景的贡献者都是欢迎的。请参考Python 共同体行为准则。
[来源: cookiecutter] 想获得更多启发?请参考: [1] Celery [2] geocoder
帮助刚刚接触到贵项目的新人,最佳之处就是了解他们哪里需要帮助。而这通常也是一个展示你项目是否适合新手的好时机。
不确定如何开始为 Atom 做贡献?你可以先从那些标记为 beginner 或 help-wanted的issue入手: Beginner issues - 那些只需要几行代码就可以搞定,或者是做一到两个测试的 issues 。 Help wanted issues - 比 Beginner 更深度参与的 issues 。 上述 issue 列表,你可以将之按评论总数排序。虽然这么做有所缺陷,但是评论的数量可以合理地反映一个给定的变化将会产生的影响。
[来源: Atom] 想获得更多启发?请参考: [1] Read the Docs [2] Django (记得到下拉滚动到”向导“部分。)
这里有一些友好的教程或许有所帮助:
正在为你的第一个 Pull Request 做准备吗?你可以从这个系列文章中学习到:在 GitHub 如何为开源项目做贡献
[来源: React]
附注一点,这里有一些来自Active Admin的例子,非常好的说明了对新人友好的语言来完善文档:
到达此处,说明你已经做出了改变!请大胆去寻求帮助吧,每个人在开始的时候都是新手:smile_cat:
如果说维护者要求你”rebase“你的PR,他们提及有很多代码做出了变更,那么你就应该照做,这样会节省合并的时间。
这部分的内容如何写取决于你自己,不过下面的内容最好是包含进来:
- 告诉众人他们需要签署 CLA,同意 DCO,以及其它法律上的事情
- 如果贡献需要测试,也让他们知道,并解释如何跑测试
- 如果你使用了GitHub之外的issue管理工具(如JIRA、Trac),也请告诉他们如何去提交贡献
针对修改一两行内容之上的改动,应做到:
- 将代码fork到自己的账户
- 在自己的代码中进行修改
- 如果你认为修改很完善,且项目应该接受的话,要做到:
- 确保代码风格是和项目一致的。
- 和 jQuery 基金会签署了贡献者许可协议(CLA)
- 知晓 jQuery 基金会的行为准则
- 发送的 Pull Request 里包含 CLA 文件
[来源: Requirejs] 想获得更多启发?请参考: [1] Active Admin [2] Node.js [3] Ember.js
小的贡献(比如修正拼写错误),其内容小到不属于知识产权,可以由贡献者作为补丁提交,而不需要签署 CLA。
根据经验,如果更改没有引入任何新功能或创造性思维,那么更改就是明显的修复。只要更改不影响功能,一些可能的示例包括:
- 拼写、语法错误修正
- 单词更正、空格和格式的变更
- 注释清理
- 变更返回值或者静态存储了错误的代码的Bug修复
- 增加日志信息或 debug 的输出
- 改动‘元数据’文件,如 Gemfile、.gitignore、构建脚本等。
- 从一个目录或包移动文件到另外的目录或包
[来源: Chef] 想获得更多启发?请参考: [1] Puppet
至少,包括以下句子:
如果你发现了安全漏洞,请不要新建 issue,请发送 Email 给 xxx。
如果你不想使用自己的个人联系信息,那么需要开通“security@”的邮箱地址。更大一点的项目需要更多正式的流程来处理安全披露,如加密通信等。
任何事关安全的 issue 请直接提交到 [email protected]
为了确定自己是否在处理安全问题,请问自己以下两个问题:
- 我可以访问不是我自己的内容吗?或者说我应该访问吗?
- 我可以将其他人禁止使用吗?
如果以上两个问题的任何一个问题的答案是”是“的话,那么就可以认为这是一个安全问题。
提示:即使以上两个问题回答均为”否“,也不代表你处理的不是安全问题,实在确定不了的话,还请直接发送问题给[email protected]。
[来源: Travis CI] 需要更多启发?请参考 [1] Celery [2] Express.js
你可以准备好一些模板,这样人们就可以复制-粘贴(呵呵,再次节省你的工作)。
当提交一个issue,请确保回答了以下这五个问题:
- 你使用的是Go的哪个版本(
go verison
)?- 使用的是什么处理器架构以及操作系统?
- 你做了什么?
- 你原本期望是什么?
- 实际运行的结果?
一般的问题请到 golang-nuts 邮件列表中,而不是在此issue跟踪,在那里 gopher 们会很好的回答你的问题。
[来源: Go] 想获得更多启发?请参考: [1] Celery [2] Atom (包括模板)
这些信息可以帮助到贡献者了解上下文,进而避免他们提出不符合项目需求的建议。(节省彼此的时间)
Express 的哲学思想是为 HTTP 服务提供小巧的、稳定的工具集,为单个页面应用、web站点、混合、或者是公开的 HTTP API提供伟大的解决方案。
Express 不会强制你使用任何特定的ORM 或模板引擎,通过Consolidate.js ,Express 提供了超过14中模板引擎,你可以快速的构建自己的完美框架。
[来源: Express] 想获得更多启发?请参考: Active Admin
如果是前后来回需要确认的话,那么这个解释就很必要了。询问他们功能的范围,仔细思考为什么这个功能是必须的,以及其将如何工作。
如果你发现了Elasticsearch没有你意想中的功能,你并不是第一位,也不是最后一位,请相信自己,一定会有其他有类似需求的人。Elasticsearch 有很多功能都是因为用户的需要而增加的,请在GitHub上新建一个issue,描述清楚你需要的功能,以及为何需要它,最好也描述一下它应该如何工作。
[source: Elasticsearch] 想获得更多启发?请参考: [1] Hoodie [2] Ember.js
谁来核对?在被接受之前需要谁的签名?贡献者希望在什么时候收到你的消息?贡献者如何获得提交访问(如果有的话)?
我们的核心团队会在每周的分类会议上查看 Pull Requests,会议是使用公开的Google Hangout进行。每周状态更新会发送到 puppet-dev 邮件列表。所有的注意事项都会记录到 Puppet 共同体 community-triage仓库,Hangout 同时也会上传到YouTube上。
在收到反馈后,我们期望在两周内得到答复。两周后,如果没有显示任何活动,我们可能会关闭pull request。
[来源: Puppet] 想获得更多启发?请参考 [1] Meteor [2] Express.js
如果你的项目除了 GitHub 之外还有其它的通道的话,一并在这里列出。还可以作者、维护者、亦或是贡献者都可以写上,或者是说明一下响应时间的期望。
你可以来 https://gitter.im/cucumber/cucumber 和我们的核心团队接触,我们会在周五提供专门的时间。
[来源: cucumber-ruby] 想获得更多启发?请参考: [1] Chef [2] Cookiecutter
以下这些内容并非必须项,但是对于简化贡献的流程等内容会有所帮助的。
可参考项目: [1] Requirejs [2] Elasticsearch
可参考项目? [1] Angular [2] Node.js
可参考项目? [1] StandardIssueLabels [2] Atom