Skip to content

Commit 9649371

Browse files
authored
Merge pull request #314 from lvoytek/add-valkey-sru-exception
Add SRU exception for Valkey
2 parents d9b8896 + 19f532d commit 9649371

File tree

2 files changed

+165
-0
lines changed

2 files changed

+165
-0
lines changed
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
.. _reference-exception-ValkeyUpdates:
2+
3+
.. _valkey_updates:
4+
5+
Valkey Updates
6+
===============
7+
8+
This document describes the policy for doing micro-release updates of
9+
the Valkey package in Ubuntu stable releases.
10+
11+
.. _about_valkey:
12+
13+
About Valkey
14+
------------
15+
16+
`Valkey <https://valkey.io/>`__ is an open source high-performance
17+
key/value datastore that supports a variety of workloads such as caching,
18+
message queues, and can act as a primary database.
19+
20+
21+
Valkey Upstream release policy
22+
-------------------------------
23+
24+
The Valkey community maintains multiple versions in parallel. According
25+
to their `supported versions
26+
documentation <https://valkey.io/topics/releases/>`__:
27+
28+
- The latest stable release is always fully supported and maintained.
29+
- All latest minor version of each major version will have extended
30+
security support for 5 years.
31+
- Every minor release will be fully supported with bug fixes for 3 years.
32+
33+
When it comes to updates in Ubuntu, the latest micro release for each
34+
corresponding minor release should be considered for SRU. When security updates
35+
are included in a new micro release, the update should also be added to the
36+
security pocket through a no-change rebuild after releasing to the updates
37+
pocket.
38+
39+
Note that Valkey has strict rules for maintaining compatibility between micro
40+
releases. However, minor and major releases often contain
41+
backwards-incompatible changes. Therefore, only micro releases should be
42+
considered for SRU, and a minor release update would need special approval
43+
using the normal SRU process.
44+
45+
.. _ubuntu_and_valkey_releases_affected_by_this_mre:
46+
47+
Ubuntu and Valkey releases affected by this MRE
48+
------------------------------------------------
49+
50+
Currently, these are the Ubuntu releases and the corresponding Valkey
51+
package versions affected by this policy:
52+
53+
- Resolute (26.04): Valkey 9.0.x (projected)
54+
- Questing (25.10): Valkey 8.1.x
55+
- Noble (24.04): Valkey 7.2.x
56+
57+
QA
58+
--
59+
60+
Upstream tests
61+
^^^^^^^^^^^^^^
62+
63+
Valkey contains a set of build and regression tests which are executed
64+
for each commit and release via `GitHub
65+
Actions <https://github.com/valkey-io/valkey/actions>`__. Upstream tests
66+
are provided in the `tests/
67+
directory <https://github.com/valkey-io/valkey/tree/unstable/tests>`__.
68+
69+
Autopkgtest
70+
^^^^^^^^^^^
71+
72+
The package contains five DEP-8 tests in every supported Ubuntu release, along
73+
with one extra in noble and plucky:
74+
75+
- valkey-cli - Smoke test to confirm valkey-cli can show info and version.
76+
- benchmark - Run the benchmark command and display its info.
77+
- valkey-check-aof - Smoke test to confirm the check-aof command runs.
78+
- valkey-check-rdb - Run a synchronous save then confirm the check-rdb command
79+
runs successfully.
80+
- cjson - Confirm the cjson module can be loaded and used.
81+
- migrate-from-redis - (Noble and Plucky only) Confirm that using the
82+
valkey-redis-compat package to migrate data from a Redis server succeeds by
83+
default.
84+
85+
These tests are extensive enough to catch major errors when it comes to
86+
the integration of Valkey with Ubuntu, specifically when starting valkey-server
87+
and running standard cli commands, along with issues in setup and compatibility
88+
with Redis if relevant.
89+
90+
.. _valkey_avoiding_breaking_changes:
91+
92+
Avoiding Breaking Changes
93+
-------------------------
94+
95+
In order to confirm that upstream continues to match our expectation of
96+
backwards compatibility in micro releases, additional due diligence must be
97+
done by whoever prepares the SRU. Prior to merging, version release notes and
98+
announcements from upstream must be checked for backwards-incompatible changes.
99+
Any change that may fit this description must be noted in the bug report. Also,
100+
prior to uploading, discuss with the SRU team as to how to handle the changes.
101+
This may result in a reversion of the backwards-incompatible changes through
102+
patches.
103+
104+
Valkey Update Process
105+
----------------------
106+
107+
As with regular MREs, the aim here is to offer bugfixes and security
108+
fixes to all supported releases.
109+
110+
To do this we will:
111+
112+
#. File a bug to cover the upgrade.
113+
114+
- Add tasks to all Ubuntu releases which will be updated.
115+
- Add a link to the upstream changelog and list major changes.
116+
- Look through changelogs and announcements to check for backwards-incompatible changes, and note them down.
117+
118+
#. Make sure the development release contains the fixes that will be added. In general this should be the case as long as it is up to date with its associated micro release version.
119+
#. Setup merges with each new version.
120+
#. Run autopkgtest on all supported architectures.
121+
#. Upload the microrelease to the SRU queue and wait until it is approved.
122+
#. Watch the migration page until it lands in the -updates pocket. Fix any regression that might appear during the process.
123+
124+
125+
Valkey SRU template
126+
--------------------
127+
128+
.. code-block:: text
129+
130+
This bug tracks an update for the Valkey package, moving to versions:
131+
132+
* [Release codename] ([Release version]): Valkey [Valkey version - highest possible number on the last digit]
133+
* [...]
134+
135+
These updates include bug fixes following the SRU special case documentation at https://documentation.ubuntu.com/sru/en/latest/reference/exception-Valkey-Updates
136+
137+
[Upstream changes]
138+
139+
TODO: List updates, CVE fixes, and relevant bug fixes
140+
TODO: Add a link to the upstream changelog
141+
142+
TODO: Specifically note any backwards-incompatible changes or features added by upstream and their announcements/release notes and relevant commits.
143+
144+
[Test Plan]
145+
146+
TODO: Check DEP-8 and reverse-depends DEP-8 tests pass
147+
TODO: if there are any non passing tests - explain why that is ok in this case
148+
TODO: add results of an autopkgtest run against all the new versions
149+
150+
[Regression Potential]
151+
152+
Upstream has an extensive build and integration test suite. So regressions would likely arise from a change in interaction with Ubuntu-specific integrations.
153+
154+
TODO: consider any other regression potential specific to the version being
155+
updated and list if any.

docs/SRU/reference/package-specific.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ the Technical Board.
7676
exception-google-guest-agent-Updates
7777
exception-google-osconfig-agent-Updates
7878
exception-rax-nova-agent-Updates
79+
exception-Valkey-Updates
7980
exception-walinuxagent-Updates
8081
exception-wslu-Updates
8182

@@ -544,6 +545,15 @@ 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+
Valkey
549+
~~~~~~
550+
551+
The valkey source package may be uploaded according to the procedure
552+
documented in :ref:`Valkey-Updates <reference-exception-ValkeyUpdates>`.
553+
This stable release exception `has been
554+
approved <TBD>`__ by [TBD] for the
555+
SRU team as of [TBD].
556+
547557
GRUB
548558
~~~~
549559

0 commit comments

Comments
 (0)