Fix preview version in window.next.version for PR builds#90937
Merged
unstubbable merged 8 commits intocanaryfrom Mar 6, 2026
Merged
Fix preview version in window.next.version for PR builds#90937unstubbable merged 8 commits intocanaryfrom
window.next.version for PR builds#90937unstubbable merged 8 commits intocanaryfrom
Conversation
Preview builds served via `vercel-packages.vercel.app` were showing the published canary version instead of the PR-specific preview version. This happened because `create-preview-tarballs.js` updated `package.json` after the build, but the version was already baked into the compiled `dist/` files by `setNextVersion` in `taskfile-swc.js`. This extracts the version computation from `create-preview-tarballs.js` into a new `set-preview-version.js` script that runs before `pnpm run build`, so the compiled output naturally includes the correct version. `create-preview-tarballs.js` now reads the version from `packages/next/package.json` instead of computing it independently.
8984eda to
f750b0c
Compare
Collaborator
Stats from current PR✅ No significant changes detected📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles: **402 kB** → **402 kB**
|
| Canary | PR | Change | |
|---|---|---|---|
| middleware-b..fest.js gzip | 766 B | 767 B | ✓ |
| Total | 766 B | 767 B |
Build Details
Build Manifests
| Canary | PR | Change | |
|---|---|---|---|
| _buildManifest.js gzip | 446 B | 450 B | ✓ |
| Total | 446 B | 450 B |
📦 Webpack
Client
Main Bundles
| Canary | PR | Change | |
|---|---|---|---|
| 5528-HASH.js gzip | 5.54 kB | N/A | - |
| 6280-HASH.js gzip | 59.4 kB | N/A | - |
| 6335.HASH.js gzip | 169 B | N/A | - |
| 912-HASH.js gzip | 4.59 kB | N/A | - |
| e8aec2e4-HASH.js gzip | 62.6 kB | N/A | - |
| framework-HASH.js gzip | 59.7 kB | 59.7 kB | ✓ |
| main-app-HASH.js gzip | 256 B | 254 B | ✓ |
| main-HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
| webpack-HASH.js gzip | 1.68 kB | 1.68 kB | ✓ |
| 262-HASH.js gzip | N/A | 4.59 kB | - |
| 2889.HASH.js gzip | N/A | 169 B | - |
| 5602-HASH.js gzip | N/A | 5.55 kB | - |
| 6948ada0-HASH.js gzip | N/A | 62.6 kB | - |
| 9544-HASH.js gzip | N/A | 60.2 kB | - |
| Total | 233 kB | 234 kB |
Polyfills
| Canary | PR | Change | |
|---|---|---|---|
| polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
| Total | 39.4 kB | 39.4 kB | ✓ |
Pages
| Canary | PR | Change | |
|---|---|---|---|
| _app-HASH.js gzip | 194 B | 194 B | ✓ |
| _error-HASH.js gzip | 183 B | 180 B | 🟢 3 B (-2%) |
| css-HASH.js gzip | 331 B | 330 B | ✓ |
| dynamic-HASH.js gzip | 1.81 kB | 1.81 kB | ✓ |
| edge-ssr-HASH.js gzip | 256 B | 256 B | ✓ |
| head-HASH.js gzip | 351 B | 352 B | ✓ |
| hooks-HASH.js gzip | 384 B | 383 B | ✓ |
| image-HASH.js gzip | 580 B | 581 B | ✓ |
| index-HASH.js gzip | 260 B | 260 B | ✓ |
| link-HASH.js gzip | 2.51 kB | 2.51 kB | ✓ |
| routerDirect..HASH.js gzip | 320 B | 319 B | ✓ |
| script-HASH.js gzip | 386 B | 386 B | ✓ |
| withRouter-HASH.js gzip | 315 B | 315 B | ✓ |
| 1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
| Total | 7.98 kB | 7.98 kB | ✅ -1 B |
Server
Edge SSR
| Canary | PR | Change | |
|---|---|---|---|
| edge-ssr.js gzip | 125 kB | 125 kB | ✓ |
| page.js gzip | 256 kB | 256 kB | ✓ |
| Total | 380 kB | 381 kB |
Middleware
| Canary | PR | Change | |
|---|---|---|---|
| middleware-b..fest.js gzip | 618 B | 615 B | ✓ |
| middleware-r..fest.js gzip | 156 B | 155 B | ✓ |
| middleware.js gzip | 43.9 kB | 43.7 kB | ✓ |
| edge-runtime..pack.js gzip | 842 B | 842 B | ✓ |
| Total | 45.5 kB | 45.3 kB | ✅ -239 B |
Build Details
Build Manifests
| Canary | PR | Change | |
|---|---|---|---|
| _buildManifest.js gzip | 715 B | 718 B | ✓ |
| Total | 715 B | 718 B |
Build Cache
| Canary | PR | Change | |
|---|---|---|---|
| 0.pack gzip | 4.06 MB | 4.07 MB | 🔴 +7.1 kB (+0%) |
| index.pack gzip | 103 kB | 103 kB | ✓ |
| index.pack.old gzip | 103 kB | 104 kB | ✓ |
| Total | 4.27 MB | 4.28 MB |
🔄 Shared (bundler-independent)
Runtimes
| Canary | PR | Change | |
|---|---|---|---|
| app-page-exp...dev.js gzip | 322 kB | 322 kB | ✓ |
| app-page-exp..prod.js gzip | 171 kB | 171 kB | ✓ |
| app-page-tur...dev.js gzip | 322 kB | 322 kB | ✓ |
| app-page-tur..prod.js gzip | 171 kB | 171 kB | ✓ |
| app-page-tur...dev.js gzip | 318 kB | 318 kB | ✓ |
| app-page-tur..prod.js gzip | 169 kB | 169 kB | ✓ |
| app-page.run...dev.js gzip | 319 kB | 319 kB | ✓ |
| app-page.run..prod.js gzip | 169 kB | 169 kB | ✓ |
| app-route-ex...dev.js gzip | 70.9 kB | 70.9 kB | ✓ |
| app-route-ex..prod.js gzip | 49.3 kB | 49.3 kB | ✓ |
| app-route-tu...dev.js gzip | 70.9 kB | 70.9 kB | ✓ |
| app-route-tu..prod.js gzip | 49.3 kB | 49.3 kB | ✓ |
| app-route-tu...dev.js gzip | 70.5 kB | 70.5 kB | ✓ |
| app-route-tu..prod.js gzip | 49 kB | 49 kB | ✓ |
| app-route.ru...dev.js gzip | 70.4 kB | 70.4 kB | ✓ |
| app-route.ru..prod.js gzip | 49 kB | 49 kB | ✓ |
| dist_client_...dev.js gzip | 324 B | 324 B | ✓ |
| dist_client_...dev.js gzip | 326 B | 326 B | ✓ |
| dist_client_...dev.js gzip | 318 B | 318 B | ✓ |
| dist_client_...dev.js gzip | 317 B | 317 B | ✓ |
| pages-api-tu...dev.js gzip | 43.2 kB | 43.2 kB | ✓ |
| pages-api-tu..prod.js gzip | 32.9 kB | 32.9 kB | ✓ |
| pages-api.ru...dev.js gzip | 43.2 kB | 43.2 kB | ✓ |
| pages-api.ru..prod.js gzip | 32.9 kB | 32.9 kB | ✓ |
| pages-turbo....dev.js gzip | 52.6 kB | 52.6 kB | ✓ |
| pages-turbo...prod.js gzip | 38.5 kB | 38.5 kB | ✓ |
| pages.runtim...dev.js gzip | 52.6 kB | 52.6 kB | ✓ |
| pages.runtim..prod.js gzip | 38.5 kB | 38.5 kB | ✓ |
| server.runti..prod.js gzip | 62 kB | 62 kB | ✓ |
| Total | 2.84 MB | 2.84 MB | ✓ |
📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/06681c21e886a97e39d277808780884151c00318/next
Collaborator
Tests Passed |
eps1lon
reviewed
Mar 6, 2026
eps1lon
reviewed
Mar 6, 2026
ef3968f to
b25058f
Compare
Made possible by patching `allowBranch`.
b25058f to
06681c2
Compare
eps1lon
approved these changes
Mar 6, 2026
sokra
pushed a commit
that referenced
this pull request
Mar 6, 2026
Preview builds served via `vercel-packages.vercel.app` were showing the published canary version instead of the PR-specific preview version. This happened because `create-preview-tarballs.js` updated `package.json` after the build, but the version was already baked into the compiled `dist/` files by `setNextVersion` in `taskfile-swc.js`. This extracts the version computation from `create-preview-tarballs.js` into a new `set-preview-version.js` script that runs before `pnpm run build`, so the compiled output naturally includes the correct version. `create-preview-tarballs.js` now reads the version from `packages/next/package.json` instead of computing it independently. ## Test Plan 1. Create a new app: `pnpm create next-app@canary` 2. Install the preview build from this PR: `pnpm i https://vercel-packages.vercel.app/next/commits/06681c21e886a97e39d277808780884151c00318/next` 3. Run `pnpm dev` and inspect `next.version` in DevTools — should show `16.2.0-preview-06681c21-20260306` instead of the canary version
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Preview builds served via
vercel-packages.vercel.appwere showing the published canary version instead of the PR-specific preview version. This happened becausecreate-preview-tarballs.jsupdatedpackage.jsonafter the build, but the version was already baked into the compileddist/files bysetNextVersionintaskfile-swc.js.This extracts the version computation from
create-preview-tarballs.jsinto a newset-preview-version.jsscript that runs beforepnpm run build, so the compiled output naturally includes the correct version.create-preview-tarballs.jsnow reads the version frompackages/next/package.jsoninstead of computing it independently.Test Plan
pnpm create next-app@canarypnpm i https://vercel-packages.vercel.app/next/commits/06681c21e886a97e39d277808780884151c00318/nextpnpm devand inspectnext.versionin DevTools — should show16.2.0-preview-06681c21-20260306instead of the canary version