{"thread":{"id":"62432","subject":"[PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04","startedAt":"2024-10-31T23:55:37Z","lastAt":"2024-11-04T11:36:16Z","messageCount":8,"participants":["brian m. carlson","Junio C Hamano","Patrick Steinhardt"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"506416","messageId":"20241031234934.3451390-2-sandals@crustytoothpaste.net","threadId":"62432","inReplyTo":"20241031234934.3451390-1-sandals@crustytoothpaste.net","subject":"[PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-10-31T23:49:32Z","receivedAt":"2024-10-31T23:55:37Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"Ubuntu 16.04 is past its normal LTS lifespan, so let's switch to Ubuntu\n20.04 instead, which is the latest regular LTS version.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\n---\n .gitlab-ci.yml | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\nindex 526ecfe030..a1bc92893f 100644\n--- a/.gitlab-ci.yml\n+++ b/.gitlab-ci.yml\n@@ -35,7 +35,7 @@ test:linux:\n   parallel:\n     matrix:\n       - jobname: linux-old\n-        image: ubuntu:16.04\n+        image: ubuntu:20.04\n         CC: gcc\n       - jobname: linux-sha256\n         image: ubuntu:latest\n"},{"id":"506417","messageId":"20241031234934.3451390-4-sandals@crustytoothpaste.net","threadId":"62432","inReplyTo":"20241031234934.3451390-1-sandals@crustytoothpaste.net","subject":"[PATCH 3/3] Add additional CI jobs to avoid accidental breakage","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-10-31T23:49:34Z","receivedAt":"2024-10-31T23:55:37Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"In general, we'd like to make sure Git works on the LTS versions of\nmajor Linux distributions.  To do that, let's add CI jobs for the oldest\nregular (non-extended) LTS versions of the major distributions: Ubuntu\n20.04, Debian 11, and RHEL 8.  Because RHEL isn't available to the\npublic at no charge, use AlmaLinux, which is binary compatible with it.\n\nNote that Debian does not offer the language-pack packages, but suitable\nlocale support can be installed with the locales-all package.\nOtherwise, use the set of installation instructions which exist and are\nmost similar to the existing supported distros.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\n---\n .github/workflows/main.yml |  9 +++++++++\n ci/install-dependencies.sh | 14 ++++++++++----\n 2 files changed, 19 insertions(+), 4 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 9301a1edd6..808ddc19b8 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -342,12 +342,21 @@ jobs:\n         - jobname: linux-musl\n           image: alpine\n           distro: alpine-latest\n+        # Supported until 2025-04-02.\n         - jobname: linux32\n           image: i386/ubuntu:focal\n           distro: ubuntu32-20.04\n         - jobname: pedantic\n           image: fedora\n           distro: fedora-latest\n+        # A RHEL 8 compatible distro.  Supported until 2029-05-31.\n+        - jobname: almalinux-8\n+          image: almalinux:8\n+          distro: almalinux-8\n+        # Supported until 2026-08-31.\n+        - jobname: debian-11\n+          image: debian:11\n+          distro: debian-11\n     env:\n       jobname: ${{matrix.vector.jobname}}\n       distro: ${{matrix.vector.distro}}\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex d30ae53a18..d020cb7aa5 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -29,26 +29,32 @@ alpine-*)\n \t\tapache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav apr-util-dbd_sqlite3 \\\n \t\tbash cvs gnupg perl-cgi perl-dbd-sqlite perl-io-tty >/dev/null\n \t;;\n-fedora-*)\n+fedora-*|almalinux-*)\n \tdnf -yq update >/dev/null &&\n \tdnf -yq install make gcc findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null\n \t;;\n-ubuntu-*|ubuntu32-*)\n+ubuntu-*|ubuntu32-*|debian-*)\n \t# Required so that apt doesn't wait for user input on certain packages.\n \texport DEBIAN_FRONTEND=noninteractive\n \n \tcase \"$distro\" in\n \tubuntu-*)\n \t\tSVN='libsvn-perl subversion'\n+\t\tLANGUAGES='language-pack-is'\n+\t\t;;\n+\tubuntu32-*)\n+\t\tSVN=\n+\t\tLANGUAGES='language-pack-is'\n \t\t;;\n \t*)\n-\t\tSVN=\n+\t\tSVN='libsvn-perl subversion'\n+\t\tLANGUAGES='locales-all'\n \t\t;;\n \tesac\n \n \tsudo apt-get -q update\n \tsudo apt-get -q -y install \\\n-\t\tlanguage-pack-is apache2 cvs cvsps git gnupg $SVN \\\n+\t\t$LANGUAGES apache2 cvs cvsps git gnupg $SVN \\\n \t\tmake libssl-dev libcurl4-openssl-dev libexpat-dev wget sudo default-jre \\\n \t\ttcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl \\\n \t\tlibemail-valid-perl libio-pty-perl libio-socket-ssl-perl libnet-smtp-ssl-perl libdbd-sqlite3-perl libcgi-pm-perl \\\n"},{"id":"506418","messageId":"20241031234934.3451390-3-sandals@crustytoothpaste.net","threadId":"62432","inReplyTo":"20241031234934.3451390-1-sandals@crustytoothpaste.net","subject":"[PATCH 2/3] ci: remove clause for Ubuntu 16.04","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-10-31T23:49:33Z","receivedAt":"2024-10-31T23:55:37Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"We're no longer testing this version and it's well beyond regular LTS\nsupport now, so remove the stanza for it from the case statement in our\nCI code.\n\nSigned-off-by: brian m. carlson <sandals@crustytoothpaste.net>\n---\n ci/install-dependencies.sh | 5 -----\n 1 file changed, 5 deletions(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 126e570eb4..d30ae53a18 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*)\n \t\t${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE\n \n \tcase \"$distro\" in\n-\tubuntu-16.04)\n-\t\t# Does not support JGit, but we also don't really care about\n-\t\t# the others. We rather care whether Git still compiles and\n-\t\t# runs fine overall.\n-\t\t;;\n \tubuntu-*)\n \t\tmkdir --parents \"$CUSTOM_PATH\"\n \n"},{"id":"506419","messageId":"20241031234934.3451390-1-sandals@crustytoothpaste.net","threadId":"62432","inReplyTo":null,"subject":"[PATCH 0/3] Improve CI testing of older systems","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-10-31T23:49:31Z","receivedAt":"2024-10-31T23:55:37Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"In many cases, we're not testing some of the older Linux distributions\nthat we support.  However, we _are_ testing some old Linux distributions\nthat we _don't_ support.  That means that it's presently difficult for\nus to make sure our code works on all the systems we want it to and that\nwe're not accidentally requiring newer versions of dependencies than we\nclaim to support.\n\nThe first patch removes Ubuntu 16.04, which is out of regular LTS\nsupport.  The second removes the clause in the CI job for that OS.  The\nthird adds several new CI jobs to make sure we're adequately supporting\nolder Debian and RHEL-compatible distros, and documents the dates at\nwhich they lose support (so it's easy to know if we need to update\nthem).\n\nbrian m. carlson (3):\n  gitlab-ci: switch from Ubuntu 16.04 to 20.04\n  ci: remove clause for Ubuntu 16.04\n  Add additional CI jobs to avoid accidental breakage\n\n .github/workflows/main.yml |  9 +++++++++\n .gitlab-ci.yml             |  2 +-\n ci/install-dependencies.sh | 19 ++++++++++---------\n 3 files changed, 20 insertions(+), 10 deletions(-)\n\n"},{"id":"506420","messageId":"xmqqv7x74ws9.fsf@gitster.g","threadId":"62432","inReplyTo":"20241031234934.3451390-3-sandals@crustytoothpaste.net","subject":"Re: [PATCH 2/3] ci: remove clause for Ubuntu 16.04","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-11-01T00:34:14Z","receivedAt":"2024-11-01T00:34:18Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n\n> We're no longer testing this version and it's well beyond regular LTS\n> support now, so remove the stanza for it from the case statement in our\n> CI code.\n\nSomething like \"we replaced it with 20.04 which does not need the\ncorresponding special casing\" would be necessary to explain why this\nis a good change, as opposed to an equally plausible-looking patch\nthat replaces 16.04 with 20.04 and otherwise keeps the \"stanza\".\n\n> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>\n> ---\n>  ci/install-dependencies.sh | 5 -----\n>  1 file changed, 5 deletions(-)\n>\n> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\n> index 126e570eb4..d30ae53a18 100755\n> --- a/ci/install-dependencies.sh\n> +++ b/ci/install-dependencies.sh\n> @@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*)\n>  \t\t${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE\n>  \n>  \tcase \"$distro\" in\n> -\tubuntu-16.04)\n> -\t\t# Does not support JGit, but we also don't really care about\n> -\t\t# the others. We rather care whether Git still compiles and\n> -\t\t# runs fine overall.\n> -\t\t;;\n>  \tubuntu-*)\n>  \t\tmkdir --parents \"$CUSTOM_PATH\"\n>  \n"},{"id":"506421","messageId":"ZyQjB8iLM1FIDbGe@tapette.crustytoothpaste.net","threadId":"62432","inReplyTo":"xmqqv7x74ws9.fsf@gitster.g","subject":"Re: [PATCH 2/3] ci: remove clause for Ubuntu 16.04","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-11-01T00:38:31Z","receivedAt":"2024-11-01T00:38:34Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2024-11-01 at 00:34:14, Junio C Hamano wrote:\n> \"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n> \n> > We're no longer testing this version and it's well beyond regular LTS\n> > support now, so remove the stanza for it from the case statement in our\n> > CI code.\n> \n> Something like \"we replaced it with 20.04 which does not need the\n> corresponding special casing\" would be necessary to explain why this\n> is a good change, as opposed to an equally plausible-looking patch\n> that replaces 16.04 with 20.04 and otherwise keeps the \"stanza\".\n\nSure, I can mention that in v2.\n-- \nbrian m. carlson (they/them or he/him)\nToronto, Ontario, CA\n"},{"id":"506422","messageId":"xmqqplnf4wgh.fsf@gitster.g","threadId":"62432","inReplyTo":"xmqqv7x74ws9.fsf@gitster.g","subject":"Re: [PATCH 2/3] ci: remove clause for Ubuntu 16.04","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-11-01T00:41:18Z","receivedAt":"2024-11-01T00:41:21Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> \"brian m. carlson\" <sandals@crustytoothpaste.net> writes:\n>\n>> We're no longer testing this version and it's well beyond regular LTS\n>> support now, so remove the stanza for it from the case statement in our\n>> CI code.\n>\n> Something like \"we replaced it with 20.04 which does not need the\n> corresponding special casing\" would be necessary to explain why this\n> is a good change, as opposed to an equally plausible-looking patch\n> that replaces 16.04 with 20.04 and otherwise keeps the \"stanza\".\n\nAh, I take it back (or atleast a half of it).  \n\nWe have been already using 20.04 on the .github/ side, and 1/3\nremoved only from .gitlab-ci removing the last user of 16.04, so\npresumably this has already tested well for 20.04 and there is no\nneed to add \"corresponding special casing\".\n\nI'll keep reading the list backwards, this time resisting my\ntemptation to utter nonsense without thinking much, attempting to\ncatch up.\n\nThanks.\n\n\n>> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>\n>> ---\n>>  ci/install-dependencies.sh | 5 -----\n>>  1 file changed, 5 deletions(-)\n>>\n>> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\n>> index 126e570eb4..d30ae53a18 100755\n>> --- a/ci/install-dependencies.sh\n>> +++ b/ci/install-dependencies.sh\n>> @@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*)\n>>  \t\t${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE\n>>  \n>>  \tcase \"$distro\" in\n>> -\tubuntu-16.04)\n>> -\t\t# Does not support JGit, but we also don't really care about\n>> -\t\t# the others. We rather care whether Git still compiles and\n>> -\t\t# runs fine overall.\n>> -\t\t;;\n>>  \tubuntu-*)\n>>  \t\tmkdir --parents \"$CUSTOM_PATH\"\n>>  \n"},{"id":"506511","messageId":"ZyixnuBY5TcyrHEj@pks.im","threadId":"62432","inReplyTo":"20241031234934.3451390-1-sandals@crustytoothpaste.net","subject":"Re: [PATCH 0/3] Improve CI testing of older systems","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-11-04T11:36:04Z","receivedAt":"2024-11-04T11:36:16Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Thu, Oct 31, 2024 at 11:49:31PM +0000, brian m. carlson wrote:\n> In many cases, we're not testing some of the older Linux distributions\n> that we support.  However, we _are_ testing some old Linux distributions\n> that we _don't_ support.  That means that it's presently difficult for\n> us to make sure our code works on all the systems we want it to and that\n> we're not accidentally requiring newer versions of dependencies than we\n> claim to support.\n> \n> The first patch removes Ubuntu 16.04, which is out of regular LTS\n> support.  The second removes the clause in the CI job for that OS.  The\n> third adds several new CI jobs to make sure we're adequately supporting\n> older Debian and RHEL-compatible distros, and documents the dates at\n> which they lose support (so it's easy to know if we need to update\n> them).\n\nThe GitLab CI-related changes all look good to me, thanks! The GitHub\nones do, too, but I feel less qualified to comment on them.\n\nPatrick\n"}]}