提出一个改变

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

提出一个改变

截屏视频

你喜欢视频教程?检查回到Symfony贡献欧宝娱乐app下载地址视频系列。

拉力要求,简称“公关”,最好的办法是提供一个错误修正或提出改进Symfony。欧宝娱乐app下载地址

步骤1:检查现有的问题和请求

在改变之前,看看别人也提高了主题甚至开始在公关工作GitHub上搜索

如果你不确定或整个过程中如果你有任何问题,请在问你问题#普通发布版频道欧宝娱乐app下载地址Symfony松弛

第二步:设置您的环境

安装软件栈

在Symfony工作之前,设置一个友欧宝娱乐app下载地址好的环境使用以下软件:

  • Git;
  • PHP版本7.2.5或以上。

配置Git

设置用户信息与你的真实姓名和工作电子邮件地址:

1 2
美元git配置——全球user.name“你的名字”美元git配置——全球用户。电子邮件you@example.com

提示

如果你是新的Git,强烈推荐阅读优秀的和自由的ProGit书。

提示

如果您的IDE创建配置文件在项目的目录中,您可以使用全球.gitignore文件(对于所有项目)或. /信息/排除文件(每个项目),忽略它们。看到GitHub的文档欧宝体育电话

提示

Windows用户:Git安装时,安装程序会问如何处理线的结局,并建议更换所有低频CRLF。这是错误的设置如果你想Symfony作出自己的贡献!欧宝娱乐app下载地址选择原有方法是你最好的选择,如Git将转换你的换行的存储库。如果你已经安装了Git,你可以检查这个设置的值通过键入:

1
美元git配置core.autocrlf

这将返回“false”,“输入”或“真正的”;“真”和“假”是错误的价值观。将其更改为“输入”通过键入:

1
美元git配置——全球核心。autocrlf输入

取代——全球的地方如果你想把它只对活动库

Symfony的欧宝娱乐app下载地址源代码

Symfony的欧宝娱乐app下载地址源代码:

1
美元git克隆git@github.com:用户名/ symf欧宝娱乐app下载地址ony.git
  • 添加上游库作为远程:
1 2
美元cd欧宝娱乐app下载地址美元git远程增加上游git: / /github.com/symfony/symfo欧宝娱乐app下载地址ny.git

检查当前的测试通过

现在安装Symfo欧宝娱乐app下载地址ny,检查所有单元测试通过为您的环境作为专门的解释文档

步骤3:你的请求

许可

在你开始之前,你应该知道你要提交的所有代码必须在释放麻省理工学院的许可

选择正确的分支

公关工作之前,您必须确定在哪个部门需要工作:

请注意

所有的bug修复合并成维护分支也定期合并到最近的分支。例如,如果您提交的公关4.4分支,公关也将应用上的核心团队5.倍分支。

创建一个主题分支

每次你想工作在一个公关错误或增强,创建一个主题分支:

1
美元git checkout - b BRANCH_NAME 5. x

或者,如果你想要提供的bug修复4.4分支,首先跟踪远程4.4本地分支:

1
美元git checkout,追踪来源/ 4.4

然后创建一个新的分支4.4分支的bug修复:

1
美元git checkout - b BRANCH_NAME 4.4

提示

为您的分支(使用描述性名称ticket_XXX在哪里XXX机票号码是一个bug修复好习惯)。

上面的付款命令自动切换到新创建的代码分支(检查你正在研究的分支git分支)。

用你的分支在一个现有的项目

如果你想测试你的代码在一个现有的项目使用欧宝娱乐app下载地址symfony / symfony或Sy欧宝娱乐app下载地址mfony的组件,您可以使用链接实用工具Git存储库中提供您以前克隆。这个工具扫描供应商/你的项目目录,发现它使用Symfony包,取代他们的符号链接的Gi欧宝娱乐app下载地址t存储库。

1
美元php链接/道路/ /你/项目

在运行之前链接命令,确保项目的依赖你想调试安装运行作曲家安装在里面。

提示

如果符号链接到您的本地Symfony叉内部无法解决您欧宝娱乐app下载地址的项目由于开发环境使用的流浪汉时(例如,只有当前项目目录安装),或者可以使用——复制选择。当你完成测试Symfony代码到您的项目,您可以使用欧宝娱乐app下载地址——回滚选择让你的项目回到原来的依赖关系。

