Skip to content

Conversation

@sokra
Copy link
Member

@sokra sokra commented Jan 19, 2026

What?

Use OperationVc to enforce correct ordering of global information methods

@sokra sokra changed the title Turbopack: use selective reads for merged modules (#88560) Turbopack: Use operations for global information and module graph Jan 19, 2026
@sokra sokra force-pushed the sokra/operation-vc-for-global-info branch from 8c6302c to fcadcef Compare January 19, 2026 18:00
@codspeed-hq
Copy link

codspeed-hq bot commented Jan 19, 2026

CodSpeed Performance Report

Merging this PR will not alter performance

Comparing sokra/operation-vc-for-global-info (90a785e) with canary (cedfb53)

Summary

✅ 17 untouched benchmarks
⏩ 3 skipped benchmarks1

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

endpoint: ResolvedVc<PageEndpoint>,
) -> Result<Vc<ModuleGraph>> {
let this = endpoint.await?;
let project = this.pages_project.project();
Copy link
Contributor

@vercel vercel bot Jan 19, 2026

Choose a reason for hiding this comment

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

Missing ResolvedVc conversion causes type mismatch when calling whole_app_module_graphs() method

Fix on Vercel

output_root_to_root_path: self.node_root_to_root_path(),
environment: self.edge_compile_time_info().environment(),
module_id_strategy: self.module_ids(),
export_usage: self.export_usage(),
Copy link
Contributor

@vercel vercel bot Jan 19, 2026

Choose a reason for hiding this comment

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

The runtime_chunking_context function has signature self: Vc<Self> but calls self.edge_chunking_context() and self.server_chunking_context() which require self: ResolvedVc<Self>, causing a type mismatch compilation error.

Fix on Vercel

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 19, 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) 455ms 455ms ▁▁█▁▁
Cold (Ready in log) 438ms 438ms ▇▆▄▇▇
Cold (First Request) 1.165s 1.178s ██▁██
Warm (Listen) 456ms 456ms ▁▁▁▁▁
Warm (Ready in log) 442ms 442ms ▂▁▅▁▁
Warm (First Request) 340ms 341ms ▆▁▄█▆
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 506ms 506ms ▅▅▅▁▁
Cold (Ready in log) 461ms 460ms ▇▇▆▇█
Cold (First Request) 1.877s 1.885s ▆▅▅█▆
Warm (Listen) 505ms 457ms ███▁▁
Warm (Ready in log) 461ms 459ms ▄▅▅█▆
Warm (First Request) 1.893s 1.907s ▅▄▅█▅

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.308s 4.353s ▁▁▆▁▁
Cached Build 4.258s 4.289s ▁▁▆▁▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.580s 14.541s ▄▃▃▇▃
Cached Build 14.737s 14.740s ▃▃▂▆▃
node_modules Size 461 MB 461 MB ▁▁▁██
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles: **432 kB** → **432 kB** ✅ -32 B

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

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 762 B 768 B
Total 762 B 768 B ⚠️ +6 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 450 B 451 B
Total 450 B 451 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 251 B 253 B
main-HASH.js gzip 38.7 kB 39.1 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.4 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 226 kB 226 kB ⚠️ +54 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 126 kB 126 kB
page.js gzip 244 kB 240 kB 🟢 4.49 kB (-2%)
Total 371 kB 366 kB ✅ -4.61 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 617 B 616 B
middleware-r..fest.js gzip 155 B 156 B
middleware.js gzip 33.1 kB 33.2 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 34.7 kB 34.9 kB ⚠️ +133 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.71 MB 3.72 MB 🔴 +6.1 kB (+0%)
index.pack gzip 101 kB 101 kB
index.pack.old gzip 102 kB 102 kB
Total 3.92 MB 3.92 MB ⚠️ +6.26 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 306 kB 306 kB
app-page-exp..prod.js gzip 163 kB 163 kB
app-page-tur...dev.js gzip 306 kB 306 kB
app-page-tur..prod.js gzip 163 kB 163 kB
app-page-tur...dev.js gzip 303 kB 303 kB
app-page-tur..prod.js gzip 161 kB 161 kB
app-page.run...dev.js gzip 303 kB 303 kB
app-page.run..prod.js gzip 161 kB 161 kB
app-route-ex...dev.js gzip 69.4 kB 69.4 kB
app-route-ex..prod.js gzip 48.2 kB 48.2 kB
app-route-tu...dev.js gzip 69.5 kB 69.5 kB
app-route-tu..prod.js gzip 48.2 kB 48.2 kB
app-route-tu...dev.js gzip 69.1 kB 69.1 kB
app-route-tu..prod.js gzip 48 kB 48 kB
app-route.ru...dev.js gzip 69 kB 69 kB
app-route.ru..prod.js gzip 48 kB 48 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 42.5 kB 42.5 kB
pages-api-tu..prod.js gzip 32.3 kB 32.3 kB
pages-api.ru...dev.js gzip 42.5 kB 42.5 kB
pages-api.ru..prod.js gzip 32.3 kB 32.3 kB
pages-turbo....dev.js gzip 51.8 kB 51.8 kB
pages-turbo...prod.js gzip 38.8 kB 38.8 kB
pages.runtim...dev.js gzip 51.8 kB 51.8 kB
pages.runtim..prod.js gzip 38.8 kB 38.8 kB
server.runti..prod.js gzip 62.3 kB 62.3 kB
Total 2.73 MB 2.73 MB ⚠️ +1 B
📝 Changed Files (4 files)

Files with changes:

  • pages-api-tu..time.prod.js
  • pages-api.runtime.dev.js
  • pages-turbo...time.prod.js
  • pages.runtime.dev.js
View diffs
pages-api-tu..time.prod.js

Diff too large to display

pages-api.runtime.dev.js

Diff too large to display

pages-turbo...time.prod.js

Diff too large to display

pages.runtime.dev.js

Diff too large to display

@lukesandberg lukesandberg changed the base branch from sokra/remove-reverse-task-cache to graphite-base/88758 January 22, 2026 07:06
@sokra sokra force-pushed the sokra/operation-vc-for-global-info branch from fcadcef to 2aafb1a Compare January 22, 2026 20:50
@sokra sokra force-pushed the graphite-base/88758 branch from 4ddf51a to 282273c Compare January 22, 2026 20:50
@sokra sokra changed the base branch from graphite-base/88758 to sokra/data-category January 22, 2026 20:51
@sokra sokra force-pushed the sokra/data-category branch from 282273c to 85a9eea Compare January 23, 2026 06:58
@sokra sokra force-pushed the sokra/operation-vc-for-global-info branch from 2aafb1a to 6b2ad20 Compare January 23, 2026 06:58
@sokra sokra force-pushed the sokra/data-category branch 2 times, most recently from f7f5480 to 0c170b6 Compare January 23, 2026 08:03
@sokra sokra force-pushed the sokra/operation-vc-for-global-info branch from 6b2ad20 to e30edb0 Compare January 23, 2026 08:03
@sokra sokra changed the base branch from sokra/data-category to graphite-base/88758 January 23, 2026 08:34
@sokra sokra force-pushed the graphite-base/88758 branch from 0c170b6 to cedfb53 Compare January 23, 2026 08:35
@sokra sokra force-pushed the sokra/operation-vc-for-global-info branch from e30edb0 to 954b41e Compare January 23, 2026 08:35
@graphite-app graphite-app bot changed the base branch from graphite-base/88758 to canary January 23, 2026 08:36
@sokra sokra force-pushed the sokra/operation-vc-for-global-info branch from 954b41e to 90a785e Compare January 23, 2026 08:36
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. Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants