Skip to content

[turbopack] Improve regressed build speed on cross-compiled MUSL#91477

Merged
mmastrac merged 8 commits into
canaryfrom
mmastrac/faster-link
Mar 20, 2026
Merged

[turbopack] Improve regressed build speed on cross-compiled MUSL#91477
mmastrac merged 8 commits into
canaryfrom
mmastrac/faster-link

Conversation

@mmastrac
Copy link
Copy Markdown
Contributor

@mmastrac mmastrac commented Mar 16, 2026

What

Refactor build_and_deploy.yml to make it more maintainable, add documentation to all of the quirky flags we use and remove any flags that are not doing anything useful.

Non-goals

  • wasm builds were left out of the matrix, but could probably be added in at a later date
  • cross-compilation flags should probably not live in .cargo/config.toml but rather in a .cargo/cross-config.toml we conditionally include, but this would add some complexity.

Why

After enabling LTO, our MUSL target builds got significantly slower. This wins back a good chunk of the performance that we lost by using cross-compilation to MUSL on docker images that are not slow as heck, while also trying to clean up this workflow that has accumulated some cruft over the years.

The timings are fairly unstable because of uncertain build machine variability, but I've tried to capture uncached runs where possible. I believe we can state that LTO has a slight increase in compile time, but MUSL builds are faster than the pre-LTO state of things.

Changes

  • Refactor build_and_deploy.yml: replace per-target matrix entries with mmm-matrix declarative config, consolidate docker build script inline, pin actions to commit SHAs
  • Simplify .cargo/config.toml using cfg(true) (RFC 3695) to eliminate rustflag duplication across target sections
  • Remove GNU linker flags (rust-lld is now default on x86_64-linux-gnu)
  • Use rust-lld directly for musl targets, remove unused armv7 section
  • Add cargo xtask print-rustflags to replace .github/rustflags.yml
  • Release profile: thin LTO + codegen-units=64 for faster builds
  • Add --log-order stream to TURBO_ARGS for live build output
  • Remove mold linker integration from CI

@nextjs-bot nextjs-bot added the created-by: Turbopack team PRs by the Turbopack team. label Mar 16, 2026
@mmastrac mmastrac changed the title Improve build speed [turbopack] Improve regressed build speed on cross-compiled MUSL Mar 16, 2026
@nextjs-bot
Copy link
Copy Markdown
Contributor

nextjs-bot commented Mar 16, 2026

Failing test suites

Commit: 2683091 | About building and testing Next.js

pnpm test-start-turbo test/e2e/app-dir/segment-cache/staleness/segment-cache-per-page-dynamic-stale-time.test.ts (turbopack) (job)

  • segment cache (per-page dynamic stale time) > per-page value overrides global staleTimes.dynamic regardless of direction (DD)
Expand output

● segment cache (per-page dynamic stale time) › per-page value overrides global staleTimes.dynamic regardless of direction

thrown: "Exceeded timeout of 60000 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."

  50 |       }
  51 |
