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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.