Skip to content

Turbopack: query conditions in rules follow-ups#88801

Merged
sokra merged 3 commits intocanaryfrom
feature/turbopack-query-conditions
Jan 22, 2026
Merged

Turbopack: query conditions in rules follow-ups#88801
sokra merged 3 commits intocanaryfrom
feature/turbopack-query-conditions

Conversation

@sokra
Copy link
Member

@sokra sokra commented Jan 20, 2026

Rebase of #87291

@nextjs-bot nextjs-bot added created-by: Turbopack team PRs by the Turbopack team. Documentation Related to Next.js' official documentation. tests Turbopack Related to Turbopack with Next.js. labels Jan 20, 2026
@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 20, 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) 437ms 438ms ▁▁▁▁▁
Cold (First Request) 1.215s 1.201s ▁▁▁▃▁
Warm (Listen) 457ms 457ms ▁▁▁▁▁
Warm (Ready in log) 441ms 441ms ▁▁▁▁▁
Warm (First Request) 342ms 337ms ▁▁▂▁▂
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 456ms 455ms ▁▁▁▁▁
Cold (Ready in log) 440ms 439ms ▁▁▁▁▁
Cold (First Request) 1.835s 1.827s ▁▁▁▁▁
Warm (Listen) 456ms 456ms ▁▁▁▁▁
Warm (Ready in log) 439ms 439ms ▁▁▁▁▁
Warm (First Request) 1.833s 1.846s ▁▁▁▁▁

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.453s 4.361s ▂▂▂▁▁
Cached Build 4.386s 4.409s ▂▂▂▁▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.135s 14.192s ▃▁▆▃▄
Cached Build 14.188s 14.228s ▃▁▇▃▄
node_modules Size 460 MB 460 MB ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

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

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

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 761 B 765 B
Total 761 B 765 B ⚠️ +4 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 449 B 449 B
Total 449 B 449 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 254 B 🔴 +3 B (+1%)
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 ⚠️ +55 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 243 kB 239 kB 🟢 4.85 kB (-2%)
Total 368 kB 363 kB ✅ -4.84 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 616 B 617 B
middleware-r..fest.js gzip 155 B 156 B
middleware.js gzip 33.1 kB 33.3 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 34.7 kB 34.9 kB ⚠️ +193 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.69 MB 3.69 MB 🔴 +8.64 kB (+0%)
index.pack gzip 101 kB 102 kB
index.pack.old gzip 101 kB 102 kB
Total 3.89 MB 3.9 MB ⚠️ +9.66 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 305 kB 305 kB
app-page-exp..prod.js gzip 162 kB 162 kB
app-page-tur...dev.js gzip 305 kB 305 kB
app-page-tur..prod.js gzip 162 kB 162 kB
app-page-tur...dev.js gzip 302 kB 302 kB
app-page-tur..prod.js gzip 160 kB 160 kB
app-page.run...dev.js gzip 302 kB 302 kB
app-page.run..prod.js gzip 160 kB 160 kB
app-route-ex...dev.js gzip 68.8 kB 68.8 kB
app-route-ex..prod.js gzip 47.6 kB 47.6 kB
app-route-tu...dev.js gzip 68.8 kB 68.8 kB
app-route-tu..prod.js gzip 47.6 kB 47.6 kB
app-route-tu...dev.js gzip 68.4 kB 68.4 kB
app-route-tu..prod.js gzip 47.4 kB 47.4 kB
app-route.ru...dev.js gzip 68.4 kB 68.4 kB
app-route.ru..prod.js gzip 47.4 kB 47.4 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.2 kB 41.2 kB
pages-api-tu..prod.js gzip 31.3 kB 31.3 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.2 kB 62.2 kB
Total 2.71 MB 2.71 MB ✅ -4 B

@codspeed-hq
Copy link

codspeed-hq bot commented Jan 20, 2026

Merging this PR will not alter performance

✅ 17 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing feature/turbopack-query-conditions (d7ad309) with canary (9e933be)

Open in CodSpeed

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.

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Jan 20, 2026

Tests Passed

@sokra sokra force-pushed the feature/turbopack-query-conditions branch 2 times, most recently from 2e432ce to 16e2fba Compare January 22, 2026 11:12
jwueller and others added 3 commits January 22, 2026 12:55
Accepts a regular expression under the `query` key in turbopack
conditions. An updated example has been added to the documentation.

This is roughly equivalent to the `resourceQuery` condition in webpack
rules: https://webpack.js.org/configuration/module/#ruleresourcequery

Fixes #65360
Fixes #67452
Fixes #79311
Co-authored-by: Luke Sandberg <lukesandberg@users.noreply.github.com>
@sokra sokra force-pushed the feature/turbopack-query-conditions branch from 16e2fba to d7ad309 Compare January 22, 2026 11:55
@sokra sokra merged commit 98fd345 into canary Jan 22, 2026
164 checks passed
@sokra sokra deleted the feature/turbopack-query-conditions branch January 22, 2026 14:31
@jwueller
Copy link

@sokra I can't help but notice that 98fd345 has been stripped of author metadata. I feel like correct attribution of my work is the least I could ask for.

Not to mention that it no longer even refers to the issues/discussions it closes, since the commit message has also been lost.

@sokra
Copy link
Member Author

sokra commented Jan 23, 2026

Hmm... I expected it to keep the author attribution of the individual commit. Maybe because it was merged by graphite...?
I initially wanted to edit your PR, but it rejected that due to permissions.
Sadly I can't modify the merge commit anymore, but I can manually add you to the release notes

@jwueller
Copy link

I don't know what Graphite does, but that seems like a fundamental design failure. Open source contributions are made under a specific license, and most of those require attribution. Maybe it's worth evaluating that tool, if it can't even do the bare minimum correctly. Squashing commits is a destructive operation that should never happen implicitly.

I've seen this exact pattern happen in several major open source projects at this point. It also doesn't help that GitHub fails to correctly deal with git metadata in lots of places. At this point, I only trust git itself to get it right.

The permission issue could have been resolved if I had known about it, I'm sure.

Thanks for adding me to the release notes. I suppose it's something.

@github-actions github-actions bot added the locked label Feb 7, 2026
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

created-by: Turbopack team PRs by the Turbopack team. Documentation Related to Next.js' official documentation. locked tests Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants