Skip to content
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

refactor(turbopack): Rewrite CollectiblesSource callsites to use OperationVc (part 2/3) #74168

Open
wants to merge 1 commit into
base: canary
Choose a base branch
from

Conversation

bgw
Copy link
Member

@bgw bgw commented Dec 20, 2024

OperationVcs should be used with CollectiblesSource instead of Vcs because collectibles represent a side-effect or implicit extra return value of a function's execution.

Copy link
Member Author

bgw commented Dec 20, 2024

@ijjk
Copy link
Member

ijjk commented Dec 20, 2024

Failing test suites

Commit: 31ebb3e

pnpm test-dev-turbo test/development/acceptance-app/ReactRefreshRequire.test.ts (turbopack)

  • ReactRefreshRequire app > re-runs accepted modules
Expand output

● ReactRefreshRequire app › re-runs accepted modules

expect(received).toEqual(expected) // deep equality

- Expected  - 0
+ Received  + 2

  Array [
+   "init FooV1",
+   "init FooV1",
    "init BarV2",
  ]

  47 |       `window.log.push('init BarV2'); export default function Bar() { return null; };`
  48 |     )
> 49 |     expect(await session.evaluate(() => (window as any).log)).toEqual([
     |                                                               ^
  50 |       'init BarV2',
  51 |     ])
  52 |

  at Object.toEqual (development/acceptance-app/ReactRefreshRequire.test.ts:49:63)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/app-dir-export/test/start.test.ts

  • app dir - with output export (next start) > production mode > should warn during next start with output standalone
Expand output

● app dir - with output export (next start) › production mode › should warn during next start with output standalone

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."

  46 |
  47 |       // TODO: Move this test to test/production to run in isolation.
