Skip to content

ci(e2e): install with pnpm 11, matching the version developers run - #836

Merged
jarvis9443 merged 1 commit into
mainfrom
chore/ignore-pnpm-workspace
Jul 29, 2026
Merged

ci(e2e): install with pnpm 11, matching the version developers run#836
jarvis9443 merged 1 commit into
mainfrom
chore/ignore-pnpm-workspace

Conversation

@jarvis9443

@jarvis9443 jarvis9443 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

CI pinned pnpm 9 while local installs are on 11. The gap is not cosmetic — pnpm 10 changed install-script handling, and the two versions now disagree about a file:

  • Under pnpm 10+, a dependency's install scripts do not run unless the package is named in pnpm-workspace.yaml. A local pnpm install in tests/e2e fails with ERR_PNPM_IGNORED_BUILDS: esbuild@0.28.1 and writes a placeholder workspace file.
  • Committing that placeholder breaks CI, because pnpm 9 reads any pnpm-workspace.yaml as a workspace manifest and exits with ERROR packages field missing or empty before running a test. That is what happened on feat(headers): request-context variables in default_headers + client-header forwarding allowlist #835.

So the harness is currently unbuildable locally without producing a file that breaks CI. Pinning CI to the version developers actually run closes it.

The workflow bump and the workspace file have to land in the same commit — pnpm 9 rejects the file, pnpm 11 requires it. esbuild keeps its install script enabled, which is what pnpm 9 did by default, so nothing about the harness's behavior changes.

version: 11 follows the existing major-line style of version: 9, so patch releases still flow.

Verification: full e2e suite under pnpm 11.17.0 — 163 files, 422 passed, 3 skipped, 0 failed.

Supersedes the narrower "ignore the stray file" approach this PR originally carried: with CI on pnpm 11 the file is real configuration, not an artifact.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The e2e gitignore now excludes pnpm-workspace.yaml, which pnpm 10 or later may generate during installation, and documents the non-workspace installation setup.

Changes

E2E install hygiene

Layer / File(s) Summary
Ignore generated pnpm workspace metadata
tests/e2e/.gitignore
Adds pnpm-workspace.yaml to the ignored files and documents its pnpm-generated purpose.
Estimated code review effort: 1 (Trivial) ~2 minutes
🚥 Pre-merge checks | ✅ 5 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title claims a pnpm 11 install change, but the PR only updates e2e .gitignore to ignore pnpm-workspace.yaml. Rename the PR to reflect the actual change, e.g. ignore generated pnpm-workspace.yaml in tests/e2e.
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
E2e Test Quality Review ✅ Passed Scope is limited to e2e hygiene: only tests/e2e/.gitignore changes, no test logic added or modified.
Security Check ✅ Passed Only tests/e2e/.gitignore changed to ignore pnpm-workspace.yaml; no code, auth, storage, logging, or TLS paths were modified.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/ignore-pnpm-workspace

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/e2e/.gitignore`:
- Around line 6-10: Update the comment in tests/e2e/.gitignore to say pnpm “may
write” the file instead of stating that it always “writes” it, while preserving
the remaining explanation unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6b03b910-d3f1-4161-b282-84921b8660be

📥 Commits

Reviewing files that changed from the base of the PR and between 091ec1e and ba235c7.

📒 Files selected for processing (1)
  • tests/e2e/.gitignore

Comment thread tests/e2e/.gitignore Outdated
CI pinned pnpm 9 while local installs are on 11, and the gap was not
cosmetic: pnpm 10 stopped running a dependency's install scripts unless the
package is named in `pnpm-workspace.yaml`, so a local `pnpm install` failed
with ERR_PNPM_IGNORED_BUILDS and dropped a placeholder workspace file that,
if committed, broke CI's pnpm 9 install ("packages field missing or empty").

The two halves have to land together — pnpm 9 rejects the workspace file
and pnpm 11 requires it — so this bumps the workflow and adds the file in
one commit. esbuild (via vitest) keeps its install script enabled, which is
what pnpm 9 did by default, so the harness behaves as before.

Verified by running the full e2e suite under pnpm 11.17.0: 163 files, 422
passed, 3 skipped.
@jarvis9443
jarvis9443 force-pushed the chore/ignore-pnpm-workspace branch from ba235c7 to 7dbffb9 Compare July 29, 2026 01:09
@jarvis9443 jarvis9443 changed the title chore(e2e): ignore the pnpm-workspace.yaml pnpm 10+ writes on install ci(e2e): install with pnpm 11, matching the version developers run Jul 29, 2026
@jarvis9443
jarvis9443 merged commit d6a3ecb into main Jul 29, 2026
11 checks passed
@jarvis9443
jarvis9443 deleted the chore/ignore-pnpm-workspace branch July 29, 2026 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant