nodejs / nodejs/build

git version(s) for V8 CI

Open
#4,476 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build-agenda platform:linux-intel platform:linuxONE platform:ppc
Dominant language
Jinja
Stars
542
Forks
185
Avg merge
22h 15m
Merged PRs (30d)
4

Description

Originally posted by @richardlau in #4462

From @aduh95,

FYI I've tried https://github.com/nodejs/node/pull/66070 with https://github.com/nodejs/node/pull/65891 in https://ci.nodejs.org/job/node-test-commit-v8-linux/7380/nodes=benchmark-ubuntu2404-intel-64,v8test=v8test/, but it shows

Error: Command 'git -c color.ui=never checkout --quiet --end-of-options 25c29f04c9127e1ca09e6c1181f74850aa7f118b' returned non-zero  exit status 1 in ./v8/third_party/libpfm4
error: pathspec '--end-of-options' did not match any file(s) known to git

Would that indicate an incompatible version of git? --end-of-options was added in https://gitlab.com/git-scm/git/-/blob/HEAD/Documentation/RelNotes/2.44.0.adoc

AFAICT use of --end-of-options has come from https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/8401307. On our V8 CI this is causing the Ubuntu 24.04 x64 build to fail but the RHEL 8 ppc64le and s390x builds still work, which appear to be due to the version of git installed.

From the CI I ran for https://github.com/nodejs/node/pull/66070, which was before depot_tools adopted --end-of-options,

17:55:55 git update is recommended.
17:55:55 Installed git version is 2.43.0;
17:55:55 depot_tools recommends version 2.46.0 or later.
17:55:55 Disable this warning by setting the GCLIENT_SUPPRESS_GIT_VERSION_WARNING
17:55:55 environment variable to 1.
17:58:00 git update is recommended.
17:58:00 Installed git version is 2.43.7;
17:58:00 depot_tools recommends version 2.46.0 or later.
17:58:00 Disable this warning by setting the GCLIENT_SUPPRESS_GIT_VERSION_WARNING
17:58:00 environment variable to 1.

so the version of git on Ubuntu 24.04 is slightly older than the one in RHEL 8, but both are less than the depot_tools recommended version.

To workaround the immediate problem the job is now pinning the version of depot_tools in line with what is in deps/v8/DEPS (or any override we set in tools/v8/fetch_deps.py) but this only means delaying picking up newer versions of depot_tools until Node.js attempts to pick up a newer version of V8 which has rolled depot_tools forward.

We might need to start planning to shift the V8 CI:

  • for x64 from Ubuntu 24.04 to 26.04.
  • for ppc64le/s390x from RHEL 8 to RHEL 9 (or even 10).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with deps/v8/DEPS and tools/v8/fetch_deps.py, then compare the git versions and depot_tools behavior in the referenced Ubuntu 24.04, RHEL 8 ppc64le, and RHEL 8 s390x CI jobs. Done should include a concrete plan for compatible git and CI operating-system versions, with the affected V8 CI jobs identified and verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
git
Domain
build-system, ci-cd, devops, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.