> 52 |       const result = Reflect.apply(target, thisArg, args)
     |                              ^
  53 |       return typeof result === 'function' ? wrapJestTestFn(result) : result
  54 |     },
  55 |     get(target, prop, receiver) {

  at Object.apply (lib/e2e-utils/index.ts:52:30)
  at it (e2e/app-dir/segment-cache/staleness/segment-cache-per-page-dynamic-stale-time.test.ts:216:3)
  at Object.describe (e2e/app-dir/segment-cache/staleness/segment-cache-per-page-dynamic-stale-time.test.ts:5:1)

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Mar 16, 2026

Merging this PR will not alter performance

✅ 17 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing mmastrac/faster-link (2683091) with canary (1ee9d70)

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
Copy Markdown
Contributor

nextjs-bot commented Mar 17, 2026

Stats from current PR

🟢 1 improvement

Metric Canary PR Change Trend
node_modules Size 484 MB 484 MB 🟢 103 kB (0%) ▁▁▁▁▁
📊 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) 506ms 506ms ▁▁▁█▁
Cold (Ready in log) 464ms 463ms ▁▁▁█▁
Cold (First Request) 860ms 868ms ▁▂▃▆▂
Warm (Listen) 506ms 458ms ▁▁▁▇▁
Warm (Ready in log) 460ms 461ms ▁▁▁▇▁
Warm (First Request) 343ms 369ms ▁▁▁▇▁
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 505ms 457ms ▁▁▁▁▁
Cold (Ready in log) 460ms 459ms ▁▁▁▂▁
Cold (First Request) 1.994s 2.059s ▁▁▁▂▁
Warm (Listen) 506ms 506ms ▁▁▁▁▁
Warm (Ready in log) 462ms 460ms ▁▁▁▁▁
Warm (First Request) 2.002s 2.062s ▁▁▁▂▁

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.063s 4.019s ▁▁▁▇▁
Cached Build 4.085s 4.059s ▁▁▁▆▁
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 14.882s 14.806s ▁▁▁▁▁
Cached Build 15.080s 15.036s ▁▁▁▂▁
node_modules Size 484 MB 484 MB 🟢 103 kB (0%) ▁▁▁▁▁
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
0_z30-iuh9uc~.js gzip 157 B N/A -
0.9zdz7ux63kn.js gzip 48.7 kB N/A -
0019~mcartj.js gzip 156 B N/A -
0~erodka..z08.js gzip 155 B N/A -
0~lwfcrlb4v_9.css gzip 115 B 115 B
0069o7z_93i5n.js gzip 70.8 kB N/A -
00h0nz7r436~l.js gzip 13.3 kB N/A -
00ivb_iunbucu.js gzip 13 kB N/A -
00lvy2fwt6app.js gzip 163 B N/A -
00s7-1qrf0sra.js gzip 157 B N/A -
02ku7edzc_wf7.js gzip 450 B N/A -
03~yq9q893hmn.js gzip 39.4 kB 39.4 kB
07ko~drvd418t.js gzip 154 B N/A -
08755ncz.lq2h.js gzip 158 B N/A -
08wow2p6zxy.b.js gzip 7.61 kB N/A -
092lcb3fqrrf9.js gzip 8.52 kB N/A -
0aj~xs1l1g8tg.js gzip 8.53 kB N/A -
0etd6wteo71.js gzip 163 B N/A -
0h35gmp9u328z.js gzip 8.54 kB N/A -
0h6fkavebp.iz.js gzip 8.47 kB N/A -
0ino_yf1k3h6k.js gzip 10.4 kB N/A -
0mc16gv2x1bet.js gzip 13.7 kB N/A -
0moy~uao4dl.m.js gzip 9.19 kB N/A -
0or_t.m5t.0zo.js gzip 170 B N/A -
0q50rtpusjy90.js gzip 2.28 kB N/A -
0sadk34yuo4mn.js gzip 156 B N/A -
0skzf~pd8g2sw.js gzip 154 B N/A -
0smgy2grrrlka.js gzip 8.58 kB N/A -
0t1dzhdfh0txh.js gzip 215 B 215 B
0uu4afyy97dwq.js gzip 158 B N/A -
0vt7pofxnk8in.js gzip 10.1 kB N/A -
0zid7o0-vupvp.js gzip 225 B N/A -
0zso2j8m-t231.js gzip 65.7 kB N/A -
11-dyfp5n-0~k.js gzip 155 B N/A -
11yo3xfd6b147.js gzip 12.9 kB N/A -
13.84hqxl_1p7.js gzip 9.76 kB N/A -
1554wr-t7p6z-.js gzip 8.55 kB N/A -
15tjst79~qy3_.js gzip 1.46 kB N/A -
15z_v00ne4ud0.js gzip 8.47 kB N/A -
17d_m3p4j9w6r.js gzip 5.62 kB N/A -
17yu~3yiu7d2m.js gzip 8.52 kB N/A -
turbopack-01..no5r.js gzip 4.16 kB N/A -
turbopack-01....j2.js gzip 4.17 kB N/A -
turbopack-05..-uo2.js gzip 4.14 kB N/A -
turbopack-06..s_yq.js gzip 4.16 kB N/A -
turbopack-0h..~eee.js gzip 4.16 kB N/A -
turbopack-0h..omoe.js gzip 4.16 kB N/A -
turbopack-0j..5du..js gzip 4.16 kB N/A -
turbopack-0k..1kxw.js gzip 4.16 kB N/A -
turbopack-0r..8fzp.js gzip 4.16 kB N/A -
turbopack-0w..ahlw.js gzip 4.16 kB N/A -
turbopack-0x..xziq.js gzip 4.16 kB N/A -
turbopack-11..2wr2.js gzip 4.16 kB N/A -
turbopack-13..j09q.js gzip 4.16 kB N/A -
turbopack-16..d.l9.js gzip 4.16 kB N/A -
01fz~yk-xpt_j.js gzip N/A 155 B -
03q~t68gnhli5.js gzip N/A 151 B -
03t__~.5lvgeu.js gzip N/A 5.62 kB -
04d6ll75jqx3r.js gzip N/A 9.19 kB -
04ohz21fsta_x.js gzip N/A 155 B -
0583exyh-yhc7.js gzip N/A 9.76 kB -
072lv63r8dcz~.js gzip N/A 8.58 kB -
075t9dxgbf0m8.js gzip N/A 13.7 kB -
0aayvzj0bc0sv.js gzip N/A 65.7 kB -
0ar1~bwpezfgw.js gzip N/A 13.3 kB -
0b8f8fliy73oo.js gzip N/A 156 B -
0bf-.01jgmps6.js gzip N/A 155 B -
0bh~qxl7qejt_.js gzip N/A 156 B -
0c99mq1ez2bke.js gzip N/A 450 B -
0cq-cmde_ws6u.js gzip N/A 8.47 kB -
0ejf9o-j2g.v8.js gzip N/A 161 B -
0fbbsxh94xk-..js gzip N/A 153 B -
0fwf102w10o9~.js gzip N/A 8.52 kB -
0g1-kfhbbj91x.js gzip N/A 153 B -
0gtmn.q_j1v5r.js gzip N/A 10.4 kB -
0h5~v-tahitcf.js gzip N/A 10.1 kB -
0jvqf.i8i3nyb.js gzip N/A 168 B -
0l3rjj4_ye7_a.js gzip N/A 159 B -
0nclq9z6yzzm5.js gzip N/A 1.46 kB -
0nzumcogektg7.js gzip N/A 8.55 kB -
0p5sjual.nuis.js gzip N/A 13 kB -
0p88ggrxiy7bp.js gzip N/A 7.6 kB -
0s.c-cn5eebrx.js gzip N/A 8.47 kB -
0tna7lg6q4zne.js gzip N/A 12.9 kB -
0votdfxr5fb5u.js gzip N/A 2.28 kB -
0wz-g5ya6or-8.js gzip N/A 48.7 kB -
0ykl9bs_qj.5..js gzip N/A 8.52 kB -
0zfen0tnxp4gh.js gzip N/A 8.55 kB -
101h7adwwavut.js gzip N/A 70.8 kB -
10wkq1h9jzkg..js gzip N/A 225 B -
11bj8iuigzpg6.js gzip N/A 150 B -
11jeywtke9fil.js gzip N/A 154 B -
149ndfh8zfcaz.js gzip N/A 8.53 kB -
turbopack-0~..8_c3.js gzip N/A 4.15 kB -
turbopack-0~..u794.js gzip N/A 4.15 kB -
turbopack-00..vw48.js gzip N/A 4.16 kB -
turbopack-08..mj...js gzip N/A 4.16 kB -
turbopack-0b..lw-4.js gzip N/A 4.16 kB -
turbopack-0f..y01v.js gzip N/A 4.15 kB -
turbopack-0h..e3yh.js gzip N/A 4.14 kB -
turbopack-0p..3gzv.js gzip N/A 4.16 kB -
turbopack-0s..kjmy.js gzip N/A 4.17 kB -
turbopack-0y..8oe7.js gzip N/A 4.16 kB -
turbopack-0y..ft~1.js gzip N/A 4.15 kB -
turbopack-10..noez.js gzip N/A 4.15 kB -
turbopack-11..x5rm.js gzip N/A 4.15 kB -
turbopack-17..oaih.js gzip N/A 4.15 kB -
Total 463 kB 463 kB ✅ -68 B

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 715 B 714 B
Total 715 B 714 B ✅ -1 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 426 B 426 B
Total 426 B 426 B

