nodejs / node-core-utils

CLI tools for Node.js Core collaborators
https://nodejs.github.io/node-core-utils/
MIT License
228 stars 105 forks source link

`git node vote` fails with `ERR_INVALID_ARG_TYPE` #753

Closed richardlau closed 2 days ago

richardlau commented 5 months ago
$ git node vote https://github.com/nodejs/collaborators-public-votes/pull/6
Cloning remote repository...
Cloning into '.'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 20 (delta 0), reused 17 (delta 0), pack-reused 0
Receiving objects: 100% (20/20), 24.82 KiB | 24.82 MiB/s, done.
Ballot is ready for edit.
TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received null
    at new NodeError (node:internal/errors:406:5)
    at validateString (node:internal/validators:162:11)
    at normalizeSpawnArguments (node:child_process:548:3)
    at spawn (node:child_process:754:13)
    at file:///home/rlau/.nvm/versions/node/v20.9.0/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/utils/runChildProcessAsync.js:13:19
    at new Promise (<anonymous>)
    at default (file:///home/rlau/.nvm/versions/node/v20.9.0/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/utils/runChildProcessAsync.js:4:81)
    at voteAndCommit (file:///home/rlau/.nvm/versions/node/v20.9.0/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/voteUsingGit.js:33:19)
    at async voteUsingGit (file:///home/rlau/.nvm/versions/node/v20.9.0/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/voteUsingGit.js:96:9)
    at async VotingSession.start (file:///home/rlau/.nvm/versions/node/v20.9.0/lib/node_modules/@node-core/utils/lib/voting_session.js:55:5) {
  code: 'ERR_INVALID_ARG_TYPE'
}

This is with Node.js 20 and @node-core/utils@4.2.0:

$ npm ls -g
/home/rlau/.nvm/versions/node/v20.9.0/lib
├── @node-core/utils@4.2.0
├── corepack@0.20.0
└── npm@10.1.0
richardlau commented 5 months ago

FWIW I was able to vote successfully using the "on the web" link on the vote PR.

richardlau commented 2 days ago

Still happening with @node-core/utils@5.0.1.

$ git node vote https://github.com/nodejs/TSC/pull/1540
Cloning remote repository...
Cloning into '.'...
remote: Enumerating objects: 419, done.
remote: Counting objects: 100% (419/419), done.
remote: Compressing objects: 100% (391/391), done.
remote: Total 419 (delta 31), reused 162 (delta 26), pack-reused 0
Receiving objects: 100% (419/419), 2.37 MiB | 40.52 MiB/s, done.
Resolving deltas: 100% (31/31), done.
Ballot is ready for edit.
TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received null
    at normalizeSpawnArguments (node:child_process:548:3)
    at spawn (node:child_process:754:13)
    at file:///home/rlau/.nvm/versions/node/v20.12.2/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/utils/runChildProcessAsync.js:13:19
    at new Promise (<anonymous>)
    at default (file:///home/rlau/.nvm/versions/node/v20.12.2/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/utils/runChildProcessAsync.js:4:81)
    at voteAndCommit (file:///home/rlau/.nvm/versions/node/v20.12.2/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/voteUsingGit.js:33:19)
    at async voteUsingGit (file:///home/rlau/.nvm/versions/node/v20.12.2/lib/node_modules/@node-core/utils/node_modules/@node-core/caritat/dist/voteUsingGit.js:96:9)
    at async VotingSession.start (file:///home/rlau/.nvm/versions/node/v20.12.2/lib/node_modules/@node-core/utils/lib/voting_session.js:55:5) {
  code: 'ERR_INVALID_ARG_TYPE'
}
$
richardlau commented 2 days ago

Okay, after some debugging, it looks like it can't figure out an editor. It works if I set EDITOR,

$ EDITOR=vi git node vote https://github.com/nodejs/TSC/pull/1540
Cloning remote repository...
Cloning into '.'...
remote: Enumerating objects: 419, done.
remote: Counting objects: 100% (419/419), done.
remote: Compressing objects: 100% (391/391), done.
remote: Total 419 (delta 31), reused 162 (delta 26), pack-reused 0
Receiving objects: 100% (419/419), 2.37 MiB | 35.75 MiB/s, done.
Resolving deltas: 100% (31/31), done.
Ballot is ready for edit.
...
richardlau commented 2 days ago

Okay, after some debugging, it looks like it can't figure out an editor. It works if I set EDITOR,

Which I guess is https://github.com/nodejs/node-core-utils/issues/605.