Skip to content

Commit 016a49d

Browse files
committed
added a maintenance document
1 parent 2c000cd commit 016a49d

File tree

4 files changed

+70
-4
lines changed

4 files changed

+70
-4
lines changed

contributing/code/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Contributing Code
66

77
bugs
88
patches
9+
maintenance
910
core_team
1011
security
1112
tests

contributing/code/maintenance.rst

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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.

contributing/code/patches.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,12 @@ Choose the right Branch
107107
Before working on a patch, you must determine on which branch you need to
108108
work:
109109

110-
* ``2.3``, if you are fixing a bug for an existing feature (you may have
111-
to choose a higher branch if the feature you are fixing was introduced
112-
in a later version);
113-
* ``master``, if you are adding a new feature.
110+
* ``2.3``, if you are fixing a bug for an existing feature or want to make a
111+
change that falls into the :doc:`list of acceptable changes in patch versions
112+
</contributing/code/maintenance>` (you may have to choose a higher branch if
113+
the feature you are fixing was introduced in a later version);
114+
115+
* ``master``, if you are adding a new feature.
114116

115117
.. note::
116118

contributing/community/releases.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ type of the release. This maintenance is divided into:
4848
be fixed. The end of this period is referenced as being the *end of life* of
4949
a release.
5050

51+
.. note::
52+
53+
The :doc:`maintenance document </contributing/code/maintenance>` describes
54+
the boundaries of acceptable changes during maintenance.
55+
5156
Symfony Versions
5257
----------------
5358

0 commit comments

Comments
 (0)