8000 feature #7419 added a note about experimental features (fabpot) · symfony/symfony-docs@9b9f5a1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9b9f5a1

Browse files
committed
feature #7419 added a note about experimental features (fabpot)
This PR was merged into the master branch. Discussion ---------- added a note about experimental features I think `master` makes sense here as no experimental features can be added anymore in earlier versions. Commits ------- 42c3ec9 added a new page on experimental features 4f7b7ea added a note about experimental features
2 parents 7893772 + 42c3ec9 commit 9b9f5a1

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

contributing/code/bc.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ The second section, "Working on Symfony Code", is targeted at Symfony
3232
contributors. This section lists detailed rules that every contributor needs to
3333
follow to ensure smooth upgrades for our users.
3434

35+
.. warning::
36+
37+
:doc:`Experimental Features </contributing/code/experimental>` and code
38+
marked with the ``@internal`` tags are excluded from our Backward
39+
Compatibility promise.
40+
41+
Also note that backward compatibility breaks are tolerated if they are
42+
required to fix a security issue.
43+
3544
Using Symfony Code
3645
------------------
3746

contributing/code/experimental.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Experimental Features
2+
=====================
3+
4+
All Symfony features benefit from our :doc:`Backward Compatibility Promise
5+
</contributing/code/bc>` to give developers the confidence to upgrade to new
6+
versions safely and more often.
7+
8+
But sometimes, a new feature is controversial. Or finding a good API is not
9+
easy. In such cases, we prefer to gather feedback from real-world usage, adapt
10+
the API, or remove it altogether. Doing so is not possible with a no BC-break
11+
approach.
12+
13+
To avoid being bound to our backward compatibility promise, such features can
14+
be marked as **experimental** and their classes and methods must be marked with
15+
the ``@experimental`` tag.
16+
17+
A feature can be marked as being experimental for only one minor version, and
18+
can never be introduced in a :ref:`LTS version <releases-lts>`. The core team
19+
can decide to extend the experimental period for another minor version on a
20+
case by case basis.
21+
22+
To ease upgrading projects using experimental features, the changelog must
23+
explain backward incompatible changes and explain how to upgrade code.

contributing/code/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Contributing Code
1111
security
1212
tests
1313
bc
14+
experimental
1415
standards
1516
conventions
1617
git

contributing/community/releases.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,11 @@ of Symfony to the next one.
150150
Whenever keeping backward compatibility is not possible, the feature, the
151151
enhancement or the bug fix will be scheduled for the next major version.
152152

153+
However, :doc:`Experimental Features </contributing/code/experimental>` are
154+
**not** part of the backward compatibility promise and their APIs can change
155+
from one minor version to the next. The changelog must explain the changes and
156+
how to upgrade.
157+
153158
Deprecations
154159
------------
155160

0 commit comments

Comments
 (0)
0