LTS is a very good and established concept/naming - and I like it a lot and
if we could adopt recommendations for that approach as Piotr suggests and
suggest it to the projects that would be cool.

But I think it applies to a subset of projects (mainly foundational
libraries).

LTS is good for "OS" and "popular libraries" that upstream dependencies
depend on.

But for the projects that are not really libraries but "end products" (say
Airflow, Superset, Dolphin Scheduler etc. etc. ) - LTS is not something
that the project has and the concept is a bit "alien". They usually have 1
or few "branches" that are maintained and security fixes are applied, and
there is no real "LTS" concept. Simply the versions that are maintained
have either regular fixes or only security fixes applied usually, and there
are EOL versions that receive no fixes any more. This is because the LTS
concept is really when other software depends on it.

So here I'd say we should talk about some classification for maintenance
("ACTIVELY DEVELOPED", "BUGFIX ONLY",  "SECURITY ONLY",  "EOL" ?) release
"branches" or smth similar.
Note - those are concept names only - I have no good naming for the first
three, EOL seems to be established.

Example: in Airflow we have:
- 3.* ACTIVELY DEVELOPED (not released yet)
- 2.* BUGFIX ONLY (including security).
- 1.10.* EOL (not maintained for 3 years already - not even security fixes
applied)

In about 5 months those will change:

- 3.* ACTIVELY DEVELOPED (released yet)
- 2.* BUGFIX ONLY (including security).
- 1.10.* EOL (not maintained for 3 years already - not even security fixes
applied)

At some point in time (still to be decided) the 2.* branch will turn into
another state where likely only security fixes will be applied (we will
still have to decide for how long, how to name that branch etc.)

- 3.* ACTIVELY DEVELOPED (released yet)
- 2.* SECURITY ONLY
- 1.10.* EOL (not maintained for 3 years already - not even security fixes
applied)

Eventually 2.* branch will turn into EOL (but when and how we do not know
yet and I guess in the future CRA and other regulations will determine how
long a released software should receive fixes until it will turn into EOL
state - but that very much depends on the standards that will be accepted
for that).

I think it's quite important to also get a good consistent naming for that
pattern for end-products and have a good naming and recommendation for
ACTIVELY_DEVELOPED / BUGFIX ONLY/ SECURITY ONLY / EOL "classification" of
branches.

J.


On Wed, Oct 16, 2024 at 9:52 AM Gilles Sadowski <gillese...@gmail.com>
wrote:

> Hello.
>
> Le mer. 16 oct. 2024 à 08:22, Piotr P. Karwasz
> <piotr.karw...@gmail.com> a écrit :
> >
> > Hi Christopher,
> >
> > On Thu, 10 Oct 2024 at 18:14, Christopher Schultz
> > <ch...@christopherschultz.net> wrote:
> > >      • Canned responses to issues (?)
> > >      • security.txt
> > >      • Dedicated security team (secur...@project.apache.org)
> > >          ◦ Reduce security@ and private@ where appropriate/possible
> > >      • Create and document detailed incident response
> > >          ◦ Including key contacts and contact information
> > >      • Disable inherently insecure features
> > >      • Documented release process
> > >      • Documented security / threat model(s)
> > >      • Reproducible builds
> > >      • Automated release process
> > >      • SBOMs
> > >      • Harden CI workflows (?)
> >
> > Nice list, might I add another item we recently briefly discussed on
> Slack[2]:
> >
> > * introduce minor branches with long term security support (and nothing
> else).
> >
> > Since making any upgrade of a dependency can always break something
> > (e.g. the bugs or implementation specific behavior you are relying
> > on), many companies don't upgrade until it is necessary.
> > This is of course a risk, since those missed upgrades will hit them
> > all at once, when a CVE is published. The problem can be solved with
> > LTS branches that only receive critical and security updates, as
> > advocated by OpenJDK in JEP[1].
> >
> > Right now users decide themselves, which version of a library they
> > will be using for the next 5 years or so: it's usually the first
> > version without any known vulnerabilities. As an example, downloads of
> > Log4j Core 2.17.x amount to around 40% of the total downloads of Log4j
> > Core. Of course if a vulnerability were to be discovered today, there
> > would be no 2.17.3 release, but only a 2.24.2 release.
> >
> > Offering LTS branches with extended security support is not a choice a
> > single project can make: a good LTS version must only use LTS versions
> > of its dependencies. Since we depend on Commons, such an initiative
> > should be ASF-wide.
>
> And "Commons" doesn't/can't make any LTS promise.
> Rather, it has always stated that only the latest release is supported.
> [The first question to someone reporting a bug in an older version is
> whether it exists in the latest release.]
>
> Regards,
> Gilles
>
> >
> > Piotr
> >
> > [1] https://openjdk.org/jeps/14
> > [2] https://the-asf.slack.com/archives/C4TQW0M5L/p1728204781631769
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: security-discuss-unsubscr...@community.apache.org
> For additional commands, e-mail:
> security-discuss-h...@community.apache.org
>
>

Reply via email to