|
| 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 |
0 commit comments