mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  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®