Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead#91858
Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead#91858
turbo_tasks::apply_effects, use Effects::apply instead#91858Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
turbo_tasks::apply_effects, use Effects::apply insteadturbo_tasks::apply_effects, use Effects::apply instead
turbo_tasks::apply_effects, use Effects::apply insteadturbo_tasks::apply_effects, use Effects::apply instead
Failing test suitesCommit: 55e9202 | About building and testing Next.js
Expand output● streaming SSR with custom server › should render page correctly under custom server
Expand output● Graceful Shutdown › development (next dev) › should shut down child immediately
Expand output● Telemetry CLI › production mode › cli session: babel tooling config ● Telemetry CLI › production mode › cli session: custom babel config (plugin) ● Telemetry CLI › production mode › cli session: package.json custom babel config (plugin) ● Telemetry CLI › production mode › cli session: custom babel config (preset)
Expand output● next-config-ts-import-json-cjs › should support import json (CJS)
Expand output● next-config-ts-import-json-cjs › should support import json (CJS)
Expand output● Invalid hrefs › development mode › should not have a race condition with a click handler ● Invalid hrefs › development mode › should not show error for function component with forwardRef ● Invalid hrefs › development mode › should not show error for class component as child of next/link ● Invalid hrefs › development mode › should handle child ref with React.createRef ● Invalid hrefs › development mode › should handle child ref that is a function ● Invalid hrefs › development mode › should handle child ref that is a function that returns a cleanup function
Expand output● instant-nav-panel › should open panel in waiting state without setting cookie ● instant-nav-panel › should show client nav state after clicking Start and navigating ● instant-nav-panel › should show loading skeleton during SPA navigation after clicking Start ● instant-nav-panel › should auto-open panel on page load when cookie is already set ● instant-nav-panel › should not set cookie when closing panel from waiting state
Expand output● Dynamic Routing › development mode › should render from pages ● Dynamic Routing › development mode › should render not render from src/pages
Expand output● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › delete a page and add it back › should load the page properly ● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should detect the changes and display it ● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should not reload unrelated pages ● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should update styles correctly ● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should update styles in a stateful component correctly ● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should update styles in a dynamic component correctly ● HMR - Hot Module Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › editing a page › should not full reload when nonlatin characters are used
Expand output● mcp-server get_server_action_by_id tool › should return action details via get_server_action_by_id tool ● mcp-server get_server_action_by_id tool › should return error for non-existent action ID ● mcp-server get_server_action_by_id tool › should return inline server action details
Expand output● getServerSideProps returns notFound: true › should not poll indefinitely
Expand output● Image Component basePath Tests › development mode › should load the images ● Image Component basePath Tests › development mode › should update the image on src change ● Image Component basePath Tests › development mode › should work when using flexbox ● Image Component basePath Tests › development mode › should show missing src error ● Image Component basePath Tests › development mode › should show invalid src error ● Image Component basePath Tests › development mode › should show invalid src error when protocol-relative ● Image Component basePath Tests › development mode › should correctly ignore prose styles
Expand output● Invalid hrefs › development mode › does not show error when mailto: is used as href on Link ● Invalid hrefs › development mode › does not show error when https:// is used as href in Link ● Invalid hrefs › development mode › does not show error when exotic protocols are used in href in Link ● Invalid hrefs › development mode › shows error when dynamic route mismatch is used on Link ● Invalid hrefs › development mode › shows error when internal href is used with external as ● Invalid hrefs › development mode › does not throw error when dynamic route mismatch is used on Link and params are manually provided ● Invalid hrefs › development mode › doesn't fail on invalid url ● Invalid hrefs › development mode › shows warning when dynamic route mismatch is used on Link
Expand output● Auto Export › dev › Supports commonjs 1 ● Auto Export › dev › Supports commonjs 2 ● Auto Export › dev › Refreshes query on mount ● Auto Export › dev › should update asPath after mount ● Auto Export › dev › should not replace URL with page name while asPath is delayed ● Auto Export › dev › should not show hydration warning from mismatching asPath
Expand output● TypeScript Features › default behavior › should render the page ● TypeScript Features › default behavior › should render the cookies page ● TypeScript Features › default behavior › should render the cookies page with cookies ● TypeScript Features › default behavior › should render the generics page ● TypeScript Features › default behavior › should render the angle bracket type assertions page ● TypeScript Features › default behavior › should respond to sync API route correctly ● TypeScript Features › default behavior › should respond to async API route correctly ● TypeScript Features › default behavior › should not fail to render when an inactive page has an error
Expand output● Preview mode with fallback pages › development mode › should get preview cookie correctly ● Preview mode with fallback pages › development mode › should not write preview index SSG page to cache ● Preview mode with fallback pages › development mode › should not write preview dynamic prerendered SSG page to cache no fallback ● Preview mode with fallback pages › development mode › should not write preview dynamic SSG page to cache no fallback ● Preview mode with fallback pages › development mode › should not write preview dynamic prerendered SSG page to cache with fallback ● Preview mode with fallback pages › development mode › should not write preview dynamic non-prerendered SSG page to cache with fallback
Expand output● HMR - Full Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › should warn about full reload in cli output - anonymous page function ● HMR - Full Reload, nextConfig: {"basePath":"/docs","assetPrefix":""} › should warn about full reload in cli output - runtime-error
Expand output● app-dir watch-config-file › should output config file change and restart server for app router ● app-dir watch-config-file › should show accurate Ready in duration after restart
Expand output● Invalid hrefs › development mode › should not have a race condition with a click handler ● Invalid hrefs › development mode › should not show error for function component with forwardRef ● Invalid hrefs › development mode › should not show error for class component as child of next/link ● Invalid hrefs › development mode › should handle child ref with React.createRef ● Invalid hrefs › development mode › should handle child ref that is a function ● Invalid hrefs › development mode › should handle child ref that is a function that returns a cleanup function
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 › next dev › should normalize repeated slashes in redirects correctly ● 404 handling › pages/404 › next dev › should handle double slashes correctly ● 404 handling › pages/404 › next dev › should handle double slashes correctly with query ● 404 handling › pages/404 › next dev › should handle double slashes correctly with hash ● 404 handling › pages/404 › next dev › should handle double slashes correctly with encoded ● 404 handling › pages/404 › next dev › should handle double slashes correctly with encoded and query ● 404 handling › pages/404 › next dev › should handle double slashes correctly with encoded and hash ● 404 handling › pages/404 › next dev › should handle backslashes correctly ● 404 handling › pages/404 › next dev › should handle mixed backslashes/forward slashes correctly ● 404 handling › pages/404 › next dev › should handle slashes in next/link correctly ● 404 handling › pages/404 › next dev › should handle slashes in router push correctly ● 404 handling › pages/404 › next dev › should have no error from encoded slashes in router push
Expand output● Error no pageProps › development mode › should load auto-export page correctly ● Error no pageProps › development mode › should load getStaticProps page correctly ● Error no pageProps › development mode › should load getServerSideProps page correctly ● Error no pageProps › development mode › should load 404 page correctly ● Error no pageProps › development mode › should navigate between pages correctly |
Merging this PR will degrade performance by 3.68%
Performance Changes
Comparing Footnotes
|
d6f9660 to
e1ace25
Compare
574b89e to
0c110c6
Compare
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
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📎 Tarball URL |
0c110c6 to
db950fd
Compare
There was a problem hiding this comment.
check that running with UPDATE=1 still works, by manually invalidating an Issue golden
There was a problem hiding this comment.
- The execution test output doesn't appear to be committed, and is always written? Running
cargo test -p turbopack-tests executionworks. UPDATE=1 cargo test -p turbopack-tests --test snapshotworks
7ed4ec1 to
457fced
Compare
496137a to
0d3274c
Compare
457fced to
e2af4d8
Compare
0d3274c to
d73c05c
Compare
d73c05c to
e24da4e
Compare
e24da4e to
55e9202
Compare

Having both
apply_effectsandEffects::applyis confusing.apply_effect's API seems a bit bad/dangerous because it combines work that should be done inside of a strongly-consistent operation (collecting the effects and reading theirVcs) with work that should be done at the top-level outside of any operation or turbo-task function (applying the effects).The first commit in this PR removes the
apply_effectAPI and tries to improve documentation, including adding a doctest that compiles.The second commit in this PR is an LLM-driven refactor to remove the
apply_effectcallsites.