git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Improve CI testing of older systems
@ 2024-10-31 23:49 brian m. carlson
  2024-10-31 23:49 ` [PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04 brian m. carlson
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: brian m. carlson @ 2024-10-31 23:49 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Taylor Blau, Patrick Steinhardt

In many cases, we're not testing some of the older Linux distributions
that we support.  However, we _are_ testing some old Linux distributions
that we _don't_ support.  That means that it's presently difficult for
us to make sure our code works on all the systems we want it to and that
we're not accidentally requiring newer versions of dependencies than we
claim to support.

The first patch removes Ubuntu 16.04, which is out of regular LTS
support.  The second removes the clause in the CI job for that OS.  The
third adds several new CI jobs to make sure we're adequately supporting
older Debian and RHEL-compatible distros, and documents the dates at
which they lose support (so it's easy to know if we need to update
them).

brian m. carlson (3):
  gitlab-ci: switch from Ubuntu 16.04 to 20.04
  ci: remove clause for Ubuntu 16.04
  Add additional CI jobs to avoid accidental breakage

 .github/workflows/main.yml |  9 +++++++++
 .gitlab-ci.yml             |  2 +-
 ci/install-dependencies.sh | 19 ++++++++++---------
 3 files changed, 20 insertions(+), 10 deletions(-)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04
  2024-10-31 23:49 [PATCH 0/3] Improve CI testing of older systems brian m. carlson
@ 2024-10-31 23:49 ` brian m. carlson
  2024-10-31 23:49 ` [PATCH 2/3] ci: remove clause for Ubuntu 16.04 brian m. carlson
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: brian m. carlson @ 2024-10-31 23:49 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Taylor Blau, Patrick Steinhardt

Ubuntu 16.04 is past its normal LTS lifespan, so let's switch to Ubuntu
20.04 instead, which is the latest regular LTS version.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 526ecfe030..a1bc92893f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -35,7 +35,7 @@ test:linux:
   parallel:
     matrix:
       - jobname: linux-old
-        image: ubuntu:16.04
+        image: ubuntu:20.04
         CC: gcc
       - jobname: linux-sha256
         image: ubuntu:latest

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] ci: remove clause for Ubuntu 16.04
  2024-10-31 23:49 [PATCH 0/3] Improve CI testing of older systems brian m. carlson
  2024-10-31 23:49 ` [PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04 brian m. carlson
@ 2024-10-31 23:49 ` brian m. carlson
  2024-11-01  0:34   ` Junio C Hamano
  2024-10-31 23:49 ` [PATCH 3/3] Add additional CI jobs to avoid accidental breakage brian m. carlson
  2024-11-04 11:36 ` [PATCH 0/3] Improve CI testing of older systems Patrick Steinhardt
  3 siblings, 1 reply; 8+ messages in thread
From: brian m. carlson @ 2024-10-31 23:49 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Taylor Blau, Patrick Steinhardt

We're no longer testing this version and it's well beyond regular LTS
support now, so remove the stanza for it from the case statement in our
CI code.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 ci/install-dependencies.sh | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 126e570eb4..d30ae53a18 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*)
 		${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE
 
 	case "$distro" in
-	ubuntu-16.04)
-		# Does not support JGit, but we also don't really care about
-		# the others. We rather care whether Git still compiles and
-		# runs fine overall.
-		;;
 	ubuntu-*)
 		mkdir --parents "$CUSTOM_PATH"
 

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] Add additional CI jobs to avoid accidental breakage
  2024-10-31 23:49 [PATCH 0/3] Improve CI testing of older systems brian m. carlson
  2024-10-31 23:49 ` [PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04 brian m. carlson
  2024-10-31 23:49 ` [PATCH 2/3] ci: remove clause for Ubuntu 16.04 brian m. carlson
@ 2024-10-31 23:49 ` brian m. carlson
  2024-11-04 11:36 ` [PATCH 0/3] Improve CI testing of older systems Patrick Steinhardt
  3 siblings, 0 replies; 8+ messages in thread
From: brian m. carlson @ 2024-10-31 23:49 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Taylor Blau, Patrick Steinhardt

In general, we'd like to make sure Git works on the LTS versions of
major Linux distributions.  To do that, let's add CI jobs for the oldest
regular (non-extended) LTS versions of the major distributions: Ubuntu
20.04, Debian 11, and RHEL 8.  Because RHEL isn't available to the
public at no charge, use AlmaLinux, which is binary compatible with it.

