-
Notifications
You must be signed in to change notification settings - Fork 30.3k
Turbopack: avoid chunk_item_id task and use selective cell access instead #88411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: sokra/aggregation-update-tracing
Are you sure you want to change the base?
Turbopack: avoid chunk_item_id task and use selective cell access instead #88411
Conversation
|
Allow CI Workflow Run
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer |
| && let Some(module_id) = module_id_map.get(&ident).await? | ||
| { | ||
| return Ok((*module_id).clone()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: **430 kB** → **430 kB** ✅ -86 B82 files with content-based hashes (individual files not comparable between builds) Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
|
38833eb to
df2c985
Compare
9dabe82 to
ba27300
Compare
Merging this PR will not alter performance
Comparing Footnotes
|
Failing test suitesCommit: df2c985 | About building and testing Next.js
Expand output● create-next-app --api (Headless App) › should create JavaScript project with --js flag ● create-next-app --api (Headless App) › should create TypeScript project with --ts flag ● create-next-app --api (Headless App) › should create project inside "src" directory with --src-dir flag ● create-next-app --api (Headless App) › should enable webpack dev with --webpack flag
Expand output● next-config-ts-type-error-esm › should throw with type error on build (ESM)
Expand output● turbopack unsupported features log › should not warn by default ● turbopack unsupported features log › should not warn with empty next.config.js ● turbopack unsupported features log › should warn with next.config.js with unsupported field
Expand output● create-next-app --app (App Router) › should create JavaScript project with --js flag ● create-next-app --app (App Router) › should create TypeScript project with --ts flag ● create-next-app --app (App Router) › should create project inside "src" directory with --src-dir flag ● create-next-app --app (App Router) › should create TailwindCSS project with --tailwind flag ● create-next-app --app (App Router) › should create an empty project with --empty flag ● create-next-app --app (App Router) › should create an empty TailwindCSS project with --empty flag
Expand output● FileSystemPublicRoutes › should not route to the index page ● FileSystemPublicRoutes › should route to exportPathMap defined routes in development ● FileSystemPublicRoutes › should serve JavaScript files correctly ● FileSystemPublicRoutes › should route to public folder files
Expand output● create-next-app --app (App Router) › should create JavaScript project with --js flag ● create-next-app --app (App Router) › should create TypeScript project with --ts flag ● create-next-app --app (App Router) › should create project inside "src" directory with --src-dir flag ● create-next-app --app (App Router) › should create TailwindCSS project with --tailwind flag ● create-next-app --app (App Router) › should create an empty project with --empty flag ● create-next-app --app (App Router) › should create an empty TailwindCSS project with --empty flag
Expand output● SSG data 404 › development mode › should hard navigate when a new deployment occurs ● SSG data 404 › development mode › should hard navigate when a new deployment occurs
Expand output● Middleware can set the matcher in its config › does add the header for root request ● Middleware can set the matcher in its config › adds the header for a matched path ● Middleware can set the matcher in its config › adds the header for a matched data path (with header) ● Middleware can set the matcher in its config › adds the header for a matched data path (without header) ● Middleware can set the matcher in its config › adds the header for another matched path ● Middleware can set the matcher in its config › adds the header for another matched data path ● Middleware can set the matcher in its config › does add the header for root data request ● Middleware can set the matcher in its config › should load matches in client matchers correctly ● Middleware can set the matcher in its config › should navigate correctly with matchers ● using a single matcher › does not add the header for root request ● using a single matcher › does not add the header for root data request ● using a single matcher › adds the header for a matched path ● using a single matcher › adds the headers for a matched data path (with header) ● using a single matcher › adds the header for a matched data path (without header) ● using a single matcher › does not add the header for an unmatched path ● using root matcher › adds the header to the / ● using root matcher › adds the header to the /index ● using root matcher › adds the header for a matched data path (with header) ● using root matcher › adds the header for a matched data path (without header) ● using a single matcher with i18n › adds the header for a matched path ● using a single matcher with i18n › adds the header for a mathed root path with /index ● using a single matcher with i18n › adds the headers for a matched data path ● using a single matcher with i18n › does not add the header for an unmatched path ● using a single matcher with i18n and trailingSlash › adds the header for a matched path ● using a single matcher with i18n and trailingSlash › adds the header for a mathed root path with /index ● using a single matcher with i18n and trailingSlash › adds the headers for a matched data path ● using a single matcher with i18n and trailingSlash › does not add the header for an unmatched path ● using a single matcher with i18n and basePath › adds the header for a matched path ● using a single matcher with i18n and basePath › adds the header for a mathed root path with /index ● using a single matcher with i18n and basePath › adds the headers for a matched data path ● using a single matcher with i18n and basePath › does not add the header for an unmatched path ● using a single matcher with i18n and basePath and trailingSlash › adds the header for a matched path ● using a single matcher with i18n and basePath and trailingSlash › adds the header for a mathed root path with /index ● using a single matcher with i18n and basePath and trailingSlash › adds the headers for a matched data path ● using a single matcher with i18n and basePath and trailingSlash › does not add the header for an unmatched path
Expand output● filesystem-caching with cache disabled › should cache or not cache loaders ● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change) ● filesystem-caching with cache disabled › should allow to change files while stopped (RCC change) ● filesystem-caching with cache disabled › should allow to change files while stopped (Pages change) ● filesystem-caching with cache disabled › should allow to change files while stopped (rename app page) ● filesystem-caching with cache disabled › should allow to change files while stopped (next config change) ● filesystem-caching with cache disabled › should allow to change files while stopped (env var change) ● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) ● filesystem-caching with cache enabled › should cache or not cache loaders ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change) ● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page) ● filesystem-caching with cache enabled › should allow to change files while stopped (next config change) ● filesystem-caching with cache enabled › should allow to change files while stopped (env var change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)
Expand output● next-image-proxy › loads images without any errors ● next-image-proxy › loads images without any errors ● next-image-proxy › should work with connection upgrade by removing it via filterReqHeaders()
Expand output● should parse JSON body ● should not throw if request body is already parsed in custom middleware ● should not throw if request's content-type is invalid
Expand output● next-config-ts-type-error-esm › should throw with type error on build (ESM)
Expand output● Custom routes › no-op rewrite › should not error for no-op rewrite and auto export dynamic route
Expand output● Dynamic Optional Routing › development mode › rendering › should render catch-all top-level route with multiple segments ● Dynamic Optional Routing › development mode › rendering › should render catch-all top-level route with single segment ● Dynamic Optional Routing › development mode › rendering › should render catch-all top-level route with no segments ● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with multiple segments ● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with single segment ● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with no segments ● Dynamic Optional Routing › development mode › rendering › should render catch-all nested route with no segments and leading slash ● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with multiple segments ● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with single segment ● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with no segments ● Dynamic Optional Routing › development mode › rendering › should match catch-all api route with no segments and leading slash ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths no segments ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths no segments and trailing slash ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 1 segment ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 1 segment and trailing slash ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 2 segments ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths 2 segments and trailing slash ● Dynamic Optional Routing › development mode › rendering › should fall back to top-level catch-all ● Dynamic Optional Routing › development mode › rendering › should match root path on undefined param ● Dynamic Optional Routing › development mode › rendering › should match root path on false param ● Dynamic Optional Routing › development mode › rendering › should match root path on null param ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths with fallback no segments ● Dynamic Optional Routing › development mode › rendering › should handle getStaticPaths with fallback 2 segments ● Dynamic Optional Routing › development mode › rendering › should fallback correctly when fallback enabled ● Dynamic Optional Routing › development mode › invalid pages › should fail to build when optional route has index.js at root ● Dynamic Optional Routing › development mode › invalid pages › should fail to build when optional route has same page at root ● Dynamic Optional Routing › development mode › invalid pages › should fail to build when mixed with regular catch-all ● Dynamic Optional Routing › development mode › invalid pages › should fail to build when optional but no catch-all
Expand output● 404 handling › custom _error › next dev › should normalize repeated slashes in redirects correctly ● 404 handling › custom _error › next dev › should handle double slashes correctly ● 404 handling › custom _error › next dev › should handle double slashes correctly with query ● 404 handling › custom _error › next dev › should handle double slashes correctly with hash ● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded ● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded and query ● 404 handling › custom _error › next dev › should handle double slashes correctly with encoded and hash ● 404 handling › custom _error › next dev › should handle backslashes correctly ● 404 handling › custom _error › next dev › should handle mixed backslashes/forward slashes correctly ● 404 handling › custom _error › next dev › should handle slashes in next/link correctly ● 404 handling › custom _error › next dev › should handle slashes in router push correctly ● 404 handling › custom _error › next dev › should have no error from encoded slashes in router push ● 404 handling › pages/404 › production mode › next dev › should normalize repeated slashes in redirects correctly ● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly ● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with query ● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with hash ● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with encoded ● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with encoded and query ● 404 handling › pages/404 › production mode › next dev › should handle double slashes correctly with encoded and hash ● 404 handling › pages/404 › production mode › next dev › should handle backslashes correctly ● 404 handling › pages/404 › production mode › next dev › should handle mixed backslashes/forward slashes correctly ● 404 handling › pages/404 › production mode › next dev › should handle slashes in next/link correctly ● 404 handling › pages/404 › production mode › next dev › should handle slashes in router push correctly ● 404 handling › pages/404 › production mode › next dev › should have no error from encoded slashes in router push
Expand output● filesystem-caching with cache disabled › should cache or not cache loaders ● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change) ● filesystem-caching with cache disabled › should allow to change files while stopped (RCC change) ● filesystem-caching with cache disabled › should allow to change files while stopped (Pages change) ● filesystem-caching with cache disabled › should allow to change files while stopped (rename app page) ● filesystem-caching with cache disabled › should allow to change files while stopped (next config change) ● filesystem-caching with cache disabled › should allow to change files while stopped (env var change) ● filesystem-caching with cache disabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) ● filesystem-caching with cache enabled › should cache or not cache loaders ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change) ● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page) ● filesystem-caching with cache enabled › should allow to change files while stopped (next config change) ● filesystem-caching with cache enabled › should allow to change files while stopped (env var change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)
Expand output● Middleware can set the matcher in its config › does add the header for root request ● Middleware can set the matcher in its config › adds the header for a matched path ● Middleware can set the matcher in its config › adds the header for a matched data path (with header) ● Middleware can set the matcher in its config › adds the header for a matched data path (without header) ● Middleware can set the matcher in its config › adds the header for another matched path ● Middleware can set the matcher in its config › adds the header for another matched data path ● Middleware can set the matcher in its config › does add the header for root data request ● Middleware can set the matcher in its config › should load matches in client matchers correctly ● Middleware can set the matcher in its config › should navigate correctly with matchers ● using a single matcher › does not add the header for root request ● using a single matcher › does not add the header for root data request ● using a single matcher › adds the header for a matched path ● using a single matcher › adds the headers for a matched data path (with header) ● using a single matcher › adds the header for a matched data path (without header) ● using a single matcher › does not add the header for an unmatched path ● using root matcher › adds the header to the / ● using root matcher › adds the header to the /index ● using root matcher › adds the header for a matched data path (with header) ● using root matcher › adds the header for a matched data path (without header) ● using a single matcher with i18n › adds the header for a matched path ● using a single matcher with i18n › adds the header for a mathed root path with /index ● using a single matcher with i18n › adds the headers for a matched data path ● using a single matcher with i18n › does not add the header for an unmatched path ● using a single matcher with i18n and trailingSlash › adds the header for a matched path ● using a single matcher with i18n and trailingSlash › adds the header for a mathed root path with /index ● using a single matcher with i18n and trailingSlash › adds the headers for a matched data path ● using a single matcher with i18n and trailingSlash › does not add the header for an unmatched path ● using a single matcher with i18n and basePath › adds the header for a matched path ● using a single matcher with i18n and basePath › adds the header for a mathed root path with /index ● using a single matcher with i18n and basePath › adds the headers for a matched data path ● using a single matcher with i18n and basePath › does not add the header for an unmatched path ● using a single matcher with i18n and basePath and trailingSlash › adds the header for a matched path ● using a single matcher with i18n and basePath and trailingSlash › adds the header for a mathed root path with /index ● using a single matcher with i18n and basePath and trailingSlash › adds the headers for a matched data path ● using a single matcher with i18n and basePath and trailingSlash › does not add the header for an unmatched path
Expand output● next.rs api writeToDisk multiple times › should allow to write to disk multiple times ● next.rs api › should detect the correct routes ● next.rs api › should detect the correct routes ● next.rs api › should allow to write root page to disk ● next.rs api › should allow to write root page to disk ● next.rs api › should allow to write pages edge api to disk ● next.rs api › should allow to write pages edge api to disk ● next.rs api › should allow to write pages Node.js api to disk ● next.rs api › should allow to write pages Node.js api to disk ● next.rs api › should allow to write app edge page to disk ● next.rs api › should allow to write app edge page to disk ● next.rs api › should allow to write app Node.js page to disk ● next.rs api › should allow to write app Node.js page to disk ● next.rs api › should allow to write pages edge page to disk ● next.rs api › should allow to write pages edge page to disk ● next.rs api › should allow to write pages Node.js page to disk ● next.rs api › should allow to write pages Node.js page to disk ● next.rs api › should allow to write app edge route to disk ● next.rs api › should allow to write app edge route to disk ● next.rs api › should allow to write app Node.js route to disk ● next.rs api › should allow to write app Node.js route to disk ● next.rs api › should have working HMR on client-side change on a page 0 ● next.rs api › should have working HMR on client-side change on a page 0 ● next.rs api › should have working HMR on client-side change on a page 1 ● next.rs api › should have working HMR on client-side change on a page 1 ● next.rs api › should have working HMR on client-side change on a page 2 ● next.rs api › should have working HMR on client-side change on a page 2 ● next.rs api › should have working HMR on server-side change on a page 0 ● next.rs api › should have working HMR on server-side change on a page 0 ● next.rs api › should have working HMR on server-side change on a page 1 ● next.rs api › should have working HMR on server-side change on a page 1 ● next.rs api › should have working HMR on server-side change on a page 2 ● next.rs api › should have working HMR on server-side change on a page 2 ● next.rs api › should have working HMR on client and server-side change on a page 0 ● next.rs api › should have working HMR on client and server-side change on a page 0 ● next.rs api › should have working HMR on client and server-side change on a page 1 ● next.rs api › should have working HMR on client and server-side change on a page 1 ● next.rs api › should have working HMR on client and server-side change on a page 2 ● next.rs api › should have working HMR on client and server-side change on a page 2 ● next.rs api › should have working HMR on client-side change on a app page 0 ● next.rs api › should have working HMR on client-side change on a app page 0 ● next.rs api › should have working HMR on client-side change on a app page 1 ● next.rs api › should have working HMR on client-side change on a app page 1 ● next.rs api › should have working HMR on client-side change on a app page 2 ● next.rs api › should have working HMR on client-side change on a app page 2 ● next.rs api › should have working HMR on server-side change on a app page 0 ● next.rs api › should have working HMR on server-side change on a app page 0 ● next.rs api › should have working HMR on server-side change on a app page 1 ● next.rs api › should have working HMR on server-side change on a app page 1 ● next.rs api › should have working HMR on server-side change on a app page 2 ● next.rs api › should have working HMR on server-side change on a app page 2 ● next.rs api › should allow to make many HMR updates ● next.rs api › should allow to make many HMR updates ● Test suite failed to run
Expand output● page features telemetry › detects --turbo correctly for ● page features telemetry › detects --turbo correctly for
Expand output● next-config-ts-nested-imports-cjs › should handle nested imports (CJS)
Expand output● Switchable runtime › Switchable runtime (dev) › should not include edge api routes and edge ssr routes into dev middleware manifest ● Switchable runtime › Switchable runtime (dev) › should sort edge SSR routes correctly ● Switchable runtime › Switchable runtime (dev) › should be able to navigate between edge SSR routes without any errors ● Switchable runtime › Switchable runtime (dev) › should not consume server.js file extension ● Switchable runtime › Switchable runtime (dev) › should build /api/hello and /api/edge as an api route with edge runtime ● Switchable runtime › Switchable runtime (dev) › should be possible to switch between runtimes in API routes ● Switchable runtime › Switchable runtime (dev) › should be possible to switch between runtimes in pages
Expand output● Graceful Shutdown › development (next dev) › should shut down child immediately
Expand output● filesystem-caching with cache enabled › should cache or not cache loaders ● filesystem-caching with cache enabled › should cache or not cache loaders ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RCC change) ● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change) ● filesystem-caching with cache enabled › should allow to change files while stopped (Pages change) ● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page) ● filesystem-caching with cache enabled › should allow to change files while stopped (rename app page) ● filesystem-caching with cache enabled › should allow to change files while stopped (next config change) ● filesystem-caching with cache enabled › should allow to change files while stopped (next config change) ● filesystem-caching with cache enabled › should allow to change files while stopped (env var change) ● filesystem-caching with cache enabled › should allow to change files while stopped (env var change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change) ● filesystem-caching with cache enabled › should allow to change files while stopped (RSC change, RCC change, Pages change, rename app page, next config change, env var change)
Expand output● multi-zone › should correctly respond for / ● multi-zone › should correctly respond for /guest ● multi-zone › should correctly respond for /blog/post-1 ● multi-zone › should correctly respond for /guest/blog/post-1 ● multi-zone › should correctly respond for /guest/another/post-1 ● multi-zone › should support HMR in both apps
Expand output● streaming SSR with custom server › should render page correctly under custom server |
ba27300 to
c557e1c
Compare
df2c985 to
1bb9198
Compare
c557e1c to
4173f77
Compare
1bb9198 to
4aedf59
Compare
| pub FxIndexMap< | ||
| ResolvedVc<NextDynamicEntryModule>, | ||
| (ResolvedVc<ModuleId>, ResolvedVc<OutputAssetsWithReferenced>), | ||
| (ModuleId, ResolvedVc<OutputAssetsWithReferenced>), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't this cause some unnecessary invalidations if the id changes? previously, it was a cell so it would invalidate less stuff along the way
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| (ModuleId, ResolvedVc<OutputAssetsWithReferenced>), | |
| (ResolvedVc<Box<dyn Module>>, ResolvedVc<OutputAssetsWithReferenced>), |
4173f77 to
55f87be
Compare
4aedf59 to
0fbd239
Compare
0fbd239 to
efccd44
Compare
55f87be to
6a7a1f5
Compare
efccd44 to
93ba0cc
Compare
229bf89 to
d3d174b
Compare
93ba0cc to
a520ee5
Compare
d3d174b to
2c0d6b2
Compare
a520ee5 to
d0eed51
Compare

What?
Use selection reads for module id to avoid functions