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

Deprecate concurrentFeatures with runtime #34068

Merged
merged 22 commits into from
Feb 8, 2022
Merged

Conversation

shuding
Copy link
Member

@shuding shuding commented Feb 7, 2022

As noted in #31317, this PR removes experimental.concurrentFeatures with the new experimental.runtime flag. The new runtime currently controls the global Fizz runtime which can be set to:

  • undefined: default value, disables Fizz
  • 'edge': the concurrentFeatures behavior, enables Fizz with the edge runtime for all pages
  • 'nodejs': enables Fizz with the node runtime for all pages

Todos

  • Update corresponding docs
  • Add basic tests for the new 'nodejs' runtime

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. type: next labels Feb 7, 2022
@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@shuding shuding marked this pull request as ready for review February 7, 2022 21:16
@ijjk

This comment has been minimized.

packages/next/server/render.tsx Show resolved Hide resolved
packages/next/server/render.tsx Outdated Show resolved Hide resolved
huozhi
huozhi previously approved these changes Feb 8, 2022
Copy link
Member

@huozhi huozhi left a comment

Choose a reason for hiding this comment

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

Looks great 🚀

@ijjk
Copy link
Member

ijjk commented Feb 8, 2022

Failing test suites

Commit: c6a8413

yarn testheadless test/integration/middleware/core/test/index.test.js

  • Middleware base tests > dev mode > /fr should rewrite to Vercel
Expand output

● Middleware base tests › dev mode › /fr should rewrite to Vercel

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

Expected: "Develop. Preview. Ship. For the best frontend teams – Vercel"
Received: ""

  332 |     // const browser = await webdriver(context.appPort, '/rewrite-me-to-vercel')
  333 |     // TODO: running this to chech the window.location.pathname hangs for some reason;
> 334 |     expect($('head > title').text()).toBe(
      |                                      ^
  335 |       'Develop. Preview. Ship. For the best frontend teams – Vercel'
  336 |     )
  337 |   })

  at Object.<anonymous> (integration/middleware/core/test/index.test.js:334:38)

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

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member

ijjk commented Feb 8, 2022

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary shuding/next.js shu/ee56 Change
buildDuration 14.9s 14.9s ⚠️ +10ms
buildDurationCached 5.9s 6.2s ⚠️ +302ms
nodeModulesSize 359 MB 359 MB ⚠️ +3.77 kB
Page Load Tests Overall increase ✓
vercel/next.js canary shuding/next.js shu/ee56 Change
/ failed reqs 0 0
/ total time (seconds) 2.931 2.918 -0.01
/ avg req/sec 853.01 856.76 +3.75
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.133 1.124 -0.01
/error-in-render avg req/sec 2206.9 2223.81 +16.91
Client Bundles (main, webpack, commons)
vercel/next.js canary shuding/next.js shu/ee56 Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42 kB 42 kB
main-HASH.js gzip 27.5 kB 27.5 kB
webpack-HASH.js gzip 1.44 kB 1.44 kB
Overall change 71.2 kB 71.2 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary shuding/next.js shu/ee56 Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary shuding/next.js shu/ee56 Change
_app-HASH.js gzip 1.36 kB 1.36 kB
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 312 B
css-HASH.js gzip 326 B 326 B
dynamic-HASH.js gzip 2.57 kB 2.57 kB
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 919 B 919 B
image-HASH.js gzip 5.01 kB 5.01 kB
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 2.26 kB 2.26 kB
routerDirect..HASH.js gzip 321 B 321 B
script-HASH.js gzip 383 B 383 B
withRouter-HASH.js gzip 318 B 318 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 14.7 kB 14.7 kB
Client Build Manifests
vercel/next.js canary shuding/next.js shu/ee56 Change
_buildManifest.js gzip 458 B 458 B
Overall change 458 B 458 B
Rendered Page Sizes
vercel/next.js canary shuding/next.js shu/ee56 Change
index.html gzip 531 B 531 B
link.html gzip 544 B 544 B
withRouter.html gzip 525 B 525 B
Overall change 1.6 kB 1.6 kB

Default Build with SWC (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary shuding/next.js shu/ee56 Change
buildDuration 18.3s 18.5s ⚠️ +222ms
buildDurationCached 5.9s 5.8s -91ms
nodeModulesSize 359 MB 359 MB ⚠️ +3.77 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary shuding/next.js shu/ee56 Change
/ failed reqs 0 0
/ total time (seconds) 2.936 2.946 ⚠️ +0.01
/ avg req/sec 851.64 848.58 ⚠️ -3.06
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.136 1.135 0
/error-in-render avg req/sec 2201.22 2203.12 +1.9
Client Bundles (main, webpack, commons)
vercel/next.js canary shuding/next.js shu/ee56 Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.1 kB 42.1 kB
main-HASH.js gzip 27.5 kB 27.5 kB
webpack-HASH.js gzip 1.44 kB 1.44 kB
Overall change 71.3 kB 71.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary shuding/next.js shu/ee56 Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary shuding/next.js shu/ee56 Change
_app-HASH.js gzip 1.35 kB 1.35 kB
_error-HASH.js gzip 180 B 180 B
amp-HASH.js gzip 305 B 305 B
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.56 kB 2.56 kB
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 911 B 911 B
image-HASH.js gzip 5.05 kB 5.05 kB
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.28 kB 2.28 kB
routerDirect..HASH.js gzip 314 B 314 B
script-HASH.js gzip 375 B 375 B
withRouter-HASH.js gzip 309 B 309 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 14.7 kB 14.7 kB
Client Build Manifests
vercel/next.js canary shuding/next.js shu/ee56 Change
_buildManifest.js gzip 460 B 460 B
Overall change 460 B 460 B
Rendered Page Sizes
vercel/next.js canary shuding/next.js shu/ee56 Change
index.html gzip 533 B 533 B
link.html gzip 547 B 547 B
withRouter.html gzip 527 B 527 B
Overall change 1.61 kB 1.61 kB
Commit: 2b096e6

huozhi
huozhi previously approved these changes Feb 8, 2022
@timneutkens timneutkens merged commit 6944074 into vercel:canary Feb 8, 2022
@shuding shuding deleted the shu/ee56 branch February 8, 2022 13:17
kodiakhq bot pushed a commit that referenced this pull request Feb 8, 2022
As per React 18 recommendation, we should use e.g. `renderToReadableStream` whenever we use `createRoot`. This is particularly important for currently supported suspense features like `React.lazy` to work properly during SSR.

However, unless you have opted in to streaming support (via [the `runtime` flag](#34068)), we will wait until `onCompleteAll` before sending it (via the `generateStaticHTML` flag).

---

Fixes #33879
kodiakhq bot pushed a commit that referenced this pull request Feb 11, 2022
Follow up for #34068

Let minimalMode render HTML by streaming facilities
natew pushed a commit to natew/next.js that referenced this pull request Feb 16, 2022
natew pushed a commit to natew/next.js that referenced this pull request Feb 16, 2022
As per React 18 recommendation, we should use e.g. `renderToReadableStream` whenever we use `createRoot`. This is particularly important for currently supported suspense features like `React.lazy` to work properly during SSR.

However, unless you have opted in to streaming support (via [the `runtime` flag](vercel#34068)), we will wait until `onCompleteAll` before sending it (via the `generateStaticHTML` flag).

---

Fixes vercel#33879
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants