提交补丁
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
提交补丁
补丁是提供bug修复或建议增强Symfony的最佳方式。ob娱乐下载
步骤1:设置环境
配置Git
用你的真实姓名和工作电子邮件地址设置你的用户信息:
1 2
$Git配置——global user.name“你的名字”$Git配置——全局用户。电子邮件you@example.com
提示
如果您是Git的新手,强烈建议您阅读优秀的免费版本ProGit书。
提示
如果您的IDE在项目目录中创建配置文件,则可以使用global.gitignore
文件(适用于所有项目)或. /信息/排除
文件(每个项目)忽略它们。看到GitHub的文档欧宝官网下载app.
提示
Windows用户:在安装Git时,安装程序会询问如何处理行尾,并建议将所有LF替换为CRLF。如果您希望对Symfony做出贡献,这是错误的设置!ob娱乐下载选择as-is方法是最好的选择,因为Git会将换行符转换为存储库中的换行符。如果你已经安装了Git,你可以输入以下命令检查这个设置的值:
1
$Git配置core. selflf
这将返回“false”,“input”或“true”;"真"和"假"是错误的值。通过输入将其更改为“input”:
1
$Git配置——全局核心。autocrlf输入
如果希望仅为活动存储库设置——global,则使用——local替换——global
获取Symfonob娱乐下载y源代码
获取Symfonob娱乐下载y源代码:
- 创建一个GitHub登记和签到;
- 叉的ob娱乐下载Symfony库(点击“Fork”按钮);
- 在“fork动作”完成后,在本地克隆你的fork(这将创建一个
ob娱乐下载
目录):
1
$git克隆git@github.com:用户名/ symfob娱乐下载ony.git
- 将上游存储库添加为远程:
1 2
$cdob娱乐下载$Git远程添加上游Git://github.com/symfony/symfonyob娱乐下载.git
检查当前的测试是否通过
现在已经安装了Syob娱乐下载mfony,请检查您的环境中的所有单元测试是否都通过了文档.
步骤2:完善补丁
许可
在开始之前,您必须知道您要提交的所有补丁必须在麻省理工学院的许可,除非在提交中明确指定。
选择正确的分支
在开始一个补丁之前,你必须确定你需要在哪个分支上工作:
3.4
,如果您正在修复现有功能的错误,或希望进行属于补丁版本中可接受的更改列表(如果你正在修复的特性是在后续版本中引入的,你可能不得不选择更高的分支);
主
,如果您正在添加一个新功能。
请注意
所有合并到维护分支中的错误修复也会定期合并到最近的分支中。例如,如果您为3.4
分支中,该补丁也将由核心团队应用于上主
分支。
创建主题分支
每次你想要为一个bug或者一个增强做补丁的时候,创建一个topic分支:
1
$git checkout -b BRANCH_NAME master
或者,如果您想为3.4
布兰奇,先追踪遥控器3.4
本地分支:
1
$Git checkout -t origin/3.4
然后创建一个新的分支3.4
分支来进行错误修复:
1
$git checkout -b BRANCH_NAME
提示
为分支使用描述性名称(ticket_XXX
在哪里XXX
票号是bug修复的一个很好的约定)。
上面的签出命令自动将代码切换到新创建的分支(检查您正在使用的分支git分支
).
在现有项目中使用你的分支
如果您想在使用ob娱乐下载symfony / symfony
或Syob娱乐下载mfony组件,您可以使用链接
之前克隆的Git存储库中提供的实用程序。此工具扫描供应商/
目录,找到它使用的Symfony包,并将它们替换为指向Git存储库ob娱乐下载中的那些包的符号链接。
1
$PHP链接/路径/到/your/项目
在运行链接
命令时,确保要调试的项目的依赖项已通过运行安装作曲家安装
在里面。
完善你的补丁
你想做多少就做多少,提交多少就提交多少;但请记住以下几点:
- 阅读Symfonyob娱乐下载约定并遵循编码标准(使用
Git diff——检查
检查尾随空格——也可以阅读下面的提示); - 添加单元测试,以证明bug已修复或新功能确实有效;
- 尽量不要破坏向后兼容性(如果你必须这样做,尝试提供一个兼容层来支持旧的方式)——破坏向后兼容性的补丁被合并的机会更少;
- 进行原子提交和逻辑上分离的提交(使用
git变基
有一个干净的和合乎逻辑的历史); - 永远不要在一些现有的代码中修正编码标准,因为这会使代码审查更加困难;
- 编写好的提交消息(参见下面的提示)。
提示
当提交pull请求时,fabbot检查代码中常见的拼写错误,并验证所使用的PHP编码标准是否符合PSR-1而且PSR-2.
在拉请求描述的下面会发布一个状态,其中包含它检测到的任何问题或任何Travis CI构建失败的摘要。
提示
好的提交消息由摘要(第一行)、空行和更详细的描述组成。摘要应该以方括号中的正在处理的组件开始((DependencyInjection)
,(FrameworkBundle)
,……)。使用动词(固定的……
,添加……
,…)来开始摘要,并且不要在结尾添加句点。
准备提交补丁
当你的补丁不是关于bug修复(例如,当你添加一个新功能或改变一个现有功能时),它还必须包括以下内容:
- 对相关变化的解释
更新日志
文件(s) ((公元前打破)
或者是(弃用)
在相关情况下必须使用前缀); - 有关如何升级现有应用程序的说明
升级
如果更改破坏了向后兼容性,或者如果您弃用了最终会破坏向后兼容性的某些内容,则文件。
步骤3:提交补丁
当您觉得您的补丁已经准备好提交时,请遵循以下步骤。
调整你的补丁
在提交你的补丁之前,更新你的分支(如果你需要一段时间来完成你的更改,就需要更新):
1 2 3 4 5
$Git checkout master$Git上游获取$Git合并upstream/master$git checkout BRANCH_NAME$Git重基master
提示
取代主
使用您之前选择的分支(例如。3.4
)如果你正在修复一个bug
当做变基
命令时,您可能必须修复合并冲突。git状态
会向你展示unmerged文件。解决所有冲突,然后继续重基:
1 2
$Git add…#添加解析文件$Git rebase——继续
检查所有测试仍然通过,并远程推动分支:
1
$git push——force origin BRANCH_NAME
提出拉请求
对象上的拉取请求ob娱乐下载symfony / symfony
GitHub库。
提示
注意将您的pull请求指向ob娱乐下载symfony: 3.4
如果您希望核心团队根据3.4
分支。
为了简化核心团队的工作,总是在你的pull request消息中包含修改过的组件,比如:
1 2
[Form] [Validator] [FrameworkBundle]添加了一些东西
默认的拉取请求描述包含一个表,您必须在该表中填写适当的答案。这确保了您的贡献可以在没有不必要的反馈循环的情况下进行审查,并且可以尽快将您的贡献包含到Symfony中。ob娱乐下载
一些问题的答案会引发更多的要求:
- 如果你对“Bug修复?”的回答是肯定的,检查该Bug是否已经在Symfony问题中列出,并在“修复票据”中引用它/它们;ob娱乐下载
- 如果你对“新功能?”的回答是肯定的,你必须向文档提交一个pull request,并在“Doc PR”部分引用它;欧宝官网下载app
- 如果你回答是“BC中断?”,补丁必须包含相关的更新
更新日志
而且升级
文件; - 如果你回答是“Deprecations?”,补丁必须包含相关的更新
更新日志
而且升级
文件; - 如果对“测试通过”回答“否”,则必须向待办事项列表中添加一个项目,其中包含修复测试必须执行的操作;
- 如果“许可证”不是MIT,就不要提交拉请求,因为它无论如何都不会被接受。
如果上面的一些要求不满足,创建一个待办事项列表,并添加相关项目:
1 2 3
-[]修复测试,因为它们还没有更新-[]向文档提交更改-[]记录BC中断欧宝官网下载app
如果代码还没有完成,因为你没有时间完成它,或者因为你想要对你的工作得到早期的反馈,在待办事项列表中添加一个项目:
1 2
-[]完成代码-[]收集修改的反馈
只要您在待办事项列表中有项目,请在拉取请求标题前加上“[WIP]”。
在拉取请求描述中,尽可能详细地描述您的更改(不要犹豫给出代码示例来说明您的观点)。如果您的pull请求是关于添加新功能或修改现有功能,请解释这些更改的基本原理。拉取请求描述有助于代码审查,并在代码合并时作为参考(拉取请求描述及其所有相关注释是合并提交消息的一部分)。
除了这个“代码”的拉请求外,还必须向欧宝官网下载app文档存储库适时更新文档。欧宝官网下载app
重做补丁
根据对拉请求的反馈,您可能需要重做您的补丁。在重新提交补丁之前,使用上游/主
或上游/ 3.4
,不要合并;并将其推至原点:
1 2
$Git rebase -f upstream/master$git push——force origin BRANCH_NAME
请注意
当做推,力
,总是显式地指定分支名称,以避免在repo (——力
告诉Git你真的想搞砸事情,所以要小心)。
版主之前要求你“压缩”提交。这意味着您将把多个提交转换为一次提交。现在已经不需要这样做了,因为Symfony项目使用了一个专有工具,可以在合并之前自动压ob娱乐下载缩所有提交。