Skip to content

Conversation

@timneutkens
Copy link
Member

@timneutkens timneutkens commented Jan 8, 2026

What?

Measures the time to Ready in X ms in the PR stats action so that improvements/regressions on it are highlighted on each PR.

Copy link
Member Author

timneutkens commented Jan 8, 2026

Copy link
Contributor

@vercel vercel bot left a comment

Choose a reason for hiding this comment

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

Additional Suggestion:

Missing logging statement for readyInStats in benchmarkDevBootWithIterations function

Fix on Vercel

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 8, 2026

Stats from current PR

✅ No significant changes detected

📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 456ms 455ms ▁█▁▁▁
Cold (Ready in log) 436ms 437ms
Cold (First Request) 1.164s 1.135s █▄█▇▁
Warm (Listen) 456ms 456ms ▁█▁▁▁
Warm (Ready in log) 441ms 440ms
Warm (First Request) 344ms 338ms ▄▅▅▁▄
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 456ms 455ms ▁▅▁▁▁
Cold (Ready in log) 433ms 432ms
Cold (First Request) 1.796s 1.797s ▂▁▅▁▅
Warm (Listen) 456ms 455ms █▁▁▅▅
Warm (Ready in log) 433ms 434ms
Warm (First Request) 1.801s 1.811s ▁▁▅▁▆

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.043s 4.005s ▁█▁▁▁
Cached Build 4.057s 4.024s ▁█▁▁▂
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 13.816s 13.817s ▁▁▁▁▂
Cached Build 13.894s 13.880s ▁▁▁▂▁
node_modules Size 457 MB 457 MB █████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **430 kB** → **430 kB** ✅ -4 B

82 files with content-based hashes (individual files not comparable between builds)

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 793 B 796 B
Total 793 B 796 B ⚠️ +3 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 449 B 450 B
Total 449 B 450 B ⚠️ +1 B

📦 Webpack

Client

Main Bundles
Canary PR Change
2086.HASH.js gzip 169 B N/A -
2161-HASH.js gzip 5.41 kB N/A -
2747-HASH.js gzip 4.48 kB N/A -
4322-HASH.js gzip 52.7 kB N/A -
ec793fe8-HASH.js gzip 62.3 kB N/A -
framework-HASH.js gzip 59.8 kB 59.8 kB
main-app-HASH.js gzip 252 B 254 B
main-HASH.js gzip 38.6 kB 39 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
1596.HASH.js gzip N/A 169 B -
2658-HASH.js gzip N/A 52.5 kB -
6349-HASH.js gzip N/A 4.46 kB -
7019-HASH.js gzip N/A 5.43 kB -
b17a3386-HASH.js gzip N/A 62.3 kB -
Total 225 kB 225 kB ⚠️ +156 B
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 193 B
_error-HASH.js gzip 182 B 182 B
css-HASH.js gzip 336 B 335 B
dynamic-HASH.js gzip 1.8 kB 1.8 kB
edge-ssr-HASH.js gzip 256 B 256 B
head-HASH.js gzip 352 B 349 B
hooks-HASH.js gzip 385 B 384 B
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 259 B 258 B
link-HASH.js gzip 2.5 kB 2.51 kB
routerDirect..HASH.js gzip 319 B 317 B
script-HASH.js gzip 385 B 387 B
withRouter-HASH.js gzip 316 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.96 kB ✅ -8 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 125 kB 125 kB
page.js gzip 239 kB 239 kB
Total 364 kB 364 kB ⚠️ +265 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 654 B 653 B
middleware-r..fest.js gzip 155 B 156 B
middleware.js gzip 32.9 kB 33 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 34.5 kB 34.7 kB ⚠️ +168 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 738 B 738 B
Total 738 B 738 B
Build Cache
Canary PR Change
0.pack gzip 3.61 MB 3.61 MB
index.pack gzip 99.3 kB 98.8 kB
index.pack.old gzip 98.9 kB 98.3 kB
Total 3.8 MB 3.81 MB ⚠️ +2.23 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 303 kB 303 kB
app-page-exp..prod.js gzip 157 kB 157 kB
app-page-tur...dev.js gzip 302 kB 302 kB
app-page-tur..prod.js gzip 157 kB 157 kB
app-page-tur...dev.js gzip 299 kB 299 kB
app-page-tur..prod.js gzip 155 kB 155 kB
app-page.run...dev.js gzip 299 kB 299 kB
app-page.run..prod.js gzip 155 kB 155 kB
app-route-ex...dev.js gzip 68.2 kB 68.2 kB
app-route-ex..prod.js gzip 46.9 kB 46.9 kB
app-route-tu...dev.js gzip 68.2 kB 68.2 kB
app-route-tu..prod.js gzip 46.9 kB 46.9 kB
app-route-tu...dev.js gzip 67.8 kB 67.8 kB
app-route-tu..prod.js gzip 46.7 kB 46.7 kB
app-route.ru...dev.js gzip 67.8 kB 67.8 kB
app-route.ru..prod.js gzip 46.7 kB 46.7 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 41.1 kB 41.1 kB
pages-api-tu..prod.js gzip 31.2 kB 31.2 kB
pages-api.ru...dev.js gzip 41.1 kB 41.1 kB
pages-api.ru..prod.js gzip 31.2 kB 31.2 kB
pages-turbo....dev.js gzip 50.8 kB 50.8 kB
pages-turbo...prod.js gzip 38.2 kB 38.2 kB
pages.runtim...dev.js gzip 50.8 kB 50.8 kB
pages.runtim..prod.js gzip 38.2 kB 38.2 kB
server.runti..prod.js gzip 62 kB 62 kB
Total 2.67 MB 2.67 MB ⚠️ +1 B

@nextjs-bot
Copy link
Collaborator

Allow CI Workflow Run

  • approve CI run for commit: 9cef493

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 8, 2026

Allow CI Workflow Run

  • approve CI run for commit: 210ed51

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Base automatically changed from 01-07-move_ready_in_time_before_handler_initialization to canary January 8, 2026 18:09
@nextjs-bot
Copy link
Collaborator

Failing test suites

Commit: 37762a7 | About building and testing Next.js

pnpm test-start-turbo test/e2e/app-dir/app-client-cache/client-cache.parallel-routes.test.ts (turbopack) (job)

  • app dir client cache with parallel routes > prefetch={true} > should re-use the cache for the full page, only for 5 mins (DD)
Expand output

● app dir client cache with parallel routes › prefetch={true} › should re-use the cache for the full page, only for 5 mins

thrown: "Exceeded timeout of 120000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  54 |     })
  55 |
> 56 |     it('should re-use the cache for the full page, only for 5 mins', async () => {
     |     ^
  57 |       let page: PlaywrightPage
  58 |       const browser = await next.browser('/', {
  59 |         async beforePageLoad(p) {

  at it (e2e/app-dir/app-client-cache/client-cache.parallel-routes.test.ts:56:5)
  at describe (e2e/app-dir/app-client-cache/client-cache.parallel-routes.test.ts:30:3)
  at Object.describe (e2e/app-dir/app-client-cache/client-cache.parallel-routes.test.ts:7:1)

@timneutkens timneutkens marked this pull request as ready for review January 11, 2026 20:54
@timneutkens timneutkens merged commit 774b78a into canary Jan 11, 2026
290 of 293 checks passed
@timneutkens timneutkens deleted the 01-08-stats_action_add_ready_in_time branch January 11, 2026 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants