@@ -11,26 +11,30 @@ acceptable changes.
11
11
* New unit tests cover the bug fix;
12
12
* The current buggy behavior is not widely used as a "feature".
13
13
14
+ While working on a bug fix, don't refactor the code or introduce new classes.
15
+
14
16
.. note ::
15
17
16
18
When documentation (or PHPDoc) is not in sync with the code, code behavior
17
19
should always be considered as being the correct one.
18
20
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.
20
23
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:
25
26
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;
28
30
29
31
* **Newer versions of popular OSes **: Fixes that add support for newer versions
30
32
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;
32
35
33
- * **Translations **: Translation updates and additions are accepted;
36
+ * **Translations **: Translation updates and additions are always merged in the
37
+ oldest maintained branch;
34
38
35
39
* **External data **: Updates for external data included in Symfony can be
36
40
updated (like ICU for instance);
@@ -39,13 +43,21 @@ Besides bug fixes, other minor changes can be accepted in a patch version:
39
43
of a dependency is possible, bumping to a major one or increasing PHP
40
44
minimal version is not;
41
45
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
+
42
56
* **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
44
58
existing code base, if they are not too invasive, and if merging them into
45
59
higher branches would not lead to complex branch merging;
46
60
47
- * **Tests **: Tests that increase the code coverage can be added.
48
-
49
61
Anything not explicitly listed above should be done on the next minor or major
50
62
version instead. For instance, the following changes are never accepted in a
51
63
patch version:
0 commit comments