Hi All,
For the past couple of months I’ve been promoting the idea of
having Long Term Support (LTS) feature releases for ClamAV within internal Talos
communications.
For the purposes of this discussion:
My interest in starting an LTS program came about because we
have been getting (understandable) pressure from management to have shorter
development times for feature versions with more targeted feature sets.
What this means is that you would see more frequent feature releases, possibly
as many as ~5 per year. Some of the features in a given feature release
would be things the community cares about, while others may be by request of a
different team within Talos or Cisco.
But I couldn’t in good conscience start pumping out new
feature releases every 2-4 months and expect everyone to keep up. And at that
rate it would not be possible for us to make critical patch versions for every
feature release within the two years, or even one year. So in order to get
features out faster it became clear to me that we will need to define
specific feature release for which we promise to backport security fixes
for some amount of time.
This raised a few obvious questions:
We’ve been talking about this off and on for the past couple
of month. This is what I came up with….
Which feature version do
we start with?
We
had initially settled on 0.104 as the first LTS version, for basically
two reasons:
-
Joel really wants to make sure people have the latest
freshclam features, particularly those found in 0.103.2 and 0.103.3, to reduce
bandwidth cost.
-
I don’t want to keep fixing glitchy autotools package
detection issues for years to come.
But after seeing the (very much
unexpected) reaction to the switch CMake… it’s clear to me now that we need
to start the LTS program with 0.103.
Do we have to continue
serving database content to every patch version in an LTS
release?
No.
LTS means that we will promise to
continue providing patch versions for a given feature release.
I.e. you will get critical fixes
in 0.103.4, 0.103.5, 0.103.6, etc. as needed until End of Life (EOL) for the
0.103 feature release.
I need to stress
that it doesn’t mean people should or will be allowed to continue
using vulnerable or otherwise problematic versions such as 0.103.0 and 0.103.1
just because they belong to an LTS feature release. We will reserve the right
to at some point begin to block older patch versions like 0.103.0 from
downloading databases to force people to use newer patch versions.
How often should we
select a new feature release for LTS?
Some products, like Ubuntu, do a
new LTS ever 2 years with support for 5 years. 2 years feels like a long
time but, as much as I want to get people using the latest features, our team is
pretty small. The more frequently we a release for long term support, the
more work each security release will be. We would be required to create
and test a new patch version for the current stable feature release plus a
collection of LTS releases. If we did an LTS every year, that would be too
much.
I think 2 years is probably a good number.
How long is “long term
support” anyways?
As noted above and elsewhere,
Ubuntu and RHEL/CentOS support LTS versions for 5 years. That’s a long
time, and more than our team could agree to.
After a bunch of discussion, we
think 3 years is a good number.
To summarize, I’m proposing a Long Term Support (LTS)
program for ClamAV starting with the 0.103 feature release. This
means:
I would like your feedback.
Respectfully,
Micah
Micah
Snyder
ClamAV
Talos
Cisco Systems, Inc.