你的请求

工作的代码尽可能多的你想要提交多达你想要的;但请记住以下几点:

  • 读到的Symfony欧宝娱乐app下载地址约定并遵循编码标准(使用git diff -检查检查尾部空格——也读下面的提示);
  • 添加单元测试来证明虫子是固定的,或者新功能实际上作品;
  • 努力不是打破向后兼容性(如果你必须这样做,试图提供一个兼容层支持老方法)——PRs打破向后兼容性更少被合并的机会;
  • 原子和逻辑上独立的提交(使用的力量吗git变基有一个干净的历史和逻辑);
  • 从来没有解决编码标准在某些现有的代码,因为它使代码评审更加困难;
  • 写好提交消息:首先一个简短的标题(第一行),紧随其后的是一个空行和一个更详细的描述。

    主题应该开始与组件、桥梁或包你工作在方括号((DependencyInjection),(FrameworkBundle),……)。

    然后利用句子,不最后一段,使用一个命令动词开始。

    这是一个完整的示例主题:(MagicBundle)添加“MagicConfig”,允许配置的东西

提示

当提交请求,fabbot检查您的代码为常见的拼写错误和验证您使用PHP编码标准中定义的PSR-1PSR-2

状态发布以下拉请求的描述与总结它检测到的任何问题或任何GitHub行动构建失败。

准备提交请求

当你的公关不是bug修复(当你添加一个新的功能或改变现有的一个实例),它还必须包括以下:

  • 相关的变化的解释更新日志文件(s) ((公元前打破)或者是(弃用)时,必须使用前缀相关);
  • 解释如何升级现有的应用程序相关的升级文件如果打破向后兼容性的变化或者轻视的东西最终将打破向后兼容性。

第四步:提交你的请求

当你觉得你的公关是准备提交,遵循以下步骤。

变基拉请求

之前提交你的公关,更新你的分支(如果需要一段时间来完成你的需要更改):

1 2 3 4 5
美元git checkout 5.倍美元git获取上游美元git合并上游/ 5. x美元git checkout BRANCH_NAME美元git变基5.倍

提示

取代5.倍之前与您所选择的分支(如。4.4如果你正在做一个bug修复。

当在做变基命令,您可能必须解决合并冲突。git状态将告诉你unmerged文件。解决所有的冲突,然后继续变基:

1 2
美元git添加…#添加解析文件美元git变基——继续

检查所有测试仍然通过,推动你的远程分支:

1
美元git push——迫使BRANCH_NAME起源

做一个拉请求

你现在可以把请求的欧宝娱乐app下载地址symfony / symfonyGitHub库。

提示

小心点你的拉向请求欧宝娱乐app下载地址symfony: 4.4如果你想要核心团队将一个基于bug修复4.4分支。

为了缓解核心团队的工作,总是在将请求消息中包含修改后的组件,如:

1 2
(Yaml)固定的东西(形式)(Validator) [FrameworkBundle]添加一些东西

默认拉请求描述包含一个表,你必须填写适当的答案。这将确保贡献可能审查没有不必要的反馈循环,你的贡献可以尽快列入Symfony。欧宝娱乐app下载地址

一些答案的问题引发更多的要求:

  • 如果你的回答肯定“Bug修复?”,check if the bug is already listed in the Symfony issues and reference it/them in "Fixed tickets";
  • 如果你的回答肯定“新特性?”,you must submit a pull request to the documentation and reference it under the "Doc PR" section;
  • 如果你的回答肯定“BC休息?”,the PR must contain updates to the relevant更新日志升级文件;
  • 如果你的回答肯定“用法吗?”,the PR must contain updates to the relevant更新日志升级文件;
  • 如果你回答没有测试通过,您必须添加一个项目一个todo - list的行为必须修复完成测试;
  • 如果“许可证”不是麻省理工学院,只是不提交拉请求,因为它不会被接受。

如果一些之前的需求没有得到满足,创建一个todo - list和添加相关项目:

1 2 3
——[]修复测试作为他们尚未更新-[]文档提交变化[]文档BC优惠欧宝体育电话

如果代码还没有完成,因为你没有时间完成它还是因为你想要的早期反馈在你的工作上,添加一个todo - list:项

1 2
————[][]完成代码收集反馈为我改变

只要你在为todo - list条目,请前缀拉请求标题用“(在制品)”。

把请求中的描述,给尽可能多的细节您的更改(不要犹豫给代码示例来说明你的观点)。如果你把请求是关于添加或修改一个现有的一个新特性,解释变化的基本原理。拉请求描述帮助代码评审和它作为一个参考当代码合并(拉请求描述和其相关的评论是合并提交消息的一部分)。

除了这个“代码”拉请求,你必须发送一个请求欧宝体育电话文档存储库在适当的时候来更新文档。欧宝体育电话

第五步:接收反馈

我们问所有贡献者遵循一些最佳实践确保一个建设性的反馈过程。

如果你认为有人无法记住这些建议,你想要另一个角度来看,请加入#普通发布版频道欧宝娱乐app下载地址Symfony松弛。如果你收到反馈你找到的请联系护理团队

核心团队负责决定哪些公关被合并,所以他们的反馈是最相关的。所以不要觉得有压力重构代码立即当有人提供反馈。

自动反馈

有许多自动化脚本,该脚本将把请求提供反馈。

fabbot

fabbot将审查代码风格,检查常见的拼写错误,并确保git历史看起来不错。如果有任何问题,fabbot往往会建议应该做什么改变。大多数时候,你会得到一个命令运行自动修复的变化。

这是罕见的,但fabbot可能是错的。应验证变化意义和建议他们把相关的要求。

诗篇

诗篇将评论拉请求如果发现任何潜在的类型错误。诗篇错误并不总是正确的,但每一个应该检查和讨论。把请求不应更新诗篇基线和添加@psalm -注释。

诗篇phar安装可以本地运行,分析:

1
美元诗篇。phar src 欧宝娱乐app下载地址/ Symfony /组件/工作流

自动化测试

一系列自动化测试运行时提交请求。这些测试代码在不同条件下,可以肯定的是没什么坏了。测试失败可以与您的更改。如果你认为这种情况下,您可以检查如果目标分支有相同的错误和公关上留下评论。

否则,测试失败可能是由于您的更改。以下测试场景运行在每个更改:

PHPUnit) /测试