📦 Webpack

Client

Main Bundles
Canary PR Change
5528-HASH.js gzip 5.54 kB N/A -
6280-HASH.js gzip 60.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.7 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 254 B 254 B
main-HASH.js gzip 39.3 kB 39.2 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.7 kB -
9544-HASH.js gzip N/A 61.1 kB -
Total 234 kB 235 kB ⚠️ +674 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 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 269 kB 269 kB
Total 394 kB 394 kB ✅ -728 B
Middleware
Canary PR Change
middleware-b..fest.js gzip 616 B 616 B
middleware-r..fest.js gzip 156 B 155 B
middleware.js gzip 44 kB 44 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 45.6 kB 45.6 kB ✅ -46 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 715 B 718 B
Total 715 B 718 B ⚠️ +3 B
Build Cache
Canary PR Change
0.pack gzip 4.29 MB 4.28 MB
index.pack gzip 111 kB 111 kB
index.pack.old gzip 110 kB 110 kB
Total 4.51 MB 4.5 MB ✅ -3.26 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 334 kB 333 kB
app-page-exp..prod.js gzip 181 kB 181 kB
app-page-tur...dev.js gzip 333 kB 333 kB
app-page-tur..prod.js gzip 181 kB 181 kB
app-page-tur...dev.js gzip 330 kB 330 kB
app-page-tur..prod.js gzip 179 kB 179 kB
app-page.run...dev.js gzip 330 kB 330 kB
app-page.run..prod.js gzip 179 kB 179 kB
app-route-ex...dev.js gzip 76.2 kB 76.1 kB
app-route-ex..prod.js gzip 51.8 kB 51.8 kB
app-route-tu...dev.js gzip 76.2 kB 76.1 kB
app-route-tu..prod.js gzip 51.9 kB 51.8 kB
app-route-tu...dev.js gzip 75.8 kB 75.7 kB
app-route-tu..prod.js gzip 51.6 kB 51.6 kB
app-route.ru...dev.js gzip 75.8 kB 75.7 kB
app-route.ru..prod.js gzip 51.6 kB 51.5 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.4 kB 43.4 kB
pages-api-tu..prod.js gzip 33 kB 33 kB
pages-api.ru...dev.js gzip 43.4 kB 43.3 kB
pages-api.ru..prod.js gzip 33 kB 33 kB
pages-turbo....dev.js gzip 52.8 kB 52.7 kB
pages-turbo...prod.js gzip 38.6 kB 38.6 kB
pages.runtim...dev.js gzip 52.8 kB 52.7 kB
pages.runtim..prod.js gzip 38.6 kB 38.6 kB
server.runti..prod.js gzip 62.5 kB 62.5 kB
Total 2.96 MB 2.96 MB ✅ -1.75 kB
📝 Changed Files (25 files)

