SeleniumHQ / selenium-ide

Open Source record and playback test automation for the web.
https://selenium.dev/selenium-ide/
Apache License 2.0
2.8k stars 762 forks source link

Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"}) #1646

Closed courtens closed 1 year ago

courtens commented 1 year ago

🐛 Bug Report

I am not sure if this is a bug or just an oversight on the installation requirements that states "NodeJS v16 or later". If Node v18 gives WARN  Unsupported engine warnings is v18 not supported?

At first I had Selenium-IDE working for a bit, but now it is not running any more. I am not sure what went wrong.

Error:

pnpm -r i . |  WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"}) packages/selenium-ide |  WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"}) Scope: all 22 workspace projects  EPERM  EPERM: operation not permitted, open 'C:\program files\git\selenium-ide_tmp_28408_b80b2a5fdf107c27df1281b683523136'

PS C:\program files\git\selenium-ide> pnpm run build  WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"})

selenium-ide-monorepo@ build C:\program files\git\selenium-ide run-s build:ts build:ide

 WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"})

selenium-ide-monorepo@ build:ts C:\program files\git\selenium-ide tsc --build --verbose

[5:12:15 PM] Projects in this build:

[5:12:15 PM] Project 'packages/browser-info/tsconfig.json' is up to date because newest input 'packages/browser-info/src/sh.ts' is older than output 'packages/browser-info/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-model/tsconfig.json' is up to date because newest input 'packages/side-model/src/types.ts' is older than output 'packages/side-model/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-commons/tsconfig.json' is up to date because newest input 'packages/side-commons/src/types.ts' is older than output 'packages/side-commons/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-testkit/tsconfig.json' is up to date because newest input 'packages/side-testkit/src/static.ts' is older than output 'packages/side-testkit/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/get-driver/tsconfig.json' is up to date because newest input 'packages/get-driver/src/types.ts' is older than output 'packages/get-driver/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/webdriver-testkit/tsconfig.json' is up to date because newest input 'packages/webdriver-testkit/src/index.ts' is older than output 'packages/webdriver-testkit/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-runtime/tsconfig.json' is up to date because newest input 'packages/side-runtime/src/variables.ts' is older than output 'packages/side-runtime/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-code-export/tsconfig.json' is up to date because newest input 'packages/side-code-export/src/types.ts' is older than output 'packages/side-code-export/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-csharp-commons/tsconfig.json' is up to date because newest input 'packages/code-export-csharp-commons/src/index.ts' is older than output 'packages/code-export-csharp-commons/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-csharp-nunit/tsconfig.json' is up to date because newest input 'packages/code-export-csharp-nunit/src/index.ts' is older than output 'packages/code-export-csharp-nunit/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-csharp-xunit/tsconfig.json' is up to date because newest input 'packages/code-export-csharp-xunit/src/command.ts' is older than output 'packages/code-export-csharp-xunit/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-java-junit/tsconfig.json' is up to date because newest input 'packages/code-export-java-junit/src/index.ts' is older than output 'packages/code-export-java-junit/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-javascript-mocha/tsconfig.json' is up to date because newest input 'packages/code-export-javascript-mocha/src/selection.ts' is older than output 'packages/code-export-javascript-mocha/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-python-pytest/tsconfig.json' is up to date because newest input 'packages/code-export-python-pytest/src/index.ts' is older than output 'packages/code-export-python-pytest/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/code-export-ruby-rspec/tsconfig.json' is up to date because newest input 'packages/code-export-ruby-rspec/src/index.ts' is older than output 'packages/code-export-ruby-rspec/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-api/tsconfig.json' is up to date because newest input 'packages/side-api/src/process.ts' is older than output 'packages/side-api/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-cli/tsconfig.json' is up to date because newest input 'packages/side-cli/src/index.tsx' is older than output 'packages/side-cli/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-example-suite/tsconfig.json' is up to date because newest input 'packages/side-example-suite/src/plugins/custom-click/preload/index.ts' is older than output 'packages/side-example-suite/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-migrate/tsconfig.json' is up to date because newest input 'packages/side-migrate/src/types.d.ts' is older than output 'packages/side-migrate/tsconfig.tsbuildinfo'

[5:12:15 PM] Project 'packages/side-runner/tsconfig.json' is up to date because newest input 'packages/side-runner/src/types.ts' is older than output 'packages/side-runner/tsconfig.tsbuildinfo'

 WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"})

selenium-ide-monorepo@ build:ide C:\program files\git\selenium-ide pnpm run --stream --filter @seleniumhq/selenium-ide build:webpack

. |  WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"}) packages/selenium-ide |  WARN  Unsupported engine: wanted: {"node":"16.x"} (current: {"node":"v18.16.0","pnpm":"8.5.1"}) packages/selenium-ide build:webpack$ webpack packages/selenium-ide build:webpack: [webpack-cli] [Error: EPERM: operation not permitted, open 'C:\program files\git\selenium-ide\packages\selenium-ide\build\playback-window-preload-bundle.js'] { packages/selenium-ide build:webpack: errno: -4048, packages/selenium-ide build:webpack: code: 'EPERM', packages/selenium-ide build:webpack: syscall: 'open', packages/selenium-ide build:webpack: path: 'C:\program files\git\selenium-ide\packages\selenium-ide\build\playback-window-preload-bundle.js' packages/selenium-ide build:webpack: } packages/selenium-ide build:webpack: Failed C:\program files\git\selenium-ide\packages\selenium-ide:  ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  @seleniumhq/selenium-ide@4.0.0-alpha.40 build:webpack: webpack Exit status 2  ELIFECYCLE  Command failed with exit code 1. ERROR: "build:ide" exited with 1.  ELIFECYCLE  Command failed with exit code 1. PS C:\program files\git\selenium-ide>

Environment

OS: Windows 10 pro Selenium IDE Version: 3.17.2 Selenium SIDE Runner Version: not sure ... Node version: v18.16.0 Browser: Chrome Browser Version: 113.0.5672.127 (Official Build) (64-bit)

toddtarsi commented 1 year ago

Yeah, the engine requirements aren't specific enough. I'll set them to 16. I'm sorry for the incorrect statement on requirements. I'd like to support v18, but I haven't gotten around to it yet.

toddtarsi commented 1 year ago

I actually think there are some pnpm requirements as well. I'll try and see if I can get to where you're at as well. I think pnpm v8 might be a bigger source of issue. I use v7 in this codebase and hit some turbulence trying to get to 8 and backed off.

Currently I'm using pnpm v7 and node v16 in the CI https://github.com/SeleniumHQ/selenium-ide/blob/b0cecf414fd882ceed823a644c7bb7e7395572c5/.github/workflows/release.yml

toddtarsi commented 1 year ago

Actually, I take it back. pnpm v8 appears to work fine in my local testing. I'll probably update the CI to use v8 of pnpm as a test

courtens commented 1 year ago

I removed node 18.16.0 and installed node 16.x instead. Now the warnings are gone. Thanks.

toddtarsi commented 1 year ago

@courtens - Absolutely, sorry about the poor compat there. I'll need to touch it up in the runtime, but the ide is so coupled to electron and set up for binary distribution that I'm not so worried about multi support there. If you'd like, feel free to leave an issue open to support node v18 in the side runner at least

courtens commented 1 year ago

OK - reopened as suggested, but not sure on how to place it as "issue open to support node v18 in the side runner at least"

github-actions[bot] commented 1 year ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.