Skip to content

Conversation

@chrisd8088
Copy link
Member

@chrisd8088 chrisd8088 commented Nov 11, 2024

As we anticipate releasing Git LFS version 3.6.0 in the near future, we first update our list of the Linux distributions and versions for which our scripts will publish RPM and Debian packages.

This PR will be most easily reviewed on a commit-by-commit basis.

We first reformat and correct several details of in our list of Linux distribution versions and the end dates of their regular support lifecycles.

We then update our list to remove distribution versions that are no longer supported and add those which have become available since our last revisions in PR #5647, prior to our Git LFS v3.5.0 release.

There are several points of note in terms of what we change and do not change:

  • We move openSUSE Leap 15.6 and add SLES 15 SP6 into the set of distribution versions for which we consider the RPM package we build for RHEL/Rocky Linux 9 to be compatible. Testing with both openSUSE Leap 15.6 and SLES 15 SP6 demonstrates that our full Git LFS test suite passes on those platforms when using the Git LFS binary from our v3.5.1 RPM package for RHEL/Rocky Linux 9. (This follows from the fact that the glibc version in the RHEL 9 family of distributions is v2.34, while both of the latest SUSE distributions have a newer glibc v2.38, for which the ABI is backwards-compatible.)

  • We leave Debian 10 ("buster") in our list for now, until the other distributions in that family reach the end of their regular support lifecycles, which will occur in April 2025. If we removed this entry, we would have to either rename the "Debian 10" link we provide in our release notes or generate a "Debian 10" link which does not point to a debian/* package, neither of which seems desirable.

  • We also leave RHEL/CentOS 7 in our list, because SLES 12 SP5, which was the last distribution version similar to this platform to reach the end of its regular support lifecycle, did so only at the end of last month, and because we have not yet clearly announced that we will no longer build packages for any distribution based on either RHEL/CentOS 7 or SLES 12. We have also a comment which suggests that we might support SLES 12 SP5 through its LTSS (Long Term Service Pack Support) period, although this does not comport with our usual practice regarding extended support from vendors.

To be clear, then, the v3.6.x Git LFS releases will be the last ones for which we build a package for any distribution based on RHEL 7 or SLES 12.

Further, it is likely that the v3.6.x Git LFS releases will be the last ones for which we build a package for any distribution based on Debian 10.

We maintain a compatibility matrix of Linux distributions and versions
in the DistroMap Ruby class in our script/lib/distro.rb source file,
which is utilized by several scripts run by our GitHub Actions release
workflow jobs when building and naming the Linux packages we publish
on Packagecloud.

We will update the matrix of Linux distribution versions we support
in a subsequent commit in this PR.  Prior to making those changes,
we first reformat the code comments we use to track the end of
each distribution version's regular support lifecycle so that all
the comments align with each other.  This will make comparisons and
updates slightly easier, particularly when we move an entry in our
matrix from one list of entries to another.
We maintain a compatibility matrix of Linux distributions and versions
in the DistroMap Ruby class in our script/lib/distro.rb source file,
which is utilized by several scripts run by our GitHub Actions release
workflow jobs when building and naming the Linux packages we publish
on Packagecloud.

We will update the matrix of Linux distribution versions we support
in a subsequent commit in this PR.  Prior to making these changes,
though, we first reorder the list of distribution releases that we
consider to be compatible with the package we build for Debian 11.
Sorting this list alphanumerically ensures that it aligns with the
other lists defined in our DistroMap class.
We maintain a compatibility matrix of Linux distributions and versions
in the DistroMap Ruby class in our script/lib/distro.rb source file,
which is utilized by several scripts run by our GitHub Actions release
workflow jobs when building and naming the Linux packages we publish
on Packagecloud.

We will update the matrix of Linux distribution versions we support
in a subsequent commit in this PR.  Prior to making these changes,
we first update the regular support lifecycle end dates for the
current set of distribution versions listed in our DistroMap class
using the most recent information available from each vendor.
We maintain a compatibility matrix of Linux distributions and versions
in the DistroMap Ruby class in our script/lib/distro.rb source file,
which is utilized by several scripts run by our GitHub Actions release
workflow jobs when building and naming the Linux packages we publish
on Packagecloud.

In commit 5ed62ba in PR git-lfs#5647 we
revised this matrix so as to reassign openSUSE Leap 15.5 and 15.6 as
well as SUSE Linux Enterprise Server (SLES) 15 SP5 to the set of
distribution versions that we consider to be compatible with the RPM
packages we build for Red Hat Enterprise Linux (RHEL) 8, CentOS 8,
and Rocky Linux 8.

This works because the version of the GNU C library (glibc) provided by
the RHEL 8 family of distributions is 2.28, while the version of glibc
available on the more recent SUSE distributions is at least 2.31.  The
GNU C library keeps its ABI backwards-compatible, so any Git LFS binary
we build against glibc v2.28 on RHEL/CentOS 8 should also be functional
on the SUSE releases with glibc v2.31 or higher.

In a subsequent commit in this PR we will update the matrix in our
DistroMap Ruby class to remove Linux distribution versions that have
reached the end of their regular support lifecycle and to add new
versions of several distributions, including SLES 15 SP6.

Prior to making these changes, though, we first reassign OpenSUSE
Leap 15.6 to the set of distribution versions that we consider to be
compatible with the RPM packages we build for RHEL 9 and Rocky Linux 9,
as we would like to also include SLES 15 SP6 in the same set.

Both of these recent SUSE distributions versions provide glibc version
2.38, which is newer than the glibc version 2.34 included in the RHEL 9
family of distributions.  Thus a Git LFS binary we build against the
ABI of glibc v2.34 on RHEL/Rocky Linux 9 should be functional on the
latest SUSE releases as well.

We have confirmed that this is the case by successfully running the
full Git LFS test suite on both openSUSE Leap 15.6 and SLES 15 SP6
using a Git LFS v3.5.1 binary installed from the RPM we built RHEL 9
and Rocky Linux 9.

Based on these results, we can move openSUSE Leap 15.6 into the
set of distribution versions for which the RPM package we build
for RHEL 9 and Rocky Linux 9 will be compatible.
We maintain a compatibility matrix of Linux distributions and versions
in the DistroMap Ruby class in our script/lib/distro.rb source file,
which is utilized by several scripts run by our GitHub Actions release
workflow jobs when building and naming the Linux packages we publish
on Packagecloud.

As we anticipate making a v3.6.0 release of the Git LFS client in
the near future, we first update the list of Linux distribution
versions for which we will build RPM and Debian packages, removing
those which have reached the end of their regular support lifecycles
and adding those which have become available since our v3.5.0 release.

As noted in a previous commit in this PR, we are adding SUSE Linux
Enterprise Server (SLES) 15 SP6 to the set of distribution versions
that we consider to be compatible with the RPM packages we build
for Red Hat Enterprise Linux (RHEL) 9 and Rocky Linux 9.  This is
because the version of the GNU C library (glibc) provided by the
RHEL 9 family of distributions is 2.34, while the version of glibc
available on SLES 15 SP6 is 2.38, and any Git LFS binary we build
for the former will be functional with the latter as well.

While most of our updates are unexceptional, there are two notable
distribution versions that have reached the end of their regular support
lifecycles but which we leave in our matrix for the time being.

First, we leave the Debian 10 ("buster") release in our matrix
because it is the base for a number of other distribution versions
that have not yet reached the end of their regular support lifecycles.
In particular, Ubuntu 20.04 LTS (Focal Fossa) and the Linux Mint 20.x
series of releases will only reach the end of their regular support
periods in April 2025.  Since our scripts generate Git LFS release
notes and links to the Packagecloud service which depend on the
name of the base component of each set of related distribution versions,
if we removed the "debian/buster" entry we would also have to rename
various other fields and or generate a "Debian 10" link in our release
notes which did not refer to a "debian/*" package.  Hence we simply
leave the "debian/buster" entry in place until after April 2025, at
which point we will remove all the distribution versions based on
Debian 10.

Second, we do not remove the entire set of distribution versions
similar to RHEL 7 because the last one to reach the end of its regular
support lifecycle, SLES 12 SP5, only did so very recently at the end
of last month.  Further, other than a brief mention in PR git-lfs#5647,
we have not announced that we would no longer build any packages for
this family of distributions.  For this reason, we will leave the
SLES 12 SP5 entry and the base RHEL 7 entry in place for one final
Git LFS minor release cycle, after which they will be removed.

To clarify that further, we revise our comment tracking the support
lifecycle of SLES 12 SP5, which has previously included both the end
of the regular support period and the end of SUSE's Long Term Service
Pack Support (LTSS) for the release.  However, our practice for all
other Linux distributions has been to only provide packages during the
regular support period, and not during any form of extended support as
may be offered by some commercial vendors.  For instance, we stopped
providing packages for Ubuntu 18.04 LTS (Bionic Beaver) after the end
of its normal long-term support in May 2023, although ESM (Expanded
Security Maintenance) support is still available through April 2028.
We therefore we now remove any suggestion that we will continue to
support SLES 12 SP5 throughout its extended LTSS period.
@chrisd8088 chrisd8088 requested a review from a team as a code owner November 11, 2024 07:29
@chrisd8088 chrisd8088 merged commit d8cce4f into git-lfs:main Nov 11, 2024
10 checks passed
@chrisd8088 chrisd8088 deleted the update-linux-distro-list branch November 11, 2024 18:36
chrisd8088 added a commit to chrisd8088/build-dockers that referenced this pull request Jun 17, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit git-lfs/git-lfs@23fbfe8
of PR git-lfs/git-lfs#5911, since all the distribution versions based on
Red Hat Enterprise Linux (RHEL) 7, CentOS 7, and SUSE Linux Enterprise
Server (SLES) 12 for which we previously built RPM packages have now
reached the end of their standard LTS (Long-Term Support) periods,
future releases of Git LFS will no longer provide support for these
platforms or build packages for them.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we now remove the Dockerfile we used to build packages
for the RHEL/CentOS 7 and SLES 12 platforms.
chrisd8088 added a commit to chrisd8088/build-dockers that referenced this pull request Jun 17, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit git-lfs/git-lfs@23fbfe8
of PR git-lfs/git-lfs#5911, since all the distribution versions based on
Debian 10 for which we previously built Debian packages have now
reached the end of their standard LTS (Long-Term Support) periods,
future releases of Git LFS will no longer provide support for this
platform or build packages for it.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we now remove the Dockerfile we used to build packages
for the Debian 10 platform.
chrisd8088 added a commit to chrisd8088/build-dockers that referenced this pull request Jun 17, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit git-lfs/git-lfs@23fbfe8
of PR git-lfs/git-lfs#5911, since all the distribution versions based on
Debian 10 ("buster") for which we previously built Debian packages have
now reached the end of their standard LTS (Long-Term Support) periods,
future releases of Git LFS will no longer provide support for this
platform or build packages for it.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we now remove the Dockerfile we used to build packages
for the Debian 10 platform.
chrisd8088 added a commit to chrisd8088/git-lfs that referenced this pull request Jun 19, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit 23fbfe8 of PR git-lfs#5911,
since all the distribution versions based on Red Hat Enterprise Linux
(RHEL) 7, CentOS 7, and SUSE Linux Enterprise Server (SLES) 12 for which
we previously built RPM packages have now reached the end of their
standard LTS (Long-Term Support) periods, future releases of Git LFS
will no longer provide support for these platforms or build packages
for them.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we removed the Dockerfile we used to build packages
for the RHEL/CentOS 7 and SLES 12 platforms in commit
git-lfs/build-dockers@cfde130 of
PR git-lfs/build-dockers#71.

We can now also remove the entries for these platforms from the list
of our supported Linux distribution versions in the DistroMap Ruby
class source file, which is utilized by several scripts run by our
GitHub Actions release workflow jobs when building and naming the
Linux packages we publish on Packagecloud.
chrisd8088 added a commit to chrisd8088/git-lfs that referenced this pull request Jun 19, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit 23fbfe8 of PR git-lfs#5911,
since all the distribution versions based on Debian 10 ("buster")
for which we previously built Debian packages have now reached the
end of their standard LTS (Long-Term Support) periods, future releases
of Git LFS will no longer provide support for this platform or build
packages for it.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we removed the Dockerfile we used to build packages
for the Debian 10 platform in commit
git-lfs/build-dockers@04829f9 of
PR git-lfs/build-dockers#71.

We can now also remove the entries for this platform from the list
of our supported Linux distribution versions in the DistroMap Ruby
class source file, which is utilized by several scripts run by our
GitHub Actions release workflow jobs when building and naming the
Linux packages we publish on Packagecloud.
chrisd8088 added a commit to chrisd8088/git-lfs that referenced this pull request Jun 19, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit 23fbfe8 of PR git-lfs#5911,
since all the distribution versions based on Red Hat Enterprise Linux
(RHEL) 7, CentOS 7, and SUSE Linux Enterprise Server (SLES) 12 for which
we previously built RPM packages have now reached the end of their
standard LTS (Long-Term Support) periods, future releases of Git LFS
will no longer provide support for these platforms or build packages
for them.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we removed the Dockerfile we used to build packages
for the RHEL/CentOS 7 and SLES 12 platforms in commit
git-lfs/build-dockers@cfde130 of
PR git-lfs/build-dockers#71.  We then also removed the entries for
these platforms from the list of our supported Linux distribution
versions in the DistroMap Ruby class source file, which is utilized
by several scripts run by our GitHub Actions release workflow jobs
when building and naming the Linux packages we publish on Packagecloud.

Previously, we removed support for the RHEL/CentOS 6 platform in
commit d69e28d in PR git-lfs#4328.

However, our "docker/run_dockers.bsh" shell script still references
these platforms in its comments, so we update that script now to
provide more up-to-date usage examples.

As well, we update the test data in the Ruby RSpec script we use to
validate the DistroMap Ruby class source file, so that the test data
now aligns more closely with our current list of supported Linux
distribution versions.  Note, though, that this change does not affect
the behaviour of either the test script or the DistroMap source file.
@chrisd8088 chrisd8088 added the distribution First-party packages and release assets label Jun 20, 2025
chrisd8088 added a commit to chrisd8088/git-lfs that referenced this pull request Jun 20, 2025
As announced with the v3.6.0 release of the Git LFS client, and as
noted in commit 23fbfe8 of PR git-lfs#5911,
since all the distribution versions based on Red Hat Enterprise Linux
(RHEL) 7, CentOS 7, and SUSE Linux Enterprise Server (SLES) 12 for which
we previously built RPM packages have now reached the end of their
standard LTS (Long-Term Support) periods, future releases of Git LFS
will no longer provide support for these platforms or build packages
for them.

Because we anticipate making a v3.7.0 release of the Git LFS client in
the near future, we removed the Dockerfile we used to build packages
for the RHEL/CentOS 7 and SLES 12 platforms in commit
git-lfs/build-dockers@cfde130 of
PR git-lfs/build-dockers#71.  We then also removed the entries for
these platforms from the list of our supported Linux distribution
versions in the DistroMap Ruby class source file, which is utilized
by several scripts run by our GitHub Actions release workflow jobs
when building and naming the Linux packages we publish on Packagecloud.

Previously, in commit ff36182 of
PR git-lfs#4328, we removed support for distribution versions based on the
Debian 8 ("jessie") platform, including Ubuntu 14.04 ("Trusty Tahr")
and Linux Mint 17.1 ("Rebecca").

However, some of the installation examples in our "INSTALLING.md"
page still reference these platforms, so we update these exmaples
now with more contemporary Linux distribution versions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

distribution First-party packages and release assets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants