xref: /dpdk/doc/guides/contributing/stable.rst (revision 3c60ea7b289a36d728cb4509fd045c6594893d77)
177c79de0SHemant Agrawal..  SPDX-License-Identifier: BSD-3-Clause
277c79de0SHemant Agrawal    Copyright 2018 The DPDK contributors
377c79de0SHemant Agrawal
4fdf7471cSRay Kinsella.. _stable_lts_releases:
52ae4a997SJohn McNamara
62ae4a997SJohn McNamaraDPDK Stable Releases and Long Term Support
72ae4a997SJohn McNamara==========================================
82ae4a997SJohn McNamara
92ae4a997SJohn McNamaraThis section sets out the guidelines for the DPDK Stable Releases and the DPDK
102ae4a997SJohn McNamaraLong Term Support releases (LTS).
112ae4a997SJohn McNamara
122ae4a997SJohn McNamara
132ae4a997SJohn McNamaraIntroduction
142ae4a997SJohn McNamara------------
152ae4a997SJohn McNamara
162ae4a997SJohn McNamaraThe purpose of the DPDK Stable Releases is to maintain releases of DPDK with
172ae4a997SJohn McNamarabackported fixes over an extended period of time. This provides downstream
182ae4a997SJohn McNamaraconsumers of DPDK with a stable target on which to base applications or
192ae4a997SJohn McNamarapackages.
202ae4a997SJohn McNamara
21146132eeSKevin TraynorThe primary characteristics of stable releases is that they attempt to
22146132eeSKevin Traynorfix issues and not introduce any new regressions while keeping backwards
23146132eeSKevin Traynorcompatibility with the initial release of the stable version.
24146132eeSKevin Traynor
252ae4a997SJohn McNamaraThe Long Term Support release (LTS) is a designation applied to a Stable
262ae4a997SJohn McNamaraRelease to indicate longer term support.
272ae4a997SJohn McNamara
282ae4a997SJohn McNamara
292ae4a997SJohn McNamaraStable Releases
302ae4a997SJohn McNamara---------------
312ae4a997SJohn McNamara
32e85373edSThomas MonjalonAny release of DPDK can be designated as a Stable Release if a
33cf6b07d2SKevin Traynormaintainer volunteers to maintain it and there is a commitment from major
34b9b10ddbSThomas Monjaloncontributors to validate it before releases.
35b9b10ddbSThomas MonjalonIf a version is to be a "Stable Release", it should be designated as such
36b9b10ddbSThomas Monjalonwithin one month of that version being initially released.
372ae4a997SJohn McNamara
382ae4a997SJohn McNamaraA Stable Release is used to backport fixes from an ``N`` release back to an
392ae4a997SJohn McNamara``N-1`` release, for example, from 16.11 to 16.07.
402ae4a997SJohn McNamara
413f993907SKevin TraynorThe duration of a stable is one complete release cycle (4 months). It can be
422ae4a997SJohn McNamaralonger, up to 1 year, if a maintainer continues to support the stable branch,
432ae4a997SJohn McNamaraor if users supply backported fixes, however the explicit commitment should be
442ae4a997SJohn McNamarafor one release cycle.
452ae4a997SJohn McNamara
462ae4a997SJohn McNamaraThe release cadence is determined by the maintainer based on the number of
472ae4a997SJohn McNamarabugfixes and the criticality of the bugs. Releases should be coordinated with
482ae4a997SJohn McNamarathe validation engineers to ensure that a tagged release has been tested.
492ae4a997SJohn McNamara
502ae4a997SJohn McNamara
512ae4a997SJohn McNamaraLTS Release
522ae4a997SJohn McNamara-----------
532ae4a997SJohn McNamara
542ae4a997SJohn McNamaraA stable release can be designated as an LTS release based on community
555768fa9dSLuca Boccassiagreement and a commitment from a maintainer. The current policy is that each
56*3c60ea7bSKevin Traynoryear's November (X.11) release will be maintained as an LTS for 3 years,
57*3c60ea7bSKevin Traynorhowever that is dependent on continued community support for validation.
582ae4a997SJohn McNamara
59219a6e74SKevin TraynorAfter the X.11 release, an LTS branch will be created for it at
603d4b2afbSDavid Marchandhttps://git.dpdk.org/dpdk-stable where bugfixes will be backported to.
612ae4a997SJohn McNamara
62fdf7471cSRay KinsellaA LTS release may align with the declaration of a new major ABI version,
63fdf7471cSRay Kinsellaplease read the :doc:`abi_policy` for more information.
64fdf7471cSRay Kinsella
653f993907SKevin TraynorIt is anticipated that there will be at least 3 releases per year of the LTS
663f993907SKevin Traynoror approximately 1 every 4 months. This is done to align with the DPDK main
673f993907SKevin Traynorbranch releases so that fixes have already gone through validation as part of
683f993907SKevin Traynorthe DPDK main branch release validation. However, the cadence can be shorter or
692ae4a997SJohn McNamaralonger depending on the number and criticality of the backported
702ae4a997SJohn McNamarafixes. Releases should be coordinated with the validation engineers to ensure
712ae4a997SJohn McNamarathat a tagged release has been tested.
722ae4a997SJohn McNamara
73f2fea03eSKevin TraynorFor a list of the currently maintained stable/LTS branches please see
74f2fea03eSKevin Traynorthe latest `stable roadmap <https://core.dpdk.org/roadmap/#stable>`_.
75219a6e74SKevin Traynor
76219a6e74SKevin TraynorAt the end of the 2 years, a final X.11.N release will be made and at that
77219a6e74SKevin Traynorpoint the LTS branch will no longer be maintained with no further releases.
78219a6e74SKevin Traynor
792ae4a997SJohn McNamara
802ae4a997SJohn McNamaraWhat changes should be backported
812ae4a997SJohn McNamara---------------------------------
822ae4a997SJohn McNamara
83b9b10ddbSThomas MonjalonBackporting should be limited to bug fixes. All patches accepted on the main
8456c7ddc1SKevin Traynorbranch with a Fixes: tag should be backported to the relevant stable/LTS
8556c7ddc1SKevin Traynorbranches, unless the submitter indicates otherwise. If there are exceptions,
8656c7ddc1SKevin Traynorthey will be discussed on the mailing lists.
8756c7ddc1SKevin Traynor
8856c7ddc1SKevin TraynorFixes suitable for backport should have a ``Cc: stable@dpdk.org`` tag in the
8956c7ddc1SKevin Traynorcommit message body as follows::
9056c7ddc1SKevin Traynor
9156c7ddc1SKevin Traynor     doc: fix some parameter description
9256c7ddc1SKevin Traynor
9356c7ddc1SKevin Traynor     Update the docs, fixing description of some parameter.
9456c7ddc1SKevin Traynor
9556c7ddc1SKevin Traynor     Fixes: abcdefgh1234 ("doc: add some parameter")
9656c7ddc1SKevin Traynor     Cc: stable@dpdk.org
9756c7ddc1SKevin Traynor
9856c7ddc1SKevin Traynor     Signed-off-by: Alex Smith <alex.smith@example.com>
9956c7ddc1SKevin Traynor
10056c7ddc1SKevin Traynor
10156c7ddc1SKevin TraynorFixes not suitable for backport should not include the ``Cc: stable@dpdk.org`` tag.
1022ae4a997SJohn McNamara
103146132eeSKevin TraynorTo support the goal of stability and not introducing regressions,
104146132eeSKevin Traynornew code being introduced is limited to bug fixes.
105146132eeSKevin TraynorNew features should not be backported to stable releases.
1062ae4a997SJohn McNamara
107146132eeSKevin TraynorIn some limited cases, it may be acceptable to backport a new feature
108146132eeSKevin Traynorto a stable release. Some of the factors which impact the decision by
109146132eeSKevin Traynorstable maintainers are as follows:
1102ae4a997SJohn McNamara
111146132eeSKevin Traynor* Does the feature break API/ABI?
112146132eeSKevin Traynor* Does the feature break backwards compatibility?
113146132eeSKevin Traynor* Is it for the latest LTS release (to avoid LTS upgrade issues)?
114146132eeSKevin Traynor* Is there a commitment from the proposer or affiliation to validate the feature
115146132eeSKevin Traynor  and check for regressions in related functionality?
116146132eeSKevin Traynor* Is there a track record of the proposer or affiliation validating stable releases?
117146132eeSKevin Traynor* Is it obvious that the feature will not impact existing functionality?
118146132eeSKevin Traynor* How intrusive is the code change?
119146132eeSKevin Traynor* What is the scope of the code change?
120146132eeSKevin Traynor* Does it impact common components or vendor specific?
121146132eeSKevin Traynor* Is there a justifiable use case (a clear user need)?
122146132eeSKevin Traynor* Is there a community consensus about the backport?
123146132eeSKevin Traynor
124146132eeSKevin TraynorPerformance improvements are generally not considered to be fixes,
125146132eeSKevin Traynorbut may be considered in some cases where:
126146132eeSKevin Traynor
127146132eeSKevin Traynor* It is fixing a performance regression that occurred previously.
128146132eeSKevin Traynor* An existing feature in LTS is not usable as intended without it.
1292ae4a997SJohn McNamara
1304f5adcc9SKevin TraynorAPIs marked as ``experimental`` are not considered part of the ABI version
1314f5adcc9SKevin Traynorand can be changed without prior notice. This is necessary for the API to be
1324f5adcc9SKevin Traynorimproved and stabilized and become part of the ABI version in the future.
1334f5adcc9SKevin Traynor
1344f5adcc9SKevin TraynorHowever, in LTS releases ``experimental`` API should not be changed as there
1354f5adcc9SKevin Traynorwill not be a future ABI version on the branch and compatibility with previous
1364f5adcc9SKevin Traynorrelease of an LTS version is of the highest importance.
1374f5adcc9SKevin Traynor
1382ae4a997SJohn McNamaraThe Stable Mailing List
1392ae4a997SJohn McNamara-----------------------
1402ae4a997SJohn McNamara
1412ae4a997SJohn McNamaraThe Stable and LTS release are coordinated on the stable@dpdk.org mailing
1422ae4a997SJohn McNamaralist.
1432ae4a997SJohn McNamara
144b9b10ddbSThomas MonjalonAll fix patches to the main branch that are candidates for backporting
1453d4b2afbSDavid Marchandshould also be CCed to the `stable@dpdk.org <https://mails.dpdk.org/listinfo/stable>`_
1462ae4a997SJohn McNamaramailing list.
1472ae4a997SJohn McNamara
1482ae4a997SJohn McNamara
1492ae4a997SJohn McNamaraReleasing
1502ae4a997SJohn McNamara---------
1512ae4a997SJohn McNamara
1522ae4a997SJohn McNamaraA Stable Release will be released by:
1532ae4a997SJohn McNamara
1542ae4a997SJohn McNamara* Tagging the release with YY.MM.n (year, month, number).
1552ae4a997SJohn McNamara* Uploading a tarball of the release to dpdk.org.
1563d4b2afbSDavid Marchand* Sending an announcement to the `announce@dpdk.org <https://mails.dpdk.org/listinfo/announce>`_
1572ae4a997SJohn McNamara  list.
1582ae4a997SJohn McNamara
1593d4b2afbSDavid MarchandStable releases are available on the `dpdk.org download page <https://core.dpdk.org/download/>`_.
160