Files with changes:

  • app-page-exp..ntime.dev.js
  • app-page-exp..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page.runtime.dev.js
  • app-page.runtime.prod.js
  • app-route-ex..ntime.dev.js
  • app-route-ex..time.prod.js
  • app-route-tu..ntime.dev.js
  • app-route-tu..time.prod.js
  • app-route-tu..ntime.dev.js
  • app-route-tu..time.prod.js
  • app-route.runtime.dev.js
  • app-route.ru..time.prod.js
  • pages-api-tu..ntime.dev.js
  • pages-api-tu..time.prod.js
  • pages-api.runtime.dev.js
  • pages-api.ru..time.prod.js
  • ... and 5 more
View diffs
app-page-exp..ntime.dev.js
failed to diff
app-page-exp..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
app-page.runtime.dev.js
failed to diff
app-page.runtime.prod.js

Diff too large to display

app-route-ex..ntime.dev.js

Diff too large to display

app-route-ex..time.prod.js

Diff too large to display

app-route-tu..ntime.dev.js

Diff too large to display

app-route-tu..time.prod.js

Diff too large to display

app-route-tu..ntime.dev.js

Diff too large to display

app-route-tu..time.prod.js

Diff too large to display

app-route.runtime.dev.js

Diff too large to display

app-route.ru..time.prod.js

