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