Note that Debian does not offer the language-pack packages, but suitable
locale support can be installed with the locales-all package.
Otherwise, use the set of installation instructions which exist and are
most similar to the existing supported distros.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 .github/workflows/main.yml |  9 +++++++++
 ci/install-dependencies.sh | 14 ++++++++++----
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9301a1edd6..808ddc19b8 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -342,12 +342,21 @@ jobs:
         - jobname: linux-musl
           image: alpine
           distro: alpine-latest
+        # Supported until 2025-04-02.
         - jobname: linux32
           image: i386/ubuntu:focal
           distro: ubuntu32-20.04
         - jobname: pedantic
           image: fedora
           distro: fedora-latest
+        # A RHEL 8 compatible distro.  Supported until 2029-05-31.
+        - jobname: almalinux-8
+          image: almalinux:8
+          distro: almalinux-8
+        # Supported until 2026-08-31.
+        - jobname: debian-11
+          image: debian:11
+          distro: debian-11
     env:
       jobname: ${{matrix.vector.jobname}}
       distro: ${{matrix.vector.distro}}
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index d30ae53a18..d020cb7aa5 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -29,26 +29,32 @@ alpine-*)
 		apache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav apr-util-dbd_sqlite3 \
 		bash cvs gnupg perl-cgi perl-dbd-sqlite perl-io-tty >/dev/null
 	;;
-fedora-*)
+fedora-*|almalinux-*)
 	dnf -yq update >/dev/null &&
 	dnf -yq install make gcc findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null
 	;;
-ubuntu-*|ubuntu32-*)
+ubuntu-*|ubuntu32-*|debian-*)
 	# Required so that apt doesn't wait for user input on certain packages.
 	export DEBIAN_FRONTEND=noninteractive
 
 	case "$distro" in
 	ubuntu-*)
 		SVN='libsvn-perl subversion'
+		LANGUAGES='language-pack-is'
+		;;
+	ubuntu32-*)
+		SVN=
+		LANGUAGES='language-pack-is'
 		;;
 	*)
-		SVN=
+		SVN='libsvn-perl subversion'
+		LANGUAGES='locales-all'
 		;;
 	esac
 
 	sudo apt-get -q update
 	sudo apt-get -q -y install \
-		language-pack-is apache2 cvs cvsps git gnupg $SVN \
+		$LANGUAGES apache2 cvs cvsps git gnupg $SVN \
 		make libssl-dev libcurl4-openssl-dev libexpat-dev wget sudo default-jre \
 		tcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl \
 		libemail-valid-perl libio-pty-perl libio-socket-ssl-perl libnet-smtp-ssl-perl libdbd-sqlite3-perl libcgi-pm-perl \

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] ci: remove clause for Ubuntu 16.04
  2024-10-31 23:49 ` [PATCH 2/3] ci: remove clause for Ubuntu 16.04 brian m. carlson
@ 2024-11-01  0:34   ` Junio C Hamano
  2024-11-01  0:38     ` brian m. carlson
  2024-11-01  0:41     ` Junio C Hamano
  0 siblings, 2 replies; 8+ messages in thread
From: Junio C Hamano @ 2024-11-01  0:34 UTC (permalink / raw)
  To: brian m. carlson; +Cc: git, Taylor Blau, Patrick Steinhardt

"brian m. carlson" <sandals@crustytoothpaste.net> writes:

> We're no longer testing this version and it's well beyond regular LTS
> support now, so remove the stanza for it from the case statement in our
> CI code.

Something like "we replaced it with 20.04 which does not need the
corresponding special casing" would be necessary to explain why this
is a good change, as opposed to an equally plausible-looking patch
that replaces 16.04 with 20.04 and otherwise keeps the "stanza".

> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
> ---
>  ci/install-dependencies.sh | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 126e570eb4..d30ae53a18 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*)
>  		${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE
>  
>  	case "$distro" in
> -	ubuntu-16.04)
> -		# Does not support JGit, but we also don't really care about
> -		# the others. We rather care whether Git still compiles and
> -		# runs fine overall.
> -		;;
>  	ubuntu-*)
>  		mkdir --parents "$CUSTOM_PATH"
>  

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] ci: remove clause for Ubuntu 16.04
  2024-11-01  0:34   ` Junio C Hamano
@ 2024-11-01  0:38     ` brian m. carlson
  2024-11-01  0:41     ` Junio C Hamano
  1 sibling, 0 replies; 8+ messages in thread
From: brian m. carlson @ 2024-11-01  0:38 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Taylor Blau, Patrick Steinhardt

[-- Attachment #1: Type: text/plain, Size: 666 bytes --]

On 2024-11-01 at 00:34:14, Junio C Hamano wrote:
> "brian m. carlson" <sandals@crustytoothpaste.net> writes:
> 
> > We're no longer testing this version and it's well beyond regular LTS
> > support now, so remove the stanza for it from the case statement in our
> > CI code.
> 
> Something like "we replaced it with 20.04 which does not need the
> corresponding special casing" would be necessary to explain why this
> is a good change, as opposed to an equally plausible-looking patch
> that replaces 16.04 with 20.04 and otherwise keeps the "stanza".

Sure, I can mention that in v2.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] ci: remove clause for Ubuntu 16.04
  2024-11-01  0:34   ` Junio C Hamano
  2024-11-01  0:38     ` brian m. carlson
@ 2024-11-01  0:41     ` Junio C Hamano
  1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2024-11-01  0:41 UTC (permalink / raw)
  To: brian m. carlson; +Cc: git, Taylor Blau, Patrick Steinhardt