这个工作上运行Ubuntu使用多个PHP版本(在各自工作)。这些工作在本地运行testsuite就像你会做的。

失败经常在这些工作表明代码中的缺陷。

PHPUnit) /测试(high-deps)

这个工作检查每个包(桥,包或组件)src /分别通过调用作曲家更新phpunit)在每个包中。

失败在这个工作通常表示丢失的包的composer.json失败的包(如。src 欧宝娱乐app下载地址/ Symfony /包/ FrameworkBundle / composer.json)。

这个工作还经营相关的包使用测试(“翻转”^后缀在包名)。这些测试结帐前(如大释放。4.4把请求5.4)和运行测试和你的部门的依赖。

在这些失败了测试表明向后兼容性闯入您的更改。

PHPUnit) /测试(low-deps)

这个工作也单独检查每个包,然后使用作曲家更新——prefer-lowest在运行测试之前。

失败在这个工作经常显示一个错误的版本范围或丢失的包的composer.json失败的方案。

持续集成/ appveyor /公关

这个工作运行在Windows上使用x86架构和最低的PHP版本的支持。首次运行所有的测试,没有额外的PHP扩展。然后,所有跳过运行测试使用所有必需的PHP扩展。

失败在这个工作通常表明您的更改不支持窗口,x86与最小或PHP扩展。

集成/测试

集成测试需要其他服务(如复述或RabbitMQ)。这个工作只运行的测试集成PHPUnit)组。

失败在这个工作指示与这些服务中的缺陷沟通。

PHPUnit) /测试(实验)
这个工作总是通过(即使测试失败)和使用核心团队准备即将到来的PHP版本。

返工将请求

基于反馈拉请求,你可能需要返工公关。在补交公关之前,变基上游/ 5. x上游/ 4.4,不要合并;和力推动原点:

1 2
美元上游git变基- f / 5. x美元git push——迫使BRANCH_NAME起源

请注意

在做一个推,力,总是显式地指定分行名称,以避免破坏其他分支在存储库中(——力告诉Git,你真的想仔细惹事情这样做)。

主持人问你“南瓜”早些时候提交。这意味着您将许多提交转换为一个承诺。今天这不再是必要的,因为Symfony项目使用的专有工具自动南瓜合并之前提交。欧宝娱乐app下载地址

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode