webdriverio / cucumber-boilerplate

Boilerplate project to run WebdriverIO tests with Cucumber
http://webdriver.io
MIT License
534 stars 318 forks source link

Installation of dependencies fails: no member named 'kFinalizer' in 'v8::WeakCallbackType' #863

Closed svscorp closed 9 months ago

svscorp commented 11 months ago

Issue description

Can't install dependencies (using either NPM / YARN) to use boilerplate

Steps to reproduce

Following Readme:

Issue occurred on browser/platform

MacOS Ventura 13.6 npm@10.1.0 node@v20.8.1

Expected behavior

Dependencies installed

Actual behavior

Exception.

Trace macuser  ~   git  cucumber-boilerplate  npm install npm WARN deprecated fsevents@1.1.2: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 npm WARN deprecated ini@1.3.4: Please update to ini >=1.3.6 to avoid a prototype pollution issue npm WARN deprecated babel-preset-es2015@6.24.1: 🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update! npm WARN deprecated chalk@2.0.1: Please upgrade to Chalk 2.1.0 - template literals in this version (2.0.1) are quite buggy. npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated is-buffer@1.1.5: This version of 'is-buffer' is out-of-date. You must update to v1.1.6 or newer npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated clone@1.0.2: XSS vulnerability fixed in v1.0.3 npm WARN deprecated chokidar@1.7.0: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. npm WARN deprecated source-map-url@0.3.0: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated circular-json@0.3.1: CircularJSON is in maintenance only, flatted is its successor. npm WARN deprecated sane@2.0.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues. npm WARN deprecated uuid@3.0.1: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated source-map-resolve@0.3.1: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated phantomjs-prebuilt@2.1.14: this package is now deprecated npm WARN deprecated mkdirp@0.5.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm WARN deprecated har-validator@2.0.6: this library is no longer supported npm WARN deprecated har-validator@2.0.6: this library is no longer supported npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm WARN deprecated request@2.81.0: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated request@2.79.0: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated request@2.79.0: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@4.2.1: this library is no longer supported npm WARN deprecated cucumber-expressions@3.0.0: This package is now published under @cucumber/cucumber-expressions npm WARN deprecated is-my-json-valid@2.16.0: catastrophic backtracking in regexes could potentially lead to REDOS attack, upgrade to 2.17.2 as soon as possible npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues. npm WARN deprecated cucumber@2.3.1: Cucumber is publishing new releases under @cucumber/cucumber npm WARN deprecated ecstatic@2.1.0: This package is unmaintained and deprecated. See the GH Issue 259. npm WARN deprecated gherkin@4.1.3: This package is now published under @cucumber/gherkin npm WARN deprecated webdriverio@4.7.1: outdated version, please use @next npm WARN deprecated core-js@2.5.1: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. npm ERR! code 1 npm ERR! path /Users/macuser/git/cucumber-boilerplate/node_modules/fibers npm ERR! command failed npm ERR! command sh -c node build.js || nodejs build.js npm ERR! CXX(target) Release/obj.target/fibers/src/fibers.o npm ERR! CXX(target) Release/obj.target/fibers/src/fibers.o npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.4.0 npm ERR! gyp info using node@20.8.1 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.11.5 found at "/opt/homebrew/opt/python@3.11/bin/python3.11" npm ERR! gyp info spawn /opt/homebrew/opt/python@3.11/bin/python3.11 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/macuser/git/cucumber-boilerplate/node_modules/fibers/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/macuser/Library/Caches/node-gyp/20.8.1/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/macuser/Library/Caches/node-gyp/20.8.1', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/macuser/Library/Caches/node-gyp/20.8.1/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/macuser/git/cucumber-boilerplate/node_modules/fibers', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm ERR! ../src/fibers.cc:34:65: error: no member named 'kFinalizer' in 'v8::WeakCallbackType' npm ERR! handle.SetWeak(val, WeakCallbackShim, WeakCallbackType::kFinalizer); npm ERR! ~~~~~~~~~~~~~~~~~~^ npm ERR! ../src/fibers.cc:68:2: error: no template named 'Handle' npm ERR! Handle NewLatin1String(Isolate* isolate, const char* string) { npm ERR! ^ npm ERR! ../src/fibers.cc:69:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return String::NewFromOneByte(isolate, (const uint8_t*)string, NewStringType::kNormal).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:72:2: error: no template named 'Handle' npm ERR! Handle NewLatin1Symbol(Isolate* isolate, const char* string) { npm ERR! ^ npm ERR! ../src/fibers.cc:73:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return String::NewFromOneByte(isolate, (const uint8_t*)string, NewStringType::kNormal).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:94:2: error: no template named 'Handle' npm ERR! Handle NewInstance(Isolate* isolate, Local fn, int argc, Local argv[]) { npm ERR! ^ npm ERR! ../src/fibers.cc:95:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return fn->NewInstance(isolate->GetCurrentContext(), argc, argv).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:104:2: error: no template named 'Handle' npm ERR! Handle ToNumber(Local value) { npm ERR! ^ npm ERR! ../src/fibers.cc:105:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return value->ToNumber(Isolate::GetCurrent()->GetCurrentContext()).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:126:58: error: no template named 'Handle' npm ERR! void Reset(Isolate* isolate, Persistent& persistent, Handle handle) { npm ERR! ^ npm ERR! ../src/fibers.cc:139:26: error: no template named 'Handle' npm ERR! void SetInternalPointer(Handle handle, int index, void* val) { npm ERR! ^ npm ERR! ../src/fibers.cc:143:27: error: no template named 'Handle' npm ERR! void* GetInternalPointer(Handle handle, int index) { npm ERR! ^ npm ERR! ../src/fibers.cc:148:2: error: no template named 'Handle' npm ERR! Handle Deref(Isolate* isolate, Persistent& handle) { npm ERR! ^ npm ERR! ../src/fibers.cc:153:14: error: no template named 'Handle' npm ERR! void Return(Handle handle, const Arguments& args) { npm ERR! ^ npm ERR! ../src/fibers.cc:157:14: error: no template named 'Handle' npm ERR! void Return(Handle handle, GetterCallbackInfo info) { npm ERR! ^ npm ERR! ../src/fibers.cc:165:2: error: no template named 'Handle' npm ERR! Handle ThrowException(Isolate* isolate, Handle exception) { npm ERR! ^ npm ERR! ../src/fibers.cc:165:49: error: no template named 'Handle' npm ERR! Handle ThrowException(Isolate* isolate, Handle exception) { npm ERR! ^ npm ERR! ../src/fibers.cc:169:2: error: no template named 'Handle' npm ERR! Handle GetCurrentContext(Isolate* isolate) { npm ERR! ^ npm ERR! ../src/fibers.cc:170:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return isolate->GetCurrentContext(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! fatal error: too many errors emitted, stopping now [-ferror-limit=] npm ERR! 20 errors generated. npm ERR! make: *** [Release/obj.target/fibers/src/fibers.o] Error 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:514:28) npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12) npm ERR! gyp ERR! System Darwin 22.6.0 npm ERR! gyp ERR! command "/opt/homebrew/Cellar/node/20.8.1/bin/node" "/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release" npm ERR! gyp ERR! cwd /Users/macuser/git/cucumber-boilerplate/node_modules/fibers npm ERR! gyp ERR! node -v v20.8.1 npm ERR! gyp ERR! node-gyp -v v9.4.0 npm ERR! gyp ERR! not ok npm ERR! node-gyp exited with code: 1 npm ERR! Please make sure you are using a supported platform and node version. If you npm ERR! would like to compile fibers on this machine please make sure you have setup your npm ERR! build environment-- npm ERR! Windows + OS X instructions here: https://github.com/nodejs/node-gyp npm ERR! Ubuntu users please run: `sudo apt-get install g++ build-essential` npm ERR! Alpine users please run: `sudo apk add python make g++` npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.4.0 npm ERR! gyp info using node@20.8.1 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.11.5 found at "/opt/homebrew/opt/python@3.11/bin/python3.11" npm ERR! gyp info spawn /opt/homebrew/opt/python@3.11/bin/python3.11 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/macuser/git/cucumber-boilerplate/node_modules/fibers/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/Users/macuser/Library/Caches/node-gyp/20.8.1/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/macuser/Library/Caches/node-gyp/20.8.1', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/macuser/Library/Caches/node-gyp/20.8.1/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/macuser/git/cucumber-boilerplate/node_modules/fibers', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm ERR! ../src/fibers.cc:34:65: error: no member named 'kFinalizer' in 'v8::WeakCallbackType' npm ERR! handle.SetWeak(val, WeakCallbackShim, WeakCallbackType::kFinalizer); npm ERR! ~~~~~~~~~~~~~~~~~~^ npm ERR! ../src/fibers.cc:68:2: error: no template named 'Handle' npm ERR! Handle NewLatin1String(Isolate* isolate, const char* string) { npm ERR! ^ npm ERR! ../src/fibers.cc:69:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return String::NewFromOneByte(isolate, (const uint8_t*)string, NewStringType::kNormal).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:72:2: error: no template named 'Handle' npm ERR! Handle NewLatin1Symbol(Isolate* isolate, const char* string) { npm ERR! ^ npm ERR! ../src/fibers.cc:73:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return String::NewFromOneByte(isolate, (const uint8_t*)string, NewStringType::kNormal).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:94:2: error: no template named 'Handle' npm ERR! Handle NewInstance(Isolate* isolate, Local fn, int argc, Local argv[]) { npm ERR! ^ npm ERR! ../src/fibers.cc:95:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return fn->NewInstance(isolate->GetCurrentContext(), argc, argv).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:104:2: error: no template named 'Handle' npm ERR! Handle ToNumber(Local value) { npm ERR! ^ npm ERR! ../src/fibers.cc:105:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return value->ToNumber(Isolate::GetCurrent()->GetCurrentContext()).ToLocalChecked(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/fibers.cc:126:58: error: no template named 'Handle' npm ERR! void Reset(Isolate* isolate, Persistent& persistent, Handle handle) { npm ERR! ^ npm ERR! ../src/fibers.cc:139:26: error: no template named 'Handle' npm ERR! void SetInternalPointer(Handle handle, int index, void* val) { npm ERR! ^ npm ERR! ../src/fibers.cc:143:27: error: no template named 'Handle' npm ERR! void* GetInternalPointer(Handle handle, int index) { npm ERR! ^ npm ERR! ../src/fibers.cc:148:2: error: no template named 'Handle' npm ERR! Handle Deref(Isolate* isolate, Persistent& handle) { npm ERR! ^ npm ERR! ../src/fibers.cc:153:14: error: no template named 'Handle' npm ERR! void Return(Handle handle, const Arguments& args) { npm ERR! ^ npm ERR! ../src/fibers.cc:157:14: error: no template named 'Handle' npm ERR! void Return(Handle handle, GetterCallbackInfo info) { npm ERR! ^ npm ERR! ../src/fibers.cc:165:2: error: no template named 'Handle' npm ERR! Handle ThrowException(Isolate* isolate, Handle exception) { npm ERR! ^ npm ERR! ../src/fibers.cc:165:49: error: no template named 'Handle' npm ERR! Handle ThrowException(Isolate* isolate, Handle exception) { npm ERR! ^ npm ERR! ../src/fibers.cc:169:2: error: no template named 'Handle' npm ERR! Handle GetCurrentContext(Isolate* isolate) { npm ERR! ^ npm ERR! ../src/fibers.cc:170:10: error: no viable conversion from returned value of type 'Local' to function return type 'int' npm ERR! return isolate->GetCurrentContext(); npm ERR! ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! fatal error: too many errors emitted, stopping now [-ferror-limit=] npm ERR! 20 errors generated. npm ERR! make: *** [Release/obj.target/fibers/src/fibers.o] Error 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:514:28) npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12) npm ERR! gyp ERR! System Darwin 22.6.0 npm ERR! gyp ERR! command "/opt/homebrew/Cellar/node/20.8.1/bin/node" "/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release" npm ERR! gyp ERR! cwd /Users/macuser/git/cucumber-boilerplate/node_modules/fibers npm ERR! gyp ERR! node -v v20.8.1 npm ERR! gyp ERR! node-gyp -v v9.4.0 npm ERR! gyp ERR! not ok npm ERR! node-gyp exited with code: 1 npm ERR! Please make sure you are using a supported platform and node version. If you npm ERR! would like to compile fibers on this machine please make sure you have setup your npm ERR! build environment-- npm ERR! Windows + OS X instructions here: https://github.com/nodejs/node-gyp npm ERR! Ubuntu users please run: `sudo apt-get install g++ build-essential` npm ERR! Alpine users please run: `sudo apk add python make g++` npm ERR! A complete log of this run can be found in: /Users/macuser/.npm/_logs/2023-10-15T09_56_26_567Z-debug-0.log
svscorp commented 11 months ago

I have checked the last commit from the maintainer: https://github.com/webdriverio/cucumber-boilerplate/commit/b40df201f5ea96af14b106260bb0230d210e5d1f and looks like npm install works. So at some point a dependency update by the bot broke stuff. Didn't run git bisect yet.

christian-bromann commented 11 months ago

@svscorp the stacktrace suggest that fibers is being installed which used to be a dependency of @wdio/sync which has been deprecated long ago. It seems to be connected to your Node.js environment. Can you maybe tweak the GitHub Action pipeline to reproduce this?

christian-bromann commented 9 months ago

Closing due to inactivity.