Junio C Hamano <gitster@pobox.com> writes:

> "brian m. carlson" <sandals@crustytoothpaste.net> writes:
>
>> We're no longer testing this version and it's well beyond regular LTS
>> support now, so remove the stanza for it from the case statement in our
>> CI code.
>
> Something like "we replaced it with 20.04 which does not need the
> corresponding special casing" would be necessary to explain why this
> is a good change, as opposed to an equally plausible-looking patch
> that replaces 16.04 with 20.04 and otherwise keeps the "stanza".

Ah, I take it back (or atleast a half of it).  

We have been already using 20.04 on the .github/ side, and 1/3
removed only from .gitlab-ci removing the last user of 16.04, so
presumably this has already tested well for 20.04 and there is no
need to add "corresponding special casing".

I'll keep reading the list backwards, this time resisting my
temptation to utter nonsense without thinking much, attempting to
catch up.

Thanks.


>> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
>> ---
>>  ci/install-dependencies.sh | 5 -----
>>  1 file changed, 5 deletions(-)
>>
>> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
>> index 126e570eb4..d30ae53a18 100755
>> --- a/ci/install-dependencies.sh
>> +++ b/ci/install-dependencies.sh
>> @@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*)
>>  		${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE
>>  
>>  	case "$distro" in
>> -	ubuntu-16.04)
>> -		# Does not support JGit, but we also don't really care about
>> -		# the others. We rather care whether Git still compiles and
>> -		# runs fine overall.
>> -		;;
>>  	ubuntu-*)
>>  		mkdir --parents "$CUSTOM_PATH"
>>  

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] Improve CI testing of older systems
  2024-10-31 23:49 [PATCH 0/3] Improve CI testing of older systems brian m. carlson
                   ` (2 preceding siblings ...)
  2024-10-31 23:49 ` [PATCH 3/3] Add additional CI jobs to avoid accidental breakage brian m. carlson
@ 2024-11-04 11:36 ` Patrick Steinhardt
  3 siblings, 0 replies; 8+ messages in thread
From: Patrick Steinhardt @ 2024-11-04 11:36 UTC (permalink / raw)
  To: brian m. carlson; +Cc: git, Junio C Hamano, Taylor Blau

On Thu, Oct 31, 2024 at 11:49:31PM +0000, brian m. carlson wrote:
> In many cases, we're not testing some of the older Linux distributions
> that we support.  However, we _are_ testing some old Linux distributions
> that we _don't_ support.  That means that it's presently difficult for
> us to make sure our code works on all the systems we want it to and that
> we're not accidentally requiring newer versions of dependencies than we
> claim to support.
> 
> The first patch removes Ubuntu 16.04, which is out of regular LTS
> support.  The second removes the clause in the CI job for that OS.  The
> third adds several new CI jobs to make sure we're adequately supporting
> older Debian and RHEL-compatible distros, and documents the dates at
> which they lose support (so it's easy to know if we need to update
> them).

The GitLab CI-related changes all look good to me, thanks! The GitHub
ones do, too, but I feel less qualified to comment on them.

Patrick

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-11-04 11:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-31 23:49 [PATCH 0/3] Improve CI testing of older systems brian m. carlson
2024-10-31 23:49 ` [PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04 brian m. carlson
2024-10-31 23:49 ` [PATCH 2/3] ci: remove clause for Ubuntu 16.04 brian m. carlson
2024-11-01  0:34   ` Junio C Hamano
2024-11-01  0:38     ` brian m. carlson
2024-11-01  0:41     ` Junio C Hamano
2024-10-31 23:49 ` [PATCH 3/3] Add additional CI jobs to avoid accidental breakage brian m. carlson
2024-11-04 11:36 ` [PATCH 0/3] Improve CI testing of older systems Patrick Steinhardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).