> 48 |       ;(process.env.TURBOPACK_BUILD ? it.skip : it)(
     |                                                  ^
  49 |         'should warn during next start with output standalone',
  50 |         async () => {
  51 |           nextConfig.replace(`output: 'export'`, `output: 'standalone'`)

  at integration/app-dir-export/test/start.test.ts:48:50
  at integration/app-dir-export/test/start.test.ts:21:56
  at Object.describe (integration/app-dir-export/test/start.test.ts:20:1)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev-turbo test/e2e/app-dir/next-after-app-api-usage/index.test.ts (turbopack)

  • nextjs APIs in after() > request APIs inside after() > cannot be called in a dynamic page
Expand output

● nextjs APIs in after() › request APIs inside after() › cannot be called in a dynamic page

expect(received).toContain(expected) // indexOf

Expected substring: "[/request-apis/page-dynamic] nested connection(): error: Error: Route /request-apis/page-dynamic used \"connection\" inside \"after(...)\"."
Received string:    "   Loading config from /tmp/next-install-f0f51dd823cc99554d901cd6731dbca5778ff642aebf62c02cac168849ae31a8/next.config.js
 ○ Compiling /request-apis/page-dynamic ...
 ✓ Compiled /request-apis/page-dynamic in 2.7s
 GET /request-apis/page-dynamic 200 in 3307ms
[/request-apis/page-dynamic] headers(): error: Error: Route /request-apis/page-dynamic used \"headers\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"headers\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after

  at <unknown> (../app/request-apis/helpers.js:7:18)
     5 |   after(async () => {
     6 |     try {
  >  7 |       await headers()
       |                  ^
     8 |       console.log(`[${route}] headers(): ok`)
     9 |     } catch (err) {
    10 |       console.error(`[${route}] headers(): error:`, err)
  [/request-apis/page-dynamic] cookies(): error: Error: Route /request-apis/page-dynamic used \"cookies\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"cookies\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after
  at <unknown> (../app/request-apis/helpers.js:27:18)
  at <unknown> (../app/request-apis/helpers.js:15:10)
    25 |   after(async () => {
    26 |     try {
  > 27 |       await cookies()
       |                  ^
    28 |       console.log(`[${route}] cookies(): ok`)
    29 |     } catch (err) {
    30 |       console.error(`[${route}] cookies(): error:`, err)
  [/request-apis/page-dynamic] connection(): error: Error: Route /request-apis/page-dynamic used \"connection\" inside \"after(...)\". The `connection()` function is used to indicate the subsequent code must only run when there is an actual Request, but \"after(...)\" executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after
  at <unknown> (../app/request-apis/helpers.js:47:21)
  at <unknown> (../app/request-apis/helpers.js:35:10)
    45 |   after(async () => {
    46 |     try {
  > 47 |       await connection()
       |                     ^
    48 |       console.log(`[${route}] connection(): ok`)
    49 |     } catch (err) {
    50 |       console.error(`[${route}] connection(): error:`, err)
  [/request-apis/page-dynamic] nested headers(): error: Error: Route /request-apis/page-dynamic used \"headers\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"headers\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after
  at <unknown> (../app/request-apis/helpers.js:17:20)
  at <unknown> (../app/request-apis/helpers.js:55:10)
    15 |     after(async () => {
    16 |       try {
  > 17 |         await headers()
       |                    ^
    18 |         console.log(`[${route}] nested headers(): ok`)
    19 |       } catch (err) {
    20 |         console.error(`[${route}] nested headers(): error:`, err)
  [/request-apis/page-dynamic] nested cookies(): error: Error: Route /request-apis/page-dynamic used \"cookies\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"cookies\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after
  at <unknown> (../app/request-apis/helpers.js:37:20)
    35 |     after(async () => {
    36 |       try {
  > 37 |         await cookies()
       |                    ^
    38 |         console.log(`[${route}] nested cookies(): ok`)
    39 |       } catch (err) {
    40 |         console.error(`[${route}] nested cookies(): error:`, err)
  "
  at toContain (e2e/app-dir/next-after-app-api-usage/index.test.ts:82:22)
  at fn (lib/next-test-utils.ts:806:20)
  at Object.<anonymous> (e2e/app-dir/next-after-app-api-usage/index.test.ts:53:7)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/e2e/persistent-caching/persistent-caching.test.ts

  • persistent-caching > should persistent cache loaders
Expand output

● persistent-caching › should persistent cache loaders

expect(received).toBe(expected) // Object.is equality

Expected: "Timestamp = 1735953347552"
Received: "Timestamp = 1735953367890"

  55 |       const browser = await next.browser('/pages')
  56 |       // TODO Persistent Caching for webpack dev server is broken
> 57 |       expect(await browser.elementByCss('main').text()).toBe(pagesTimestamp)
     |                                                         ^
  58 |       await browser.close()
  59 |     }
  60 |   })

  at Object.toBe (e2e/persistent-caching/persistent-caching.test.ts:57:57)

Read more about building and testing Next.js in contributing.md.

@ijjk
Copy link
Member

ijjk commented Dec 20, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
buildDuration 23.7s 22s N/A
buildDurationCached 20.9s 18.6s N/A
nodeModulesSize 417 MB 417 MB N/A
nextStartRea..uration (ms) 567ms 563ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
1187-HASH.js gzip 52.6 kB 52.6 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.44 kB 5.44 kB N/A
bccd1874-HASH.js gzip 52.8 kB 52.8 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 233 B 235 B N/A
main-HASH.js gzip 34.1 kB 34.1 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.57 kB 4.57 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.34 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
_buildManifest.js gzip 749 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
index.html gzip 524 B 523 B N/A
link.html gzip 540 B 537 B N/A
withRouter.html gzip 521 B 520 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 206 kB 206 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
middleware-b..fest.js gzip 668 B 667 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.2 kB 31.2 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
274-experime...dev.js gzip 322 B 322 B
274.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 363 kB 363 kB
app-page-exp..prod.js gzip 129 kB 129 kB
app-page-tur..prod.js gzip 142 kB 142 kB
app-page-tur..prod.js gzip 138 kB 138 kB
app-page.run...dev.js gzip 352 kB 352 kB
app-page.run..prod.js gzip 125 kB 125 kB
app-route-ex...dev.js gzip 37.5 kB 37.5 kB
app-route-ex..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.4 kB 25.4 kB
app-route.ru...dev.js gzip 39.2 kB 39.2 kB
app-route.ru..prod.js gzip 25.4 kB 25.4 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.7 kB 21.7 kB
pages.runtim...dev.js gzip 27.5 kB 27.5 kB
pages.runtim..prod.js gzip 21.7 kB 21.7 kB
server.runti..prod.js gzip 916 kB 916 kB
Overall change 2.44 MB 2.44 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js bgw/operationvc-collectibles-migration-pt2 Change
0.pack gzip 2.08 MB 2.08 MB ⚠️ +4.09 kB
index.pack gzip 75.9 kB 74.1 kB N/A
Overall change 2.08 MB 2.08 MB ⚠️ +4.09 kB
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: 31ebb3e

@bgw bgw requested a review from sokra December 20, 2024 04:02
@bgw bgw marked this pull request as ready for review December 20, 2024 04:07
@bgw bgw changed the base branch from bgw/operationvc-collectibles-migration-pt1 to graphite-base/74168 December 20, 2024 04:09
@bgw bgw force-pushed the graphite-base/74168 branch from 9a73684 to ad2282d Compare December 20, 2024 04:09
@bgw bgw force-pushed the bgw/operationvc-collectibles-migration-pt2 branch from ee9840c to ab2f916 Compare December 20, 2024 04:09
@bgw bgw changed the base branch from graphite-base/74168 to canary December 20, 2024 04:10
@bgw bgw force-pushed the bgw/operationvc-collectibles-migration-pt2 branch from ab2f916 to fc3c612 Compare December 20, 2024 04:10
@bgw bgw force-pushed the bgw/operationvc-collectibles-migration-pt2 branch from fc3c612 to d36441f Compare January 3, 2025 01:49
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.

2 participants