X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fcontributing%2Fstable.rst;h=69d8312b47b7eb80634bea5406a8c4ecc9d00b5f;hb=2e3dbc80cc012f11799c7eda866e1168dadb5032;hp=0f2f1f375a0ec5be4906339cc1f2e8999fd418dc;hpb=5768fa9de2ef43bfb4d4e6d17971bbf0c25b6238;p=dpdk.git diff --git a/doc/guides/contributing/stable.rst b/doc/guides/contributing/stable.rst index 0f2f1f375a..69d8312b47 100644 --- a/doc/guides/contributing/stable.rst +++ b/doc/guides/contributing/stable.rst @@ -1,4 +1,7 @@ -.. stable_lts_releases: +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2018 The DPDK contributors + +.. _stable_lts_releases: DPDK Stable Releases and Long Term Support ========================================== @@ -15,6 +18,10 @@ backported fixes over an extended period of time. This provides downstream consumers of DPDK with a stable target on which to base applications or packages. +The primary characteristics of stable releases is that they attempt to +fix issues and not introduce any new regressions while keeping backwards +compatibility with the initial release of the stable version. + The Long Term Support release (LTS) is a designation applied to a Stable Release to indicate longer term support. @@ -22,8 +29,11 @@ Release to indicate longer term support. Stable Releases --------------- -Any major release of DPDK can be designated as a Stable Release if a -maintainer volunteers to maintain it. +Any release of DPDK can be designated as a Stable Release if a +maintainer volunteers to maintain it and there is a commitment from major +contributors to validate it before releases. +If a version is to be a "Stable Release", it should be designated as such +within one month of that version being initially released. A Stable Release is used to backport fixes from an ``N`` release back to an ``N-1`` release, for example, from 16.11 to 16.07. @@ -43,9 +53,13 @@ LTS Release A stable release can be designated as an LTS release based on community agreement and a commitment from a maintainer. The current policy is that each -year's November release will be maintained as an LTS for 2 years. +year's November (X.11) release will be maintained as an LTS for 2 years. + +After the X.11 release, an LTS branch will be created for it at +https://git.dpdk.org/dpdk-stable where bugfixes will be backported to. -The current DPDK LTS releases are 16.11 and 17.11. +A LTS release may align with the declaration of a new major ABI version, +please read the :doc:`abi_policy` for more information. It is anticipated that there will be at least 4 releases per year of the LTS or approximately 1 every 3 months. However, the cadence can be shorter or @@ -53,20 +67,62 @@ longer depending on the number and criticality of the backported fixes. Releases should be coordinated with the validation engineers to ensure that a tagged release has been tested. +For a list of the currently maintained stable/LTS branches please see +the latest `stable roadmap `_. + +At the end of the 2 years, a final X.11.N release will be made and at that +point the LTS branch will no longer be maintained with no further releases. + What changes should be backported --------------------------------- -Backporting should be limited to bug fixes. +Backporting should be limited to bug fixes. All patches accepted on the main +branch with a Fixes: tag should be backported to the relevant stable/LTS +branches, unless the submitter indicates otherwise. If there are exceptions, +they will be discussed on the mailing lists. + +Fixes suitable for backport should have a ``Cc: stable@dpdk.org`` tag in the +commit message body as follows:: + + doc: fix some parameter description + + Update the docs, fixing description of some parameter. + + Fixes: abcdefgh1234 ("doc: add some parameter") + Cc: stable@dpdk.org -Features should not be backported to stable releases. It may be acceptable, in -limited cases, to back port features for the LTS release where: + Signed-off-by: Alex Smith -* There is a justifiable use case (for example a new PMD). -* The change is non-invasive. -* The work of preparing the backport is done by the proposer. -* There is support within the community. +Fixes not suitable for backport should not include the ``Cc: stable@dpdk.org`` tag. + +To support the goal of stability and not introducing regressions, +new code being introduced is limited to bug fixes. +New features should not be backported to stable releases. + +In some limited cases, it may be acceptable to backport a new feature +to a stable release. Some of the factors which impact the decision by +stable maintainers are as follows: + +* Does the feature break API/ABI? +* Does the feature break backwards compatibility? +* Is it for the latest LTS release (to avoid LTS upgrade issues)? +* Is there a commitment from the proposer or affiliation to validate the feature + and check for regressions in related functionality? +* Is there a track record of the proposer or affiliation validating stable releases? +* Is it obvious that the feature will not impact existing functionality? +* How intrusive is the code change? +* What is the scope of the code change? +* Does it impact common components or vendor specific? +* Is there a justifiable use case (a clear user need)? +* Is there a community consensus about the backport? + +Performance improvements are generally not considered to be fixes, +but may be considered in some cases where: + +* It is fixing a performance regression that occurred previously. +* An existing feature in LTS is not usable as intended without it. The Stable Mailing List ----------------------- @@ -74,8 +130,8 @@ The Stable Mailing List The Stable and LTS release are coordinated on the stable@dpdk.org mailing list. -All fix patches to the master branch that are candidates for backporting -should also be CCed to the `stable@dpdk.org `_ +All fix patches to the main branch that are candidates for backporting +should also be CCed to the `stable@dpdk.org `_ mailing list. @@ -86,14 +142,7 @@ A Stable Release will be released by: * Tagging the release with YY.MM.n (year, month, number). * Uploading a tarball of the release to dpdk.org. -* Sending an announcement to the `announce@dpdk.org `_ +* Sending an announcement to the `announce@dpdk.org `_ list. -Stable releases are available on the `dpdk.org download page `_. - - -ABI ---- - -The Stable Release should not be seen as a way of breaking or circumventing -the DPDK ABI policy. +Stable releases are available on the `dpdk.org download page `_.