net/iavf: support RSS for GRE tunnel packet
[dpdk.git] / doc / guides / contributing / stable.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2018 The DPDK contributors
3
4 .. _stable_lts_releases:
5
6 DPDK Stable Releases and Long Term Support
7 ==========================================
8
9 This section sets out the guidelines for the DPDK Stable Releases and the DPDK
10 Long Term Support releases (LTS).
11
12
13 Introduction
14 ------------
15
16 The purpose of the DPDK Stable Releases is to maintain releases of DPDK with
17 backported fixes over an extended period of time. This provides downstream
18 consumers of DPDK with a stable target on which to base applications or
19 packages.
20
21 The primary characteristics of stable releases is that they attempt to
22 fix issues and not introduce any new regressions while keeping backwards
23 compatibility with the initial release of the stable version.
24
25 The Long Term Support release (LTS) is a designation applied to a Stable
26 Release to indicate longer term support.
27
28
29 Stable Releases
30 ---------------
31
32 Any release of DPDK can be designated as a Stable Release if a
33 maintainer volunteers to maintain it and there is a commitment from major
34 contributors to validate it before releases.
35 If a version is to be a "Stable Release", it should be designated as such
36 within one month of that version being initially released.
37
38 A Stable Release is used to backport fixes from an ``N`` release back to an
39 ``N-1`` release, for example, from 16.11 to 16.07.
40
41 The duration of a stable is one complete release cycle (3 months). It can be
42 longer, up to 1 year, if a maintainer continues to support the stable branch,
43 or if users supply backported fixes, however the explicit commitment should be
44 for one release cycle.
45
46 The release cadence is determined by the maintainer based on the number of
47 bugfixes and the criticality of the bugs. Releases should be coordinated with
48 the validation engineers to ensure that a tagged release has been tested.
49
50
51 LTS Release
52 -----------
53
54 A stable release can be designated as an LTS release based on community
55 agreement and a commitment from a maintainer. The current policy is that each
56 year's November (X.11) release will be maintained as an LTS for 2 years.
57
58 After the X.11 release, an LTS branch will be created for it at
59 https://git.dpdk.org/dpdk-stable where bugfixes will be backported to.
60
61 A LTS release may align with the declaration of a new major ABI version,
62 please read the :doc:`abi_policy` for more information.
63
64 It is anticipated that there will be at least 4 releases per year of the LTS
65 or approximately 1 every 3 months. However, the cadence can be shorter or
66 longer depending on the number and criticality of the backported
67 fixes. Releases should be coordinated with the validation engineers to ensure
68 that a tagged release has been tested.
69
70 For a list of the currently maintained stable/LTS branches please see
71 the latest `stable roadmap <https://core.dpdk.org/roadmap/#stable>`_.
72
73 At the end of the 2 years, a final X.11.N release will be made and at that
74 point the LTS branch will no longer be maintained with no further releases.
75
76
77 What changes should be backported
78 ---------------------------------
79
80 Backporting should be limited to bug fixes. All patches accepted on the main
81 branch with a Fixes: tag should be backported to the relevant stable/LTS
82 branches, unless the submitter indicates otherwise. If there are exceptions,
83 they will be discussed on the mailing lists.
84
85 Fixes suitable for backport should have a ``Cc: stable@dpdk.org`` tag in the
86 commit message body as follows::
87
88      doc: fix some parameter description
89
90      Update the docs, fixing description of some parameter.
91
92      Fixes: abcdefgh1234 ("doc: add some parameter")
93      Cc: stable@dpdk.org
94
95      Signed-off-by: Alex Smith <alex.smith@example.com>
96
97
98 Fixes not suitable for backport should not include the ``Cc: stable@dpdk.org`` tag.
99
100 To support the goal of stability and not introducing regressions,
101 new code being introduced is limited to bug fixes.
102 New features should not be backported to stable releases.
103
104 In some limited cases, it may be acceptable to backport a new feature
105 to a stable release. Some of the factors which impact the decision by
106 stable maintainers are as follows:
107
108 * Does the feature break API/ABI?
109 * Does the feature break backwards compatibility?
110 * Is it for the latest LTS release (to avoid LTS upgrade issues)?
111 * Is there a commitment from the proposer or affiliation to validate the feature
112   and check for regressions in related functionality?
113 * Is there a track record of the proposer or affiliation validating stable releases?
114 * Is it obvious that the feature will not impact existing functionality?
115 * How intrusive is the code change?
116 * What is the scope of the code change?
117 * Does it impact common components or vendor specific?
118 * Is there a justifiable use case (a clear user need)?
119 * Is there a community consensus about the backport?
120
121 Performance improvements are generally not considered to be fixes,
122 but may be considered in some cases where:
123
124 * It is fixing a performance regression that occurred previously.
125 * An existing feature in LTS is not usable as intended without it.
126
127 The Stable Mailing List
128 -----------------------
129
130 The Stable and LTS release are coordinated on the stable@dpdk.org mailing
131 list.
132
133 All fix patches to the main branch that are candidates for backporting
134 should also be CCed to the `stable@dpdk.org <https://mails.dpdk.org/listinfo/stable>`_
135 mailing list.
136
137
138 Releasing
139 ---------
140
141 A Stable Release will be released by:
142
143 * Tagging the release with YY.MM.n (year, month, number).
144 * Uploading a tarball of the release to dpdk.org.
145 * Sending an announcement to the `announce@dpdk.org <https://mails.dpdk.org/listinfo/announce>`_
146   list.
147
148 Stable releases are available on the `dpdk.org download page <https://core.dpdk.org/download/>`_.