1
- Proposing a Change
1
+ Submitting a Patch
2
2
==================
3
3
4
- A pull request, "PR" for short, is the best way to provide a bug fix or to
5
- propose enhancements to Symfony.
4
+ Patches are the best way to provide a bug fix or to propose enhancements to
5
+ Symfony.
6
6
7
- Step 1: Check existing Issues and Pull Requests
8
- -----------------------------------------------
9
-
10
- Before working on a change, check to see if someone else also raised the topic
11
- or maybe even started working on a PR by `searching on GitHub `_.
12
-
13
- If you are unsure or if you have any questions during this entire process,
14
- please ask your questions on the #contribs channel on `Symfony Slack `_.
15
-
16
- .. _step-1-setup-your-environment :
17
-
18
- Step 2: Setup your Environment
7
+ Step 1: Setup your Environment
19
8
------------------------------
20
9
21
10
Install the Software Stack
@@ -101,27 +90,20 @@ Check that the current Tests Pass
101
90
Now that Symfony is installed, check that all unit tests pass for your
102
91
environment as explained in the dedicated :doc: `document <tests >`.
103
92
104
- .. tip ::
105
-
106
- If tests are failing, check on `Travis-CI `_ if the same test is
107
- failing there as well. In that case you do not need to be concerned
108
- about the test failing locally.
109
-
110
- .. _step-2-work-on-your-patch :
111
-
112
- Step 3: Work on your Pull Request
113
- ---------------------------------
93
+ Step 2: Work on your Patch
94
+ --------------------------
114
95
115
96
The License
116
97
~~~~~~~~~~~
117
98
118
- Before you start, you should be aware that all the code you are going to submit
119
- must be released under the *MIT license *.
99
+ Before you start, you must know that all the patches you are going to submit
100
+ must be released under the *MIT license *, unless explicitly specified in your
101
+ commits.
120
102
121
103
Choose the right Branch
122
104
~~~~~~~~~~~~~~~~~~~~~~~
123
105
124
- Before working on a PR , you must determine on which branch you need to
106
+ Before working on a patch , you must determine on which branch you need to
125
107
work:
126
108
127
109
* ``3.4 ``, if you are fixing a bug for an existing feature or want to make a
@@ -134,28 +116,28 @@ work:
134
116
.. note ::
135
117
136
118
All bug fixes merged into maintenance branches are also merged into more
137
- recent branches on a regular basis. For instance, if you submit a PR
138
- for the ``3.4 `` branch, the PR will also be applied by the core team on
119
+ recent branches on a regular basis. For instance, if you submit a patch
120
+ for the ``3.4 `` branch, the patch will also be applied by the core team on
139
121
the ``master `` branch.
140
122
141
123
Create a Topic Branch
142
124
~~~~~~~~~~~~~~~~~~~~~
143
125
144
- Each time you want to work on a PR for a bug or on an enhancement, create a
126
+ Each time you want to work on a patch for a bug or on an enhancement, create a
145
127
topic branch:
146
128
147
129
.. code-block :: terminal
148
130
149
131
$ git checkout -b BRANCH_NAME master
150
132
151
- Or, if you want to provide a bug fix for the ``3.4 `` branch, first track the remote
133
+ Or, if you want to provide a bugfix for the ``3.4 `` branch, first track the remote
152
134
``3.4 `` branch locally:
153
135
154
136
.. code-block :: terminal
155
137
156
138
$ git checkout -t origin/3.4
157
139
158
- Then create a new branch off the ``3.4 `` branch to work on the bug fix :
140
+ Then create a new branch off the ``3.4 `` branch to work on the bugfix :
159
141
160
142
.. code-block :: terminal
161
143
@@ -185,10 +167,8 @@ uses, and replaces them by symbolic links to the ones in the Git repository.
185
167
Before running the ``link `` command, be sure that the dependencies of the project you
186
168
want to debug are installed by running ``composer install `` inside it.
187
169
188
- .. _work-on-your-patch :
189
-
190
- Work on your Pull Request
191
- ~~~~~~~~~~~~~~~~~~~~~~~~~
170
+ Work on your Patch
171
+ ~~~~~~~~~~~~~~~~~~
192
172
193
173
Work on the code as much as you want and commit as much as you want; but keep
194
174
in mind the following:
@@ -201,7 +181,7 @@ in mind the following:
201
181
actually works;
202
182
203
183
* Try hard to not break backward compatibility (if you must do so, try to
204
- provide a compatibility layer to support the old way) -- PRs that break
184
+ provide a compatibility layer to support the old way) -- patches that break
205
185
backward compatibility have less chance to be merged;
206
186
207
187
* Do atomic and logically separate commits (use the power of ``git rebase `` to
@@ -230,12 +210,10 @@ in mind the following:
230
210
verb (``fixed ... ``, ``added ... ``, ...) to start the summary and don't
231
211
add a period at the end.
232
212
233
- .. _prepare-your-patch-for-submission :
234
-
235
- Prepare your Pull Request for Submission
236
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
213
+ Prepare your Patch for Submission
214
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
237
215
238
- When your PR is not about a bug fix (when you add a new feature or change
216
+ When your patch is not about a bug fix (when you add a new feature or change
239
217
an existing one for instance), it must also include the following:
240
218
241
219
* An explanation of the changes in the relevant ``CHANGELOG `` file(s) (the
@@ -245,20 +223,16 @@ an existing one for instance), it must also include the following:
245
223
``UPGRADE `` file(s) if the changes break backward compatibility or if you
246
224
deprecate something that will ultimately break backward compatibility.
247
225
248
- .. _step-4-submit-your-patch :
249
-
250
- Step 4: Submit your Pull Request
251
- --------------------------------
226
+ Step 3: Submit your Patch
227
+ -------------------------
252
228
253
- Whenever you feel that your PR is ready for submission, follow the
229
+ Whenever you feel that your patch is ready for submission, follow the
254
230
following steps.
255
231
256
- .. _rebase-your-patch :
232
+ Rebase your Patch
233
+ ~~~~~~~~~~~~~~~~~
257
234
258
- Rebase your Pull Request
259
- ~~~~~~~~~~~~~~~~~~~~~~~~
260
-
261
- Before submitting your PR, update your branch (needed if it takes you a
235
+ Before submitting your patch, update your branch (needed if it takes you a
262
236
while to finish your changes):
263
237
264
238
.. code-block :: terminal
@@ -272,7 +246,7 @@ while to finish your changes):
272
246
.. tip ::
273
247
274
248
Replace ``master `` with the branch you selected previously (e.g. ``3.4 ``)
275
- if you are working on a bug fix.
249
+ if you are working on a bugfix
276
250
277
251
When doing the ``rebase `` command, you might have to fix merge conflicts.
278
252
``git status `` will show you the *unmerged * files. Resolve all the conflicts,
@@ -299,7 +273,7 @@ You can now make a pull request on the ``symfony/symfony`` GitHub repository.
299
273
.. tip ::
300
274
301
275
Take care to point your pull request towards ``symfony:3.4 `` if you want
302
- the core team to pull a bug fix based on the ``3.4 `` branch.
276
+ the core team to pull a bugfix based on the ``3.4 `` branch.
303
277
304
278
To ease the core team work, always include the modified components in your
305
279
pull request message, like in:
@@ -322,10 +296,10 @@ Some answers to the questions trigger some more requirements:
322
296
* If you answer yes to "New feature?", you must submit a pull request to the
323
297
documentation and reference it under the "Doc PR" section;
324
298
325
- * If you answer yes to "BC breaks?", the PR must contain updates to the
299
+ * If you answer yes to "BC breaks?", the patch must contain updates to the
326
300
relevant ``CHANGELOG `` and ``UPGRADE `` files;
327
301
328
- * If you answer yes to "Deprecations?", the PR must contain updates to the
302
+ * If you answer yes to "Deprecations?", the patch must contain updates to the
329
303
relevant ``CHANGELOG `` and ``UPGRADE `` files;
330
304
331
305
* If you answer no to "Tests pass", you must add an item to a todo-list with
@@ -352,8 +326,7 @@ because you want early feedback on your work, add an item to todo-list:
352
326
- [ ] gather feedback for my changes
353
327
354
328
As long as you have items in the todo-list, please prefix the pull request
355
- title with "[WIP]". If you do not yet want to trigger the automated tests,
356
- you can also set the PR to `draft status `_.
329
+ title with "[WIP]".
357
330
358
331
In the pull request description, give as much details as possible about your
359
332
changes (don't hesitate to give code examples to illustrate your points). If
@@ -366,29 +339,11 @@ commit message).
366
339
In addition to this "code" pull request, you must also send a pull request to
367
340
the `documentation repository `_ to update the documentation when appropriate.
368
341
369
- Step 5: Receiving Feedback
370
- --------------------------
371
-
372
- We ask all contributors to follow some
373
- :doc: `best practices </contributing/community/reviews >`
374
- to ensure a constructive feedback process.
375
-
376
- If you think someone fails to keep this advice in mind and you want another
377
- perspective, please join the #contribs channel on `Symfony Slack `_. If you
378
- receive feedback you find abusive please contact the
379
- :doc: `CARE team</contributing/code_of_conduct/care_team.rst> `.
380
-
381
- The :doc: `core team <contributing/code/core_team >` is responsible for deciding
382
- which PR gets merged, so their feedback is the most relevant. So do not feel
383
- pressured to refactor your code immediately when someone provides feedback.
384
-
385
- .. _rework-your-patch :
386
-
387
- Rework your Pull Request
388
- ~~~~~~~~~~~~~~~~~~~~~~~~
342
+ Rework your Patch
343
+ ~~~~~~~~~~~~~~~~~
389
344
390
345
Based on the feedback on the pull request, you might need to rework your
391
- PR . Before re-submitting the PR , rebase with ``upstream/master `` or
346
+ patch . Before re-submitting the patch , rebase with ``upstream/master `` or
392
347
``upstream/3.4 ``, don't merge; and force the push to the origin:
393
348
394
349
.. code-block :: terminal
@@ -419,7 +374,3 @@ before merging.
419
374
.. _`fabbot` : https://fabbot.io
420
375
.. _`PSR-1` : https://www.php-fig.org/psr/psr-1/
421
376
.. _`PSR-2` : https://www.php-fig.org/psr/psr-2/
422
- .. _`searching on GitHub` : https://github.com/symfony/symfony/issues?q=+is%3Aopen+
423
- .. _`Symfony Slack` : https://symfony.com/slack-invite
424
- .. _`Travis-CI` : https://travis-ci.org/symfony/symfony
425
- .. _`draft status` : https://help.github.com/en/articles/about-pull-requests#draft-pull-requests
0 commit comments