|
| 1 | +Maintenance |
| 2 | +=========== |
| 3 | + |
| 4 | +During the lifetime of a minor version, new releases (patch versions) are |
| 5 | +published on a monthly basis. This document describes the boundaries of |
| 6 | +acceptable changes. |
| 7 | + |
| 8 | +**Bug fixes** are accepted under the following conditions: |
| 9 | + |
| 10 | + * The change does not break valid unit tests; |
| 11 | + * New unit tests cover the bug fix; |
| 12 | + * The current buggy behavior is not widely used as a "feature". |
| 13 | + |
| 14 | +.. note:: |
| 15 | + |
| 16 | + When documentation (or phpdoc) is not in sync with the code, code behavior |
| 17 | + should always be considered as being the correct one. |
| 18 | + |
| 19 | +Besides bug fixes, other minor changes can be accepted in a patch version: |
| 20 | + |
| 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); |
| 25 | + |
| 26 | +* **Newer versions of PHP/HHVM**: Fixes that add support for newer versions of |
| 27 | + PHP or HHVM are acceptable if they don't break the unit test suite; |
| 28 | + |
| 29 | +* **Translations**: Translation updates and additions are accepted; |
| 30 | + |
| 31 | +* **Version updates for Composer dependencies**: Changing the minimal version |
| 32 | + of a dependency is possible, bumping to a major one is not; |
| 33 | + |
| 34 | +* **Coding standard**: Coding standard fixes are not recommended but can be |
| 35 | + accepted for consistency with the existing code base, if they are not too |
| 36 | + invasive, and if merging them on master would lead to complex branch merging. |
| 37 | + |
| 38 | +Anything not explicitly listed above should be done on the next minor or major |
| 39 | +version instead (aka the *master* branch). For instance, the following changes |
| 40 | +are never accepted in a patch version: |
| 41 | + |
| 42 | +* **New features**; |
| 43 | + |
| 44 | +* **Backward compatibility breaks**: Note that backward compatibility breaks |
| 45 | + can be done when fixing a security issue if it would not be possible to fix |
| 46 | + it otherwise; |
| 47 | + |
| 48 | +* **Support for external platforms**: Adding support for new platforms (like |
| 49 | + Google App Engine) cannot be done in patch versions; |
| 50 | + |
| 51 | +* **Exception messages**: Exception messages must not be changed as some |
| 52 | + automated systems might rely on them (even if this is not recommended); |
| 53 | + |
| 54 | +* **Adding new Composer dependencies**; |
| 55 | + |
| 56 | +* **Support for newer major versions of Composer dependencies**: Taking into |
| 57 | + account support for newer versions of an existing dependency is not |
| 58 | + acceptable. |
0 commit comments