Repository navigation
test(e2e): Enable nuxt-5 as optional - #22017
Conversation
|
The nuxt-5 test keeps hanging. I debugged this a bit and it seems to be connected to the Update:It's not pnpm but maybe Nuxt. I bisected the nightly versions and could find the culprit versions: |
|
This pull request has gone three weeks without activity. In another week, I will close it. But! If you comment or otherwise update it, I will reset the clock, and if you apply the label |
size-limit report 📦
|
| return getPnpmMajor(extendedPackageJsonPath, extendedPackageJson); | ||
| } | ||
|
|
There was a problem hiding this comment.
Bug: The parseWorkspaceOverrides function crashes when parsing valid pnpm-workspace.yaml files that contain unquoted override values, causing e2e tests to fail.
Severity: MEDIUM
Suggested Fix
Update the parsing logic in parseWorkspaceOverrides to correctly handle unquoted keys and values, which are valid in YAML and pnpm configuration. Instead of a strict regex expecting quotes, consider using a proper YAML parser to read the overrides section. This will make the function more robust and compliant with standard pnpm practices.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: dev-packages/e2e-tests/lib/pnpmOverrides.ts#L80-L82
Potential issue: The `parseWorkspaceOverrides` function uses a regular expression that
strictly requires both keys and values in the `overrides` section of a
`pnpm-workspace.yaml` file to be double-quoted. However, standard pnpm and YAML syntax
allows for unquoted values, such as `lodash: ^4.17.21`. If a test fixture's
`pnpm-workspace.yaml` contains such valid, unquoted overrides, the parsing will fail,
and the function will throw an `Unsupported pnpm workspace override` error. This
uncaught error will propagate and cause the entire e2e test suite to crash, preventing
tests from running if they use fixtures with standard pnpm override configurations.
Did we get this right? 👍 / 👎 to inform future reviews.
…Nuxt 5) (#23644) Server-side Sentry did not work in `nuxt dev` on Nuxt 5. The SDK generates `.nuxt/dev/sentry.server.config.mjs` for users to preload with `node --import`, and on Nitro v3 that file was never created. Nitro v3 serves the dev server through Vite's module runner instead of bundling it, so there is no build output to emit into. For Nitro v3, the file is written as a Nuxt template instead of a Rollup artifact. This can be done because [Nuxt requires](https://nuxt.com/docs/4.x/getting-started/upgrade) Node 22.19 or later (which allows `.ts`). Nitro v2 (Nuxt v4) keeps the existing path untouched. Needed for the E2E test: #22017
Some E2E apps need a different pnpm version than the root. The `install-pnpm` action now reads `volta.pnpm` with the same lookup the E2E runner uses for overrides. Apps keep their versions, and no workflow hard-codes pnpm anymore. The test `nuxt-5` uses pnpm 11, because pnpm 9.15.9 hangs while installing Nuxt 5 nightlies (fixed issue in #22017). pnpm 9 also rejects these apps' `pnpm-workspace.yaml` (`packages field missing or empty`). CI chose 11.10.0 only for the exact name `nuxt-5`, so `nuxt-5-sourcemaps` (#25268) got 9.15.9 and failed. The canary job ignored app pins entirely.
Most e2e apps that pinned their own Node version did so to run on something newer than the old Node 20 base. Since #24343 moved the root to Node 24.21.0, those pins are either redundant or now *older* than the root (e.g. the `24.15.0` pins), so every app now simply extends the root Volta config. This also drops the Node 20 pin that #24343 added to `react-send-to-sentry` as a stopgap, since it passes on Node 24 now. Two overrides remain: - pnpm `11.10.0` in `nuxt-5` and `nuxt-5-sourcemaps`, which was bumped deliberately in #22017. - Node `20.19.5` in `tsx-express`. On Node >= 24.13 the SDK injects instrumentation through `Module.registerHooks`, whose `load` hook tsx's CJS loader bypasses (it replaces `Module._extensions` and calls `_compile` directly), so Express is never instrumented. #25351 fixes this; the pin can go once it lands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Re-enable after it was disabled: https://github.com/getsentry/sentry-javascript/pull/21524/changes