From: Patrick Steinhardt <ps@pks.im>
To: git@vger.kernel.org
Cc: Han-Wen Nienhuys <hanwenn@gmail.com>,
Josh Steadmon <steadmon@google.com>,
Luca Milanesio <luca.milanesio@gmail.com>,
Eric Sunshine <sunshine@sunshineco.com>,
Toon Claes <toon@iotcl.com>, Justin Tobler <jltobler@gmail.com>
Subject: [PATCH v3 00/13] t: exercise Git/JGit reftable compatibility
Date: Thu, 11 Apr 2024 11:09:52 +0200 [thread overview]
Message-ID: <cover.1712825204.git.ps@pks.im> (raw)
In-Reply-To: <cover.1712235356.git.ps@pks.im>
[-- Attachment #1: Type: text/plain, Size: 7937 bytes --]
Hi,
this is the third version of my patch series that introduces
compatibility checks for the CGit/JGit refatble implementations.
Changes compared to v2:
- Adjusted commit subject for the skipping-sudo patch.
- Broken an overly long line in "install-dependencies.sh".
- Fixed tests that depend on custom binaries not running on GitLab
CI due to the unprivileged-user setup.
- Fixed some typos.
CI jobs for this version:
- https://gitlab.com/gitlab-org/git/-/pipelines/1248875682
- https://github.com/git/git/actions/runs/8643984413
Thanks for all the feedback!
Patrick
Patrick Steinhardt (13):
ci: rename "runs_on_pool" to "distro"
ci: expose distro name in dockerized GitHub jobs
ci: skip sudo when we are already root
ci: drop duplicate package installation for "linux-gcc-default"
ci: convert "install-dependencies.sh" to use "/bin/sh"
ci: merge custom PATH directories
ci: fix setup of custom path for GitLab CI
ci: merge scripts which install dependencies
ci: make Perforce binaries executable for all users
ci: install JGit dependency
t06xx: always execute backend-specific tests
t0610: fix non-portable variable assignment
t0612: add tests to exercise Git/JGit reftable compatibility
.github/workflows/main.yml | 8 +-
.gitlab-ci.yml | 6 +-
ci/install-dependencies.sh | 101 +++++++++++++------
ci/install-docker-dependencies.sh | 46 ---------
ci/lib.sh | 14 +--
t/t0600-reffiles-backend.sh | 8 +-
t/t0601-reffiles-pack-refs.sh | 9 +-
t/t0610-reftable-basics.sh | 15 ++-
t/t0612-reftable-jgit-compatibility.sh | 132 +++++++++++++++++++++++++
9 files changed, 229 insertions(+), 110 deletions(-)
delete mode 100755 ci/install-docker-dependencies.sh
create mode 100755 t/t0612-reftable-jgit-compatibility.sh
Range-diff against v2:
1: 89723b6812 = 1: 46502bbe22 ci: rename "runs_on_pool" to "distro"
2: e60a40bd65 = 2: d076ed9857 ci: expose distro name in dockerized GitHub jobs
3: 16603d40fd ! 3: cc0c29052f ci: allow skipping sudo on dockerized jobs
@@ Metadata
Author: Patrick Steinhardt <ps@pks.im>
## Commit message ##
- ci: allow skipping sudo on dockerized jobs
+ ci: skip sudo when we are already root
Our "install-dependencies.sh" script is executed by non-dockerized jobs
to install dependencies. These jobs don't run with "root" permissions,
4: b4f6d6d3bf = 4: 803f5020e0 ci: drop duplicate package installation for "linux-gcc-default"
5: 6abc53bf51 ! 5: d2745e9438 ci: convert "install-dependencies.sh" to use "/bin/sh"
@@ ci/install-dependencies.sh: ubuntu-*)
- cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
- popd
+ wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
-+ tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" -C "$GIT_LFS_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
++ tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" \
++ -C "$GIT_LFS_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
+ rm "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
;;
macos-*)
6: d9be4db56f ! 6: 61f108d954 ci: merge custom PATH directories
@@ ci/install-dependencies.sh: ubuntu-*)
- mkdir --parents "$GIT_LFS_PATH"
wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
-- tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" -C "$GIT_LFS_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
-+ tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
+ tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" \
+- -C "$GIT_LFS_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
++ -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
rm "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
;;
macos-*)
-: ---------- > 7: ef61b578da ci: fix setup of custom path for GitLab CI
7: 4a90c003d1 ! 8: 7748f87f8c ci: merge scripts which install dependencies
@@ .github/workflows/main.yml: jobs:
if: failure() && env.FAILED_TEST_ARTIFACTS != ''
## .gitlab-ci.yml ##
-@@ .gitlab-ci.yml: workflow:
- test:linux:
- image: $image
+@@ .gitlab-ci.yml: test:linux:
+ variables:
+ CUSTOM_PATH: "/custom"
before_script:
- - ./ci/install-docker-dependencies.sh
+ - ./ci/install-dependencies.sh
@@ ci/install-dependencies.sh: then
mkdir --parents "$CUSTOM_PATH"
wget --quiet --directory-prefix="$CUSTOM_PATH" \
@@ ci/install-dependencies.sh: ubuntu-*)
- tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
+ -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
rm "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
;;
+ubuntu32-*)
8: 5240046a0f ! 9: f7399382f2 ci: make Perforce binaries executable for all users
@@ ci/install-dependencies.sh: ubuntu-*)
+ chmod a+x "$CUSTOM_PATH/p4d" "$CUSTOM_PATH/p4"
wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
- tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
+ tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" \
9: 29ceb623b9 ! 10: b835ff8b78 ci: install JGit dependency
@@ ci/install-dependencies.sh: ubuntu-*)
libemail-valid-perl libio-socket-ssl-perl libnet-smtp-ssl-perl libdbd-sqlite3-perl libcgi-pm-perl \
${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE
@@ ci/install-dependencies.sh: ubuntu-*)
- wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
- tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
+ tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" \
+ -C "$CUSTOM_PATH" --strip-components=1 "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs"
rm "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
+
+ wget --quiet "$JGITWHENCE" --output-document="$CUSTOM_PATH/jgit"
10: fc3472cdf3 = 11: 7136c8b6c2 t06xx: always execute backend-specific tests
11: cedf5929d1 ! 12: cf4ee9c427 t0610: fix non-portable variable assignment
@@ Commit message
Such an assignment has been introduced in t0610. The issue wasn't
detected for a while because this test used to only run when the
- GIT_TEST_DEFAULT_REF_FORMAT environment variable was set to "refatble".
+ GIT_TEST_DEFAULT_REF_FORMAT environment variable was set to "reftable".
We have dropped that requirement now though, meaning that it runs
- unconditionally, inclluding on jobs which use such older versions of
+ unconditionally, including on jobs which use such older versions of
Ubuntu.
We have worked around such issues in the past, e.g. in ebee5580ca
12: 160b026e69 ! 13: a9cd20eebc t0612: add tests to exercise Git/JGit reftable compatibility
@@ t/t0612-reftable-jgit-compatibility.sh (new)
+
+if ! test_have_prereq JGIT
+then
-+ skip_all='skipping reftable JGit tests'
++ skip_all='skipping reftable JGit tests; JGit is not present in PATH'
+ test_done
+fi
+
--
2.44.GIT
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-04-11 9:09 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-04 13:25 [PATCH 00/12] t: exercise Git/JGit reftable compatibility Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 01/12] ci: rename "runs_on_pool" to "distro" Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 02/12] ci: expose distro name in dockerized GitHub jobs Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 03/12] ci: allow skipping sudo on dockerized jobs Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 04/12] ci: drop duplicate package installation for "linux-gcc-default" Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 05/12] ci: convert "install-dependencies.sh" to use "/bin/sh" Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 06/12] ci: merge custom PATH directories Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 07/12] ci: merge scripts which install dependencies Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 08/12] ci: make Perforce binaries executable for all users Patrick Steinhardt
2024-04-05 20:01 ` Josh Steadmon
2024-04-08 5:48 ` Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 09/12] ci: install JGit dependency Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 10/12] t06xx: always execute backend-specific tests Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 11/12] t0610: fix non-portable variable assignment Patrick Steinhardt
2024-04-05 9:14 ` Eric Sunshine
2024-04-05 9:40 ` Patrick Steinhardt
2024-04-05 16:02 ` Junio C Hamano
2024-04-05 16:12 ` [PATCH] CodingGuidelines: quote assigned value with "local" and "export" Junio C Hamano
2024-04-05 16:21 ` Junio C Hamano
2024-04-05 17:48 ` Jeff King
2024-04-05 19:36 ` Junio C Hamano
2024-04-05 23:15 ` Junio C Hamano
2024-04-07 1:23 ` Jeff King
2024-04-05 16:44 ` [PATCH 11/12] t0610: fix non-portable variable assignment Patrick Steinhardt
2024-04-04 13:25 ` [PATCH 12/12] t0612: add tests to exercise Git/JGit reftable compatibility Patrick Steinhardt
2024-04-04 21:40 ` Han-Wen Nienhuys
2024-04-05 9:41 ` Patrick Steinhardt
2024-04-06 13:03 ` Han-Wen Nienhuys
2024-04-06 15:53 ` Patrick Steinhardt
2024-04-08 5:24 ` Patrick Steinhardt
2024-04-04 13:37 ` [PATCH 00/12] t: " Patrick Steinhardt
2024-04-08 6:45 ` [PATCH v2 " Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 02/12] ci: expose distro name in dockerized GitHub jobs Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 03/12] ci: allow skipping sudo on dockerized jobs Patrick Steinhardt
2024-04-10 16:53 ` Toon claes
2024-04-10 17:21 ` Junio C Hamano
2024-04-11 8:55 ` Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 04/12] ci: drop duplicate package installation for "linux-gcc-default" Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 05/12] ci: convert "install-dependencies.sh" to use "/bin/sh" Patrick Steinhardt
2024-04-10 20:46 ` Justin Tobler
2024-04-11 8:55 ` Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 06/12] ci: merge custom PATH directories Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 07/12] ci: merge scripts which install dependencies Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 08/12] ci: make Perforce binaries executable for all users Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 09/12] ci: install JGit dependency Patrick Steinhardt
2024-04-08 6:46 ` [PATCH v2 10/12] t06xx: always execute backend-specific tests Patrick Steinhardt
2024-04-08 6:47 ` [PATCH v2 11/12] t0610: fix non-portable variable assignment Patrick Steinhardt
2024-04-08 6:57 ` Eric Sunshine
2024-04-08 8:56 ` Patrick Steinhardt
2024-04-08 6:47 ` [PATCH v2 12/12] t0612: add tests to exercise Git/JGit reftable compatibility Patrick Steinhardt
2024-04-08 7:10 ` Eric Sunshine
2024-04-08 16:07 ` Junio C Hamano
2024-04-08 16:19 ` Eric Sunshine
2024-04-08 16:29 ` Eric Sunshine
2024-04-08 16:22 ` Patrick Steinhardt
2024-04-08 17:26 ` Jeff King
2024-04-08 21:52 ` Junio C Hamano
2024-04-08 21:51 ` Junio C Hamano
2024-04-10 20:43 ` Justin Tobler
2024-04-11 8:55 ` Patrick Steinhardt
2024-04-08 6:47 ` [PATCH v2 01/12] ci: rename "runs_on_pool" to "distro" Patrick Steinhardt
2024-04-09 2:17 ` [PATCH v2 00/12] t: exercise Git/JGit reftable compatibility Junio C Hamano
2024-04-09 3:43 ` Patrick Steinhardt
2024-04-09 5:34 ` Junio C Hamano
2024-04-09 6:07 ` Patrick Steinhardt
2024-04-09 9:57 ` [PATCH 0/2] t0610: fix umask tests Patrick Steinhardt
2024-04-09 9:57 ` [PATCH 1/2] t0610: make `--shared=` tests reusable Patrick Steinhardt
2024-04-09 9:57 ` [PATCH 2/2] t0610: execute git-pack-refs(1) with specified umask Patrick Steinhardt
2024-04-10 21:49 ` [PATCH 0/2] t0610: fix umask tests Justin Tobler
2024-04-11 9:09 ` Patrick Steinhardt [this message]
2024-04-11 9:09 ` [PATCH v3 01/13] ci: rename "runs_on_pool" to "distro" Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 02/13] ci: expose distro name in dockerized GitHub jobs Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 03/13] ci: skip sudo when we are already root Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 04/13] ci: drop duplicate package installation for "linux-gcc-default" Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 05/13] ci: convert "install-dependencies.sh" to use "/bin/sh" Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 06/13] ci: merge custom PATH directories Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 07/13] ci: fix setup of custom path for GitLab CI Patrick Steinhardt
2024-04-11 10:06 ` Eric Sunshine
2024-04-11 10:26 ` Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 08/13] ci: merge scripts which install dependencies Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 09/13] ci: make Perforce binaries executable for all users Patrick Steinhardt
2024-04-11 9:10 ` [PATCH v3 10/13] ci: install JGit dependency Patrick Steinhardt
2024-04-11 9:11 ` [PATCH v3 11/13] t06xx: always execute backend-specific tests Patrick Steinhardt
2024-04-11 9:11 ` [PATCH v3 12/13] t0610: fix non-portable variable assignment Patrick Steinhardt
2024-04-11 9:11 ` [PATCH v3 13/13] t0612: add tests to exercise Git/JGit reftable compatibility Patrick Steinhardt
2024-04-12 4:43 ` [PATCH v4 00/13] t: " Patrick Steinhardt
2024-04-12 4:43 ` [PATCH v4 01/13] ci: rename "runs_on_pool" to "distro" Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 02/13] ci: expose distro name in dockerized GitHub jobs Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 03/13] ci: skip sudo when we are already root Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 04/13] ci: drop duplicate package installation for "linux-gcc-default" Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 05/13] ci: convert "install-dependencies.sh" to use "/bin/sh" Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 06/13] ci: merge custom PATH directories Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 07/13] ci: fix setup of custom path for GitLab CI Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 08/13] ci: merge scripts which install dependencies Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 09/13] ci: make Perforce binaries executable for all users Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 10/13] ci: install JGit dependency Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 11/13] t06xx: always execute backend-specific tests Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 12/13] t0610: fix non-portable variable assignment Patrick Steinhardt
2024-04-12 4:44 ` [PATCH v4 13/13] t0612: add tests to exercise Git/JGit reftable compatibility Patrick Steinhardt
2024-05-03 18:42 ` [PATCH v4 00/13] t: " Justin Tobler
2024-05-03 18:48 ` Patrick Steinhardt
2024-05-03 18:57 ` Patrick Steinhardt
2024-05-03 19:35 ` Justin Tobler
2024-05-03 19:49 ` Patrick Steinhardt
2024-05-04 17:32 ` Justin Tobler
2024-05-06 5:53 ` Patrick Steinhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1712825204.git.ps@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=hanwenn@gmail.com \
--cc=jltobler@gmail.com \
--cc=luca.milanesio@gmail.com \
--cc=steadmon@google.com \
--cc=sunshine@sunshineco.com \
--cc=toon@iotcl.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).