Diff too large to display

pages-api-tu..ntime.dev.js

Diff too large to display

pages-api-tu..time.prod.js

Diff too large to display

pages-api.runtime.dev.js

Diff too large to display

pages-api.ru..time.prod.js

Diff too large to display

pages-turbo...ntime.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

pages.runtime.prod.js

Diff too large to display

server.runtime.prod.js

Diff too large to display

📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/2683091e60c5885a42b0ffb2d836daf2ff611a24/next

@mmastrac mmastrac force-pushed the mmastrac/faster-link branch 3 times, most recently from 8db709c to 26eb2ce Compare March 17, 2026 17:27
Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@mmastrac mmastrac force-pushed the mmastrac/faster-link branch 3 times, most recently from 3f56550 to 45e594c Compare March 17, 2026 19:16
Comment thread .github/workflows/build_and_deploy.yml
@nextjs-bot nextjs-bot added the Turbopack Related to Turbopack with Next.js. label Mar 17, 2026
sack1580-oss

This comment was marked as spam.

sack1580-oss

This comment was marked as spam.

Comment thread .cargo/config.toml Outdated
Comment thread .cargo/config.toml Outdated
Comment thread .cargo/config.toml Outdated
Comment thread .github/workflows/build_and_test.yml
Comment thread Cargo.toml Outdated
Comment thread .github/workflows/build_and_deploy.yml Outdated
Comment thread .github/workflows/build_and_deploy.yml
@mmastrac mmastrac force-pushed the mmastrac/faster-link branch 7 times, most recently from e01fca0 to d685c45 Compare March 19, 2026 17:04
- Refactor build_and_deploy.yml: replace per-target matrix entries with
  mmm-matrix declarative config, consolidate docker build script inline,
  pin actions to commit SHAs
- Simplify .cargo/config.toml using cfg(true) (RFC 3695) to eliminate
  rustflag duplication across target sections
- Remove GNU linker flags (rust-lld is now default on x86_64-linux-gnu)
- Use rust-lld directly for musl targets, remove unused armv7 section
- Add cargo xtask print-rustflags to replace .github/rustflags.yml
- Release profile: thin LTO + codegen-units=64 for faster builds
- Add --log-order stream to TURBO_ARGS for live build output
- Remove mold linker integration from CI
@mmastrac mmastrac force-pushed the mmastrac/faster-link branch from d685c45 to bee0063 Compare March 19, 2026 18:25
@mmastrac mmastrac marked this pull request as ready for review March 19, 2026 19:51
@mmastrac mmastrac requested a review from bgw March 19, 2026 22:13
Copy link
Copy Markdown
Member

@bgw bgw left a comment

Choose a reason for hiding this comment

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

This looks really good. Thank you for digging deep and fixing/documenting all of this cruft!

Comment thread .cargo/config.toml
Comment thread .cargo/config.toml
Comment thread .cargo/config.toml Outdated
Comment thread .github/workflows/build_and_deploy.yml
Comment on lines +360 to +361
if [ "${{ matrix.os }}" != "windows" ]; then
strip -x packages/next-swc/native/next-swc.*.node
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Don't we still need to do something to strip the binary on windows?

We could do the stripping with a cargo option, we've just avoided it because we don't want to do the stripping on locally-built versions, and we only want to do it in CI.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We don't currently strip on Windows so I left this status quo, but there's definitely some extra bytes in the release left on the floor here. I don't know if we have the right packages installed on the windows builders (strip and llvm-strip didn't work IIRC). I can try to pick this off in a follow-up.

Comment thread .github/workflows/build_and_deploy.yml Outdated
Comment thread Cargo.toml Outdated
@mmastrac mmastrac enabled auto-merge (squash) March 20, 2026 21:05
@mmastrac mmastrac disabled auto-merge March 20, 2026 21:12
@mmastrac mmastrac merged commit 75193d5 into canary Mar 20, 2026
177 of 179 checks passed
@mmastrac mmastrac deleted the mmastrac/faster-link branch March 20, 2026 21:12
@github-actions github-actions Bot added the locked label Apr 4, 2026
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Apr 4, 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. locked Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants