@@ -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 (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,12 +43,20 @@ 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
45- higher branches would not lead to complex branch merging;
46-
47- * **Tests **: Tests that increase the code coverage can be added.
59+ higher branches would not lead to complex branch merging.
4860
4961Anything not explicitly listed above should be done on the next minor or major
5062version instead. For instance, the following changes are never accepted in a
0 commit comments