From: "Artem S. Tashkinov" <aros@gmx.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Sasha Levin <sashal@kernel.org>,
stable@vger.kernel.org
Subject: Re: [RFC/PROPOSAL] Shifting the x.y.z Stable Tree to a Continuous, Signed Patch-Stream Model
Date: Sun, 14 Jun 2026 08:16:06 +0000 [thread overview]
Message-ID: <5f62925e-0faf-40aa-a594-10ef6d50f24e@gmx.com> (raw)
In-Reply-To: <2026052444-unlawful-eskimo-9c41@gregkh>
Hi Greg,
Let me try to restate the proposal more narrowly, because I think my
previous wording mixed several related issues together.
I am not arguing that stable.git is not already continuous. It obviously
is. Nor am I arguing that cutting a point release is expensive for
upstream. I understand that from the stable maintainer side, tagging a
release is cheap and well automated.
The problem is that the ecosystem still treats the x.y.z point release
as the main externally visible consumption boundary, even though it is
neither the real upstream unit nor the real downstream deployment unit.
The real upstream unit is the stable git branch: a linear sequence of
accepted backports.
The real downstream deployment unit is a distro-built kernel package:
base kernel, stable backports through some point in git history, distro
patches/configuration, compiler/toolchain, signing, modules, CI, and
user-visible packaging.
The x.y.z point release sits awkwardly in between. It is a useful
compatibility marker for consumers that want that workflow, but it
should not have to be the canonical boundary for everyone else.
A better model, in my view, would be:
* stable.git remains the canonical source of truth;
* every downstream-consumable stable state is identified by branch +
signed commit ID, optionally with a signed machine-readable manifest;
* distros consume `v7.0 + stable commits through <commit>` or
`linux-7.0.y as of <date/commit>`, according to their own testing and
release policy;
* point releases may continue to exist for consumers that require them,
but they become one possible checkpoint format rather than the central
model.
This decouples two decisions that are currently conflated:
1. upstream’s decision that a commit belongs in the stable branch;
2. a downstream’s decision that a particular aggregate is ready to ship
to its users.
Those are not the same decision. Fedora, Arch, Debian, Ubuntu,
enterprise vendors, embedded vendors, and live-patching teams all have
different risk tolerances, hardware exposure, CI capacity, reboot
policies, module/signing workflows, and urgency. A single upstream x.y.z
cadence cannot be the right integration boundary for all of them.
In the recent 7.0 security/regression mess, the useful downstream
question should not have been “which point release has Greg cut yet?” It
should have been “which stable commits are required for the complete fix
set, and has our actual distro kernel artifact built from that stable
commit range passed enough testing to ship?”
If distros routinely consumed the stable branch as a signed linear
stream, they could pin a specific stable commit, build from it, test it,
and declare exactly what they shipped:
```
base: v7.0
stable branch: linux-7.0.y
stable commit: <hash>
included range: v7.0..<hash>
downstream patches/reverts: <list>
```
That is more auditable than chasing point releases or cherry-picking
individual commits from intermediate states. It also makes clear that
the distro package, not the upstream tarball, is the object that was
actually tested and deployed.
There is also a practical artifact problem here. For long-lived stable
series, publishing a complete source tarball for every x.y.z release is
very wasteful. By 5.10.258, the 5.10.y series has hundreds of distinct
tarballs, each over 100 MB compressed, representing tens of gigabytes of
mostly duplicated source snapshots for one stable line. The real
information is the base tree plus the incremental stable deltas. Git
already represents that naturally.
So I am not asking to remove point releases from users that still need
them. Keep them for conservative workflows, existing scripts,
announcements, and consumers that require a simple named snapshot.
What I am arguing is that point releases should no longer be the
privileged stable consumption model. The canonical model should be the
signed stable git stream, with downstreams free to define their own
tested integration points on that stream.
That would make the stable process match what it already is technically:
a continuous sequence of accepted backports, not a sequence of magic
tarball events.
Regards,
Artem
next prev parent reply other threads:[~2026-06-14 8:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-24 9:38 Artem S. Tashkinov
2026-05-24 10:56 ` Greg Kroah-Hartman
2026-05-25 0:33 ` Theodore Tso
2026-06-14 7:49 ` Artem S. Tashkinov
2026-06-14 8:16 ` Artem S. Tashkinov [this message]
2026-06-14 9:33 ` Willy Tarreau
2026-06-14 11:19 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5f62925e-0faf-40aa-a594-10ef6d50f24e@gmx.com \
--to=aros@gmx.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®