Upgrading Versions Guide
When upgrading dependencies like pnpm, node, or playwright, there are strict runtime contracts enforced across multiple files in the repository. Failing to update all necessary files will result in CI failures.
Dependabot
When Dependabot opens a PR to update versions, it typically only updates package.json and pnpm-lock.yaml. Since this repository has a strict runtime contract, a Dependabot PR updating pnpm or @playwright/test will fail the CI check (scripts/check-runtime-files.mjs or similar checks) until you manually add the changes in the other files.
If Dependabot fails CI because of actions/checkout or missing dependabot-specific workflow configurations, be mindful that Dependabot PRs run with read-only permissions by default unless configured properly, and they trigger pull_request events but from a fork context.
For workflows that checkout code using actions/checkout, to properly handle Dependabot PRs or PRs from forks, ensure you set repository like this:
- name: Checkout Code
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
fetch-depth: 0
Upgrading pnpm
When upgrading pnpm (e.g. via dependabot), you must update the version in all of the following files:
package.json (in the packageManager field, and engines.pnpm)
scripts/check-runtime-files.mjs (in expectedPnpm)
.github/actions/setup-node-pnpm/action.yml (in the pnpm-version input default)
.devcontainer/Dockerfile (in the PNPM_VERSION environment variable)
Upgrading node
When upgrading node, you must update the version in all of the following files:
.node-version
.nvmrc
package.json (in engines.node)
scripts/check-runtime-files.mjs (in expectedNodeExact and expectedNodeMajorForVercel)
.devcontainer/Dockerfile (in the NODE_MAJOR environment variable, if the major version changed)
Upgrading playwright
When upgrading playwright or @playwright/test, you must update the base image tag in:
.devcontainer/Dockerfile (e.g., mcr.microsoft.com/playwright:vX.Y.Z-noble)
The version here must match the installed version of @playwright/test to avoid issues with missing executables in CI.
Validating Changes
After making changes, always run the runtime files check locally:
pnpm run check:runtime-files
Upgrading Versions Guide
When upgrading dependencies like
pnpm,node, orplaywright, there are strict runtime contracts enforced across multiple files in the repository. Failing to update all necessary files will result in CI failures.Dependabot
When Dependabot opens a PR to update versions, it typically only updates
package.jsonandpnpm-lock.yaml. Since this repository has a strict runtime contract, a Dependabot PR updatingpnpmor@playwright/testwill fail the CI check (scripts/check-runtime-files.mjsor similar checks) until you manually add the changes in the other files.If Dependabot fails CI because of
actions/checkoutor missing dependabot-specific workflow configurations, be mindful that Dependabot PRs run with read-only permissions by default unless configured properly, and they triggerpull_requestevents but from a fork context.For workflows that checkout code using
actions/checkout, to properly handle Dependabot PRs or PRs from forks, ensure you setrepositorylike this:Upgrading
pnpmWhen upgrading
pnpm(e.g. via dependabot), you must update the version in all of the following files:package.json(in thepackageManagerfield, andengines.pnpm)scripts/check-runtime-files.mjs(inexpectedPnpm).github/actions/setup-node-pnpm/action.yml(in thepnpm-versioninput default).devcontainer/Dockerfile(in thePNPM_VERSIONenvironment variable)Upgrading
nodeWhen upgrading
node, you must update the version in all of the following files:.node-version.nvmrcpackage.json(inengines.node)scripts/check-runtime-files.mjs(inexpectedNodeExactandexpectedNodeMajorForVercel).devcontainer/Dockerfile(in theNODE_MAJORenvironment variable, if the major version changed)Upgrading
playwrightWhen upgrading
playwrightor@playwright/test, you must update the base image tag in:.devcontainer/Dockerfile(e.g.,mcr.microsoft.com/playwright:vX.Y.Z-noble)The version here must match the installed version of
@playwright/testto avoid issues with missing executables in CI.Validating Changes
After making changes, always run the runtime files check locally: