8000 Tighten the rules of what can be merged in patch versions · symfony/symfony-docs@6627a1b · GitHub
[go: up one dir, main page]

Skip to content
Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6627a1b

Browse files
committed
Tighten the rules of what can be merged in patch versions
1 parent db2e2ea commit 6627a1b

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

contributing/code/maintenance.rst

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,30 @@ acceptable changes.
1111
* New unit tests cover the bug fix;
1212
* The current buggy behavior is not widely used as a "feature".
1313

14+
While working on a bug fix, don't refactor the code or introduce new classes.
15+
1416
.. note::
1517

1618
When documentation (or PHPDoc) is not in sync with the code, code behavior
1719
should always be considered as being the correct one.
1820

19-
Besides bug fixes, other minor changes can be accepted in a patch version:
21+
To avoid backward compatibility breaks, we tend to be very strict about changes
22+
accepted for patch versions.
2023

21-
* **Performance improvement**: Performance improvement should only be accepted
22-
if the changes are local (located in one class) and only for algorithmic
23-
issues ( 8000 any such patches must come with numbers that show a significant
24-
improvement on real-world code);
24+
Besides bug fixes, other minor changes might be accepted in a patch version on
25+
a case by case basis:
2526

26-
* **Newer versions of PHP**: Fixes that add support for newer versions of
27-
PHP are acceptable if they don't break the unit test suite;
27+
* **Newer versions of PHP**: Fixes that add support for newer versions of PHP
28+
are acceptable if they don't break the unit test suite, but we never add
29+
support for newer PHP features;
2830

2931
* **Newer versions of popular OSes**: Fixes that add support for newer versions
3032
of popular OSes (Linux, MacOS and Windows) are acceptable if they don't break
31-
the unit test suite;
33+
the unit test suite, but we never add support for newer PHP features or newer
34+
versions of OSes;
3235

33-
* **Translations**: Translation updates and additions are accepted;
36+
* **Translations**: Translation updates and additions are always merged in the
37+
oldest maintained branch;
3438

3539
* **External data**: Updates for external data included in Symfony can be
3640
updated (like ICU for instance);
@@ -39,13 +43,21 @@ Besides bug fixes, other minor changes can be accepted in a patch version:
3943
of a dependency is possible, bumping to a major one or increasing PHP
4044
minimal version is not;
4145

46+
* **Tests**: Tests that increase the code coverage can be added.
47+
48+
The following changes are **generally not accepted** in a patch version, except
49+
on a case by case basis:
50+
51+
* **Performance improvement**: Performance improvement should only be accepted
52+
if the changes are local (located in one class) and only for algorithmic
53+
issues (any such patches must come with numbers that show a significant
54+
improvement on real-world code);
55+
4256
* **Coding standard and refactoring**: Coding standard fixes or code
43-
refactoring are not recommended but can be accepted for consistency with the
57+
refactoring are almost never accepted except for consistency with the
4458
existing code base, if they are not too invasive, and if merging them into
4559
higher branches would not lead to complex branch merging;
4660

47-
* **Tests**: Tests that increase the code coverage can be added.
48-
4961
Anything not explicitly listed above should be done on the next minor or major
5062
version instead. For instance, the following changes are never accepted in a
5163
patch version:

0 commit comments

Comments
 (0)
0