Skip to content

Commit 9c19654

Browse files
committed
sru/multipath-tools: initial minor release exception
1 parent 9720cf5 commit 9c19654

File tree

2 files changed

+159
-0
lines changed

2 files changed

+159
-0
lines changed
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
.. _reference-exception-multipath-tools-updates:
2+
3+
multipath-tools Updates
4+
=======================
5+
6+
This document describes the policy for doing microrelease updates of the multipath-tools package in Ubuntu LTS releases, including interim releases were required by SRU policy.
7+
8+
.. _about_multipath-tools:
9+
10+
About multipath-tools
11+
---------------------
12+
13+
`Linux Multipath <https://en.wikipedia.org/wiki/Linux_DM_Multipath>`__ allows to access to the same storage devices over multiple alternative connections, including active-active or active-passive operating modes (load-balancing, fallback).
14+
It's implemented through device mapping in Linux, and can be controlled with `multipath-tools <https://github.com/opensvc/multipath-tools>`__.
15+
16+
17+
Upstream release policy
18+
-----------------------
19+
20+
Beginning with version 0.10, upstream releases stable updates on `stable-0.x.y` branches on `GitHub <https://github.com/opensvc/multipath-tools>`__.
21+
These contain small bug fixes with low regression risk that are cherry-picked from the staging area from `openSUSE <https://github.com/openSUSE/multipath-tools/tree/queue>`__.
22+
The stable branches are maintained by the `multipath-tools` maintainers on a best-effort basis.
23+
From time to time, `minor releases <https://github.com/opensvc/multipath-tools/tags>`__ are made on these branches [#multipath-tools_readme]_.
24+
25+
.. [#multipath-tools_readme] https://github.com/opensvc/multipath-tools/blob/1234eed0022f904f660745de07e8bca072380926/README.md
26+
27+
28+
.. _ubuntu_and_multipath-tools_releases_affected_by_this_mre:
29+
30+
Ubuntu [and multipath-tools] releases affected by this MRE
31+
----------------------------------------------------------
32+
33+
Currently, all supported **Ubuntu LTS releases** are affected by this policy.
34+
35+
Each supported Ubuntu release with ``multipath-tools`` version ``a.b.x`` gets stable upstream updates on ``x`` from branch ``stable-a.b.x``
36+
37+
Note this will include non-LTS releases of Ubuntu as needed to satisfy the :ref:`"newer releases" criteria <explanation-newer-releases>`.
38+
39+
We intend to ship the most recent ``multipath-tools`` release in the next Ubuntu LTS release, as we expect it to have a stable branch once a new ``a.b`` version is drafted.
40+
41+
42+
QA
43+
--
44+
45+
Upstream tests
46+
^^^^^^^^^^^^^^
47+
48+
`multipath-tools` contains an integrated testsuite that is executed by their CI action and during our build through `make test`.
49+
50+
Pipelines
51+
^^^^^^^^^
52+
53+
Upstream also makes use of `GitHub Actions <https://github.com/opensvc/multipath-tools/actions>`__ in order to automate the testing of new commits.
54+
At the time of this writing, these are the `available pipelines <https://github.com/opensvc/multipath-tools/tree/master/.github/workflows>`__:
55+
56+
- ``multiarch test for rolling distros``
57+
- ``multiarch test for stable distros``
58+
- ``compile and unit test on native arch``
59+
- ``compile and unit test on foreign arch``
60+
- ``basic-build-and-ci``
61+
62+
All of them are relevant for us, since they test multiple architectures and execute the unit tests.
63+
Another very important fact is that these pipelines also use Debian (sid and stable) as their base OS, which makes the results much more reliable for direct Ubuntu integration.
64+
65+
Autopkgtests
66+
^^^^^^^^^^^^
67+
68+
The Debian/Ubuntu packages also carry autopkgtests, which check if a multipath devicemapping actually works.
69+
Especially the test ``tgtbasedmpaths`` validates multipath usage over iSCSI.
70+
71+
multipath-tools Update Process
72+
------------------------------
73+
74+
.. _multipath-tools_preparing_for_the_sru:
75+
76+
Preparing the SRU
77+
^^^^^^^^^^^^^^^^^
78+
79+
Before filing an SRU/MRE bug and kickoff the process officially, we need to perform the following actions:
80+
81+
#. Commit the latest ``multipath-tools`` stable microrelease into our existing package, rebasing whatever delta the package may contain.
82+
83+
#. Upload the resulting package to a PPA (with all target release architectures + proposed enabled), making sure that the build succeeds **and** that there are no autopkgtest regressions introduced.
84+
85+
When everything looks OK, we are ready to start the SRU process:
86+
87+
#. File an MRE bug including the rationale for the upgrade.
88+
This MRE bug will contain references to previous MREs bugs, as well as a list of changes present in the new microrelease.
89+
The engineer driving the SRU must inspect all changes and highlight if these are important changes (should be kept), backward incompatible changes (should not be kept), or behavior changes (then it depends).
90+
See the SRU template below for more details on how this bug will look like.
91+
92+
#. Once everything is OK, upload the package to the proposed pocket (if it's a non-security upload). Then, after approval, check the proposed migration state, and do the SRU verification.
93+
94+
.. _multipath-tools_testing_and_verification:
95+
96+
Testing and verification
97+
^^^^^^^^^^^^^^^^^^^^^^^^
98+
99+
As explained above, the testing/verification will be done in ``-proposed``, where the functional tests are run as autopkgtests.
100+
101+
We will also provide a link to upstream's GitHub workflows that were executed when the release was cut.
102+
103+
.. _multipath-tools_sru_template:
104+
105+
multipath-tools SRU template
106+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
107+
108+
::
109+
110+
[ Impact ]
111+
112+
This bug tracks the following MRE updates for the multipath-tools package:
113+
114+
* a.b on $ubuntu_release_name: $current_version -> a.b.x.
115+
* ...
116+
117+
These updates only include bug fixes, following the SRU policy exception defined at https://documentation.ubuntu.com/sru/en/latest/reference/exception-multipath-tools-Updates/
118+
119+
[ Major Changes ]
120+
121+
TODO: List the major changes if any, with link to https://github.com/opensvc/multipath-tools/blob/<stable-branch-name>/NEWS.md
122+
123+
[ Test Plan ]
124+
125+
See https://documentation.ubuntu.com/sru/en/latest/reference/exception-multipath-tools-Updates/#qa
126+
127+
#. Upstream GitHub workflow results: TODO link for tag/release on https://github.com/opensvc/multipath-tools/tags and its commit workflow runs.
128+
129+
#. As specified in the MRE page for multipath-tools, the test plan is to build the package in "-proposed" and make sure that
130+
(a) all build-time tests pass and
131+
(b) all autopkgtest runs (incl reverse dependencies) also pass.
132+
133+
* Build log confirming that the build-time testsuite has been performed and completed successfully:
134+
- TODO link to build log(s)
135+
136+
* Test results:
137+
- TODO autopkgtest results and discussion
138+
139+
[ Where problems could occur ]
140+
141+
Upstream tests are always executed during build-time.
142+
Autopkgtests validate real-world functionality and test for regressions.
143+
Nevertheless, there is always a risk for something to break since we are dealing with a microrelease upgrade.
144+
Whenever a test failure is detected, we will analyze and make sure it doesn't affect existing users.
145+
146+
TODO: consider any other regression potential specific to the version being updated and list if any.
147+
148+
[ Other Info ]
149+
150+
This is a recurring effort. For reference, here are previous multipath-tools SRU backports:
151+
152+
* TODO: bug links to more recent cases of SRU backports for this package

docs/SRU/reference/package-specific.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ the Technical Board.
4848
exception-Intel-Graphics-Updates
4949
exception-Landscape-Updates
5050
exception-MariaDB-Galera-Updates
51+
exception-multipath-tools-Updates
5152
exception-NVidia-Updates
5253
exception-Netplan-Updates
5354
exception-OEMMeta-Updates
@@ -544,6 +545,12 @@ The 'mariadb' and 'galera' source packages, including source package variants
544545
with version suffixes, may be uploaded according to the proceedure documented in
545546
:ref:`MariaDB-Galera-Updates <reference-exception-MariaDB-Galera-Updates>`.
546547

548+
549+
multipath-tools
550+
~~~~~~~~~~~~~~~
551+
552+
The ``multipath-tools`` source package may be uploaded for their stable releases, as documented in :ref:`multipath-tools-Updates <reference-exception-multipath-tools-updates>`.
553+
547554
GRUB
548555
~~~~
549556

0 commit comments

Comments
 (0)