{"thread":{"id":"66489","subject":"[PATCH 0/8] ci: some housekeeping and modernizations","startedAt":"2026-10-08T10:01:18Z","lastAt":"2026-10-08T18:18:14Z","messageCount":13,"participants":["Patrick Steinhardt","Todd Zullinger","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":8},"messages":[{"id":"554473","messageId":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","threadId":"66489","inReplyTo":null,"subject":"[PATCH 0/8] ci: some housekeeping and modernizations","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:18Z","receivedAt":"2026-10-08T10:01:18Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"Hi,\n\nthis patch series is a result from the discussions in [1]. It fixes a\ncouple of smaller issues in our CI and bumps jobs that use EOL Docker\nimages to instead use supported ones.\n\nPassing test runs can be found at [2] and [3] for GitLab and GitHub,\nrespectively.\n\nNote that I've also merged the Meson changes (ps/meson-improvements at\nce4a600322 (gitlab-ci: fix hanging MSVC jobs, 2026-09-24)) in there so\nthat GitLab passes, but those are not strictly required as a dependency.\n\nThanks!\n\nPatrick\n\n[1]: <20260906151137.GA328152@coredump.intra.peff.net>\n[2]: https://gitlab.com/gitlab-org/git/-/merge_requests/687\n[3]: https://github.com/git/git/pull/2445\n\n---\nPatrick Steinhardt (8):\n      t5004: skip SHA-1-only test in SHA-256 repository\n      ci: fix \"fedora-breaking-changes-meson\" job\n      ci: drop unused \"linux-clang\" logic\n      ci: switch away from unsupported i386/ubuntu image\n      ci: rename linux-TEST-vars job\n      ci: switch away from EOL'd Ubuntu version in linux-exotic\n      ci: drop now-dead Python 2 coverage\n      ci: drop redundant linux-reftable job\n\n .github/workflows/main.yml      | 12 +++---------\n .gitlab-ci.yml                  | 12 +++---------\n ci/install-dependencies.sh      |  8 ++------\n ci/lib.sh                       | 13 ++-----------\n ci/run-build-and-tests.sh       | 10 +++-------\n t/t5004-archive-corner-cases.sh |  2 +-\n 6 files changed, 14 insertions(+), 43 deletions(-)\n\n\n---\nbase-commit: 8e383dedc6bbc4fd7bbb203512fbf2eafc151e04\nchange-id: 20261008-pks-ci-housekeeping-4cf7fac3b0df\n\n\n"},{"id":"554474","messageId":"20261008-pks-ci-housekeeping-v1-1-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 1/8] t5004: skip SHA-1-only test in SHA-256 repository","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:19Z","receivedAt":"2026-10-08T10:01:19Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"One of the tests in t5004 extracts a ZIP file that contains some objects\nlarger than 4GB and then double-checks whether we can read and archive\nsuch an object. That test has a bunch of prerequities: it requires a 64\nbit `long`, unzip with 64-bit support and it only runs when EXPENSIVE is\nenabled. Consequently, not a lot of jobs even exercise this.\n\nOne of the jobs that does run it though our Fedora-based job, as it\nticks all the necessary boxes. But that job was silently broken: while\nthe intent was to run on Fedora with breaking changes enabled, they are\nin fact disabled due to a typo.\n\nWe're about to fix that typo in the next commit, but this will also\nuncover that the above test case is broken when running in SHA-256\nrepositories. The extracted objects are SHA-1 objects, so extracting\nthem into a SHA-256 repository is not going to yield anything good. So\nonce we fix the Fedora-based job to enable breaking changes, which will\nmake tests use SHA-256 by default, the test will break.\n\nFix this issue by adding the SHA1 prerequisite.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n t/t5004-archive-corner-cases.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t5004-archive-corner-cases.sh b/t/t5004-archive-corner-cases.sh\nindex 768b0ff85d..c9c879cc5f 100755\n--- a/t/t5004-archive-corner-cases.sh\n+++ b/t/t5004-archive-corner-cases.sh\n@@ -185,7 +185,7 @@ test_expect_success EXPENSIVE,UNZIP,UNZIP_ZIP64_SUPPORT \\\n \t\"$GIT_UNZIP\" -t many-big.zip\n '\n \n-test_expect_success EXPENSIVE,LONG_IS_64BIT,UNZIP,UNZIP_ZIP64_SUPPORT,ZIPINFO \\\n+test_expect_success EXPENSIVE,LONG_IS_64BIT,UNZIP,UNZIP_ZIP64_SUPPORT,ZIPINFO,SHA1 \\\n \t'zip archive with files bigger than 4GB' '\n \t# Pack created with:\n \t#   dd if=/dev/zero of=file bs=1M count=4100 && git hash-object -w file\n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554475","messageId":"20261008-pks-ci-housekeeping-v1-2-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 2/8] ci: fix \"fedora-breaking-changes-meson\" job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:20Z","receivedAt":"2026-10-08T10:01:20Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"The \"fedora-breaking-changes-meson\" job exercises Git with breaking\nchanges enabled on Fedora with Meson. There's a typo in our CI scripts\nthough, which has the effect that the build does not enable breaking\nchanges by accident.\n\nFix the typo.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n ci/run-build-and-tests.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex 6a3b43b366..bc5058c917 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -18,7 +18,7 @@ almalinux-*|debian-*|fedora-*|linux-*)\n esac\n \n case \"$jobname\" in\n-fedora-breaking-changes-musl|linux-breaking-changes)\n+fedora-breaking-changes-meson|linux-breaking-changes)\n \texport WITH_BREAKING_CHANGES=YesPlease\n \tMESONFLAGS=\"$MESONFLAGS -Dbreaking_changes=true\"\n \t;;\n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554476","messageId":"20261008-pks-ci-housekeeping-v1-3-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 3/8] ci: drop unused \"linux-clang\" logic","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:21Z","receivedAt":"2026-10-08T10:01:21Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"In d88d727143 (ci: drop linux-clang job, 2023-06-01) we have dropped the\n\"linux-clang\" job because another job already uses Clang anyway. But we\nforgot to also drop the logic in \"ci/run-build-and-tests.sh\", so we now\nhave some unused logic in there.\n\nDrop it.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n ci/run-build-and-tests.sh | 4 ----\n 1 file changed, 4 deletions(-)\n\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex bc5058c917..23e87cbbd6 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -37,10 +37,6 @@ linux-TEST-vars)\n \texport GIT_TEST_CHECKOUT_WORKERS=2\n \texport GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL=1\n \t;;\n-linux-clang)\n-\texport NO_RUST=UnfortunatelyYes\n-\texport GIT_TEST_DEFAULT_HASH=sha1\n-\t;;\n linux-sha256)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n \t;;\n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554477","messageId":"20261008-pks-ci-housekeeping-v1-4-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 4/8] ci: switch away from unsupported i386/ubuntu image","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:22Z","receivedAt":"2026-10-08T10:01:22Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"The linux32 job is used to exercise Git on a 32 bit platform. That job\nuses i386/ubuntu:20.04 though, and that version of Ubuntu is end of life\nnowadays. Furthermore, Ubuntu has dropped support for 32 bit entirely\nwith the 20.04 release, so we cannot easily upgrade it to a more recent\nimage anymore.\n\nSwitch the job over to use i386/debian instead. Note that starting with\nDebian 13, support for i386 has been reduced [1]. But Debian still\nreleases 32 bit Docker images for the latest release nowadays, so we\nwill have coverage until at least 2030.\n\n[1]: https://www.debian.org/releases/trixie/release-notes/issues.en.html#i386-reduced-support\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml | 3 +--\n .gitlab-ci.yml             | 3 +--\n ci/install-dependencies.sh | 6 +-----\n ci/lib.sh                  | 2 +-\n 4 files changed, 4 insertions(+), 10 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex b229739be8..6d1e37c8f1 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -431,9 +431,8 @@ jobs:\n           cc: gcc\n         - jobname: linux-musl-meson\n           image: alpine:latest\n-        # Supported until 2025-04-02.\n         - jobname: linux32\n-          image: i386/ubuntu:20.04\n+          image: i386/debian:latest\n         # A RHEL 8 compatible distro.  Supported until 2029-05-31.\n         - jobname: almalinux-8\n           image: almalinux:8\ndiff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\nindex 3f24835500..7d972f0c8b 100644\n--- a/.gitlab-ci.yml\n+++ b/.gitlab-ci.yml\n@@ -65,9 +65,8 @@ test:linux:\n         CC: gcc\n       - jobname: linux-musl-meson\n         image: alpine:latest\n-        # Supported until 2025-04-02.\n       - jobname: linux32\n-        image: i386/ubuntu:20.04\n+        image: i386/debian:latest\n       # A RHEL 8 compatible distro.  Supported until 2029-05-31.\n       - jobname: almalinux-8\n         image: almalinux:8\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex d57dce5663..8783b48951 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -39,7 +39,7 @@ fedora-*|almalinux-*)\n \tdnf -yq update >/dev/null &&\n \tdnf -yq install shadow-utils sudo make pkg-config gcc findutils diffutils perl python3 gawk gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel $MESON_DEPS cargo >/dev/null\n \t;;\n-ubuntu-*|i386/ubuntu-*|debian-*)\n+ubuntu-*|i386/debian-*|debian-*)\n \t# Required so that apt doesn't wait for user input on certain packages.\n \texport DEBIAN_FRONTEND=noninteractive\n \n@@ -48,10 +48,6 @@ ubuntu-*|i386/ubuntu-*|debian-*)\n \t\tSVN='libsvn-perl subversion'\n \t\tLANGUAGES='language-pack-is'\n \t\t;;\n-\ti386/ubuntu-*)\n-\t\tSVN=\n-\t\tLANGUAGES='language-pack-is'\n-\t\t;;\n \t*)\n \t\tSVN='libsvn-perl subversion'\n \t\tLANGUAGES='locales-all'\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex c6ccbf8c17..d99e7b9da1 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -262,7 +262,7 @@ then\n \t\tCI_OS_NAME=osx\n \t\tJOBS=$(nproc)\n \t\t;;\n-\t*,almalinux:*|*,alpine:*|*,debian:*|*,fedora:*|*,ubuntu:*|*,i386/ubuntu:*)\n+\t*,almalinux:*|*,alpine:*|*,debian:*|*,fedora:*|*,ubuntu:*|*,i386/debian:*)\n \t\tCI_OS_NAME=linux\n \t\tJOBS=$(nproc)\n \t\t;;\n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554478","messageId":"20261008-pks-ci-housekeeping-v1-5-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 5/8] ci: rename linux-TEST-vars job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:23Z","receivedAt":"2026-10-08T10:01:23Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"The \"linux-TEST-vars\" job exercises Git with a bunch of non-default\noptions enabled. The name of that job makes you want to cry though due\nto the weird upper-casing and because it doesn't really tell you what it\neven intends to do.\n\nRename the job to \"linux-exotic\" instead.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml | 2 +-\n .gitlab-ci.yml             | 2 +-\n ci/run-build-and-tests.sh  | 2 +-\n 3 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 6d1e37c8f1..d7a301ec98 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -408,7 +408,7 @@ jobs:\n         - jobname: linux-reftable\n           image: ubuntu:rolling\n           cc: clang\n-        - jobname: linux-TEST-vars\n+        - jobname: linux-exotic\n           image: ubuntu:20.04\n           cc: gcc\n           cc_package: gcc-8\ndiff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\nindex 7d972f0c8b..27a16ed086 100644\n--- a/.gitlab-ci.yml\n+++ b/.gitlab-ci.yml\n@@ -42,7 +42,7 @@ test:linux:\n       - jobname: linux-reftable\n         image: ubuntu:rolling\n         CC: clang\n-      - jobname: linux-TEST-vars\n+      - jobname: linux-exotic\n         image: ubuntu:20.04\n         CC: gcc\n         CC_PACKAGE: gcc-8\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex 23e87cbbd6..9381ff8893 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -22,7 +22,7 @@ fedora-breaking-changes-meson|linux-breaking-changes)\n \texport WITH_BREAKING_CHANGES=YesPlease\n \tMESONFLAGS=\"$MESONFLAGS -Dbreaking_changes=true\"\n \t;;\n-linux-TEST-vars)\n+linux-exotic)\n \texport OPENSSL_SHA1_UNSAFE=YesPlease\n \texport GIT_TEST_SPLIT_INDEX=yes\n \texport GIT_TEST_FULL_IN_PACK_ARRAY=true\n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554479","messageId":"20261008-pks-ci-housekeeping-v1-6-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 6/8] ci: switch away from EOL'd Ubuntu version in linux-exotic","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:24Z","receivedAt":"2026-10-08T10:01:24Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"The \"linux-exotic\" job still uses Ubuntu 20.04, which is end of life\nnowadays and starting to show some cracks. Switch it over to use the\n\"latest\" tag instead so that we don't have to constantly update it\nanymore.\n\nNow arguably, this reduces test coverage for old versions of Ubuntu.\nBut \"latest\" at least points to the most up-to-date LTS release of\nUbuntu, compared to the \"rolling\" tag that uses the latest release\nregardless of the LTS status. So while \"latest\" and \"rolling\" are the\nsame right now, that's not always the case.\n\nFurthermore, we have other jobs that test with ancient versions of\nLinux, like for example the one that uses AlmaLinux 8 (2021, originally\ntracking RHEL 8 from 2019) or Debian 12 (2023).\n\nNote that this also requires us to switch away from GCC 8, which is not\nsupported by Ubuntu 26.04 anymore. Instead we simply use the default\nversion of GCC.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml | 4 +---\n .gitlab-ci.yml             | 4 +---\n 2 files changed, 2 insertions(+), 6 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex d7a301ec98..5b772dab55 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -409,9 +409,7 @@ jobs:\n           image: ubuntu:rolling\n           cc: clang\n         - jobname: linux-exotic\n-          image: ubuntu:20.04\n-          cc: gcc\n-          cc_package: gcc-8\n+          image: ubuntu:latest\n         - jobname: linux-breaking-changes\n           cc: gcc\n           image: ubuntu:rolling\ndiff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\nindex 27a16ed086..de40434ae3 100644\n--- a/.gitlab-ci.yml\n+++ b/.gitlab-ci.yml\n@@ -43,9 +43,7 @@ test:linux:\n         image: ubuntu:rolling\n         CC: clang\n       - jobname: linux-exotic\n-        image: ubuntu:20.04\n-        CC: gcc\n-        CC_PACKAGE: gcc-8\n+        image: ubuntu:latest\n       - jobname: linux-breaking-changes\n         image: ubuntu:rolling\n         CC: gcc\n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554480","messageId":"20261008-pks-ci-housekeeping-v1-7-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 7/8] ci: drop now-dead Python 2 coverage","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:25Z","receivedAt":"2026-10-08T10:01:25Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"In the preceding commit we've dropped the last job that still used\nUbuntu 20.04. We still had some conditional logic for that specific\nimage that made us use Python 2 instead of Python 3, but this is dead\ncode now.\n\nWe could of course exercise Python 2 in any of our other CI jobs. But it\nreached end of life in 2020 already, and none of the distros that we use\nhave it packaged anymore. Furthermore, it seems like the world has\nfinally adapted to Python 3. So it doesn't feel all that useful to still\nexercise it.\n\nDrop the logic and instead use Python 3 unconditionally.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n ci/install-dependencies.sh |  2 +-\n ci/lib.sh                  | 11 +----------\n 2 files changed, 2 insertions(+), 11 deletions(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 8783b48951..4b1733ad15 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -61,7 +61,7 @@ ubuntu-*|i386/debian-*|debian-*)\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 \t\tlibsecret-1-dev libpcre2-dev meson ninja-build pkg-config cargo \\\n-\t\t${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE\n+\t\t${CC_PACKAGE:-${CC:-gcc}} python3\n \n \t# Starting with Ubuntu 25.10, sudo can now be provided via either\n \t# sudo(1) or sudo-rs(1), with the latter being the default. The problem\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex d99e7b9da1..3ec10488d4 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -335,16 +335,7 @@ esac\n \n case \"$distro\" in\n ubuntu-*)\n-\t# Python 2 is end of life, and Ubuntu 23.04 and newer don't actually\n-\t# have it anymore. We thus only test with Python 2 on older LTS\n-\t# releases.\n-\tif test \"$distro\" = \"ubuntu-20.04\"\n-\tthen\n-\t\tPYTHON_PACKAGE=python2\n-\telse\n-\t\tPYTHON_PACKAGE=python3\n-\tfi\n-\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/$PYTHON_PACKAGE\"\n+\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python3\"\n \n \texport GIT_TEST_HTTPD=true\n \n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554481","messageId":"20261008-pks-ci-housekeeping-v1-8-baf015c589c0@pks.im","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-0-baf015c589c0@pks.im","subject":"[PATCH 8/8] ci: drop redundant linux-reftable job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-10-08T10:01:26Z","receivedAt":"2026-10-08T10:01:26Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"The \"linux-reftable\" job exercises Git with reftables as its default\nbackend. But this job is arguably redundant because we already have the\n\"linux-reftable-leaks\" job that exercises reftables with the leak\nsanitizer enabled, and it is unlikely that we will catch any extra bugs\nwith the leak sanitizer disabled.\n\nDrop the job.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml | 3 ---\n .gitlab-ci.yml             | 3 ---\n ci/run-build-and-tests.sh  | 2 +-\n 3 files changed, 1 insertion(+), 7 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 5b772dab55..4be3f2337d 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -405,9 +405,6 @@ jobs:\n         - jobname: linux-sha256\n           image: ubuntu:rolling\n           cc: clang\n-        - jobname: linux-reftable\n-          image: ubuntu:rolling\n-          cc: clang\n         - jobname: linux-exotic\n           image: ubuntu:latest\n         - jobname: linux-breaking-changes\ndiff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\nindex de40434ae3..f0424bab5b 100644\n--- a/.gitlab-ci.yml\n+++ b/.gitlab-ci.yml\n@@ -39,9 +39,6 @@ test:linux:\n       - jobname: linux-sha256\n         image: ubuntu:rolling\n         CC: clang\n-      - jobname: linux-reftable\n-        image: ubuntu:rolling\n-        CC: clang\n       - jobname: linux-exotic\n         image: ubuntu:latest\n       - jobname: linux-breaking-changes\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex 9381ff8893..df63e79319 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -40,7 +40,7 @@ linux-exotic)\n linux-sha256)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n \t;;\n-linux-reftable|linux-reftable-leaks|osx-reftable)\n+linux-reftable-leaks|osx-reftable)\n \texport GIT_TEST_DEFAULT_REF_STORAGE_FORMAT=reftable\n \t;;\n \n\n-- \n2.56.0.406.ga2d225a756.dirty\n\n\n"},{"id":"554506","messageId":"20261008150336.CzZS-oEZ@teonanacatl.net","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-4-baf015c589c0@pks.im","subject":"Re: [PATCH 4/8] ci: switch away from unsupported i386/ubuntu image","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2026-10-08T15:03:36Z","receivedAt":"2026-10-08T15:03:36Z","isPatch":true,"sender":{"key":"tmz@pobox.com","avatar":"https://avatars.githubusercontent.com/u/806319?v=4"},"body":"Patrick Steinhardt wrote:\n> The linux32 job is used to exercise Git on a 32 bit platform. That job\n> uses i386/ubuntu:20.04 though, and that version of Ubuntu is end of life\n> nowadays. Furthermore, Ubuntu has dropped support for 32 bit entirely\n> with the 20.04 release, so we cannot easily upgrade it to a more recent\n> image anymore.\n\nShould \"with the 20.04 release\" be 22.04 (or whatever\nrelease dropped i386)?\n\nWe've been using 20.04, so i386 support wasn't dropped\nthere, I presume.\n\nYou could say \"after the 20.04 release\" perhaps, but that\nseems less useful.  In that case, you avoid using a version\nat all, e.g. \"dropped support ...  entirely in subsequent\nreleases\" or something.\n\nCheers,\n\n-- \nTodd\n\n"},{"id":"554518","messageId":"xmqqa4oo1313.fsf@gitster.g","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-1-baf015c589c0@pks.im","subject":"Re: [PATCH 1/8] t5004: skip SHA-1-only test in SHA-256 repository","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-10-08T18:05:28Z","receivedAt":"2026-10-08T18:05:28Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> One of the tests in t5004 extracts a ZIP file that contains some objects\n> larger than 4GB and then double-checks whether we can read and archive\n> such an object. That test has a bunch of prerequities: it requires a 64\n> bit `long`, unzip with 64-bit support and it only runs when EXPENSIVE is\n> enabled. Consequently, not a lot of jobs even exercise this.\n>\n> One of the jobs that does run it though our Fedora-based job, as it\n\n\"One of the jobs that does run it though\" IS \"our Fedora-based job\"?\n\n> ticks all the necessary boxes. But that job was silently broken: while\n> the intent was to run on Fedora with breaking changes enabled, they are\n> in fact disabled due to a typo.\n>\n> We're about to fix that typo in the next commit, but this will also\n> uncover that the above test case is broken when running in SHA-256\n> repositories. The extracted objects are SHA-1 objects, so extracting\n> them into a SHA-256 repository is not going to yield anything good. So\n> once we fix the Fedora-based job to enable breaking changes, which will\n> make tests use SHA-256 by default, the test will break.\n>\n> Fix this issue by adding the SHA1 prerequisite.\n>\n> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n> ---\n>  t/t5004-archive-corner-cases.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/t/t5004-archive-corner-cases.sh b/t/t5004-archive-corner-cases.sh\n> index 768b0ff85d..c9c879cc5f 100755\n> --- a/t/t5004-archive-corner-cases.sh\n> +++ b/t/t5004-archive-corner-cases.sh\n> @@ -185,7 +185,7 @@ test_expect_success EXPENSIVE,UNZIP,UNZIP_ZIP64_SUPPORT \\\n>  \t\"$GIT_UNZIP\" -t many-big.zip\n>  '\n>  \n> -test_expect_success EXPENSIVE,LONG_IS_64BIT,UNZIP,UNZIP_ZIP64_SUPPORT,ZIPINFO \\\n> +test_expect_success EXPENSIVE,LONG_IS_64BIT,UNZIP,UNZIP_ZIP64_SUPPORT,ZIPINFO,SHA1 \\\n>  \t'zip archive with files bigger than 4GB' '\n>  \t# Pack created with:\n>  \t#   dd if=/dev/zero of=file bs=1M count=4100 && git hash-object -w file\n\n"},{"id":"554520","messageId":"xmqq4iew12pw.fsf@gitster.g","threadId":"66489","inReplyTo":"20261008150336.CzZS-oEZ@teonanacatl.net","subject":"Re: [PATCH 4/8] ci: switch away from unsupported i386/ubuntu image","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-10-08T18:12:11Z","receivedAt":"2026-10-08T18:12:11Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Todd Zullinger <tmz@pobox.com> writes:\n\n> Patrick Steinhardt wrote:\n>> The linux32 job is used to exercise Git on a 32 bit platform. That job\n>> uses i386/ubuntu:20.04 though, and that version of Ubuntu is end of life\n>> nowadays. Furthermore, Ubuntu has dropped support for 32 bit entirely\n>> with the 20.04 release, so we cannot easily upgrade it to a more recent\n>> image anymore.\n>\n> Should \"with the 20.04 release\" be 22.04 (or whatever\n> release dropped i386)?\n\nFWIW, I read the above to mean \"32bit support, together with 20.04,\nare now gone\", and did not feel any need for rephrasing.  But\nreading it again, yes, it can be read both ways.\n\n    Ubuntu has dropped support for 32-bit entirely, together with\n    20.04 release, so upgrading it to a more recent image would not\n    help us keeping 32-bit support.\n\nperhaps?\n\n\n\n"},{"id":"554521","messageId":"xmqqzewoys2h.fsf@gitster.g","threadId":"66489","inReplyTo":"20261008-pks-ci-housekeeping-v1-8-baf015c589c0@pks.im","subject":"Re: [PATCH 8/8] ci: drop redundant linux-reftable job","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-10-08T18:18:14Z","receivedAt":"2026-10-08T18:18:14Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> The \"linux-reftable\" job exercises Git with reftables as its default\n> backend. But this job is arguably redundant because we already have the\n> \"linux-reftable-leaks\" job that exercises reftables with the leak\n> sanitizer enabled, and it is unlikely that we will catch any extra bugs\n> with the leak sanitizer disabled.\n>\n> Drop the job.\n>\n> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n> ---\n>  .github/workflows/main.yml | 3 ---\n>  .gitlab-ci.yml             | 3 ---\n>  ci/run-build-and-tests.sh  | 2 +-\n>  3 files changed, 1 insertion(+), 7 deletions(-)\n\nAs linux-reftable-leaks job uses NO_{CVS,SVN,PR}_TESTS in ci/lib.sh\nto disable tests on these foreign-scm interoperability tests, this\nchange means reftable is no longer tested with them at all, no?\n\nNot that I personally see specific value in testing git-p4 with both\nreftable and reffiles backend, the loss of coverage needs to be\nnoted, if not justified, in the proposed commit log message.\n\nOther than that, nice thinking.\n\nThanks.\n\n"}]}