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

[Fizz] Add resumeAndPrerender to Static Rendering #30950

Merged
merged 4 commits into from
Sep 12, 2024

Conversation

sebmarkbage
Copy link
Collaborator

This is only in the same experimental exports as resume. Useful with Postpone/Halt.

We already have prerender() to create a partial tree with postponed state. We also have resume() to dynamically resume such a tree.

This lets you do a new prerender by resuming an already existing postponed state. Basically creating a chain of preludes. The next prelude would include the scripts to patch up the document.

This mostly just works since both prerender and resume are already implemented using the same code so we just enable both at the root. I'm sure we'll find some edge cases since this wasn't considered when it was first written but so far I've only found an unrelated existing bug with keyPath fixed here.

Copy link

vercel bot commented Sep 12, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-compiler-playground ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 12, 2024 2:27am

@react-sizebot
Copy link

react-sizebot commented Sep 12, 2024

Comparing: d6cb4e7...121296e

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.82 kB 1.82 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 506.54 kB 506.54 kB = 90.52 kB 90.52 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 514.44 kB 514.44 kB = 91.85 kB 91.84 kB
facebook-www/ReactDOM-prod.classic.js = 602.81 kB 602.81 kB = 106.63 kB 106.63 kB
facebook-www/ReactDOM-prod.modern.js = 579.08 kB 579.08 kB = 102.76 kB 102.76 kB
oss-experimental/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-stable-rc/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-stable-semver/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-stable/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-experimental/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-stable-rc/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-stable-semver/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-stable/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-experimental/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-stable-rc/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-stable-semver/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-stable/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-stable-rc/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-stable-semver/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-stable/react-dom/static.node.js +26.22% 0.29 kB 0.36 kB +8.15% 0.18 kB 0.20 kB
oss-experimental/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-stable-rc/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-stable-semver/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-stable/react-dom/static.edge.js +19.47% 0.26 kB 0.31 kB +8.72% 0.17 kB 0.19 kB
oss-experimental/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-stable-rc/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-stable-semver/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-stable/react-dom/static.browser.js +19.03% 0.27 kB 0.32 kB +9.77% 0.17 kB 0.19 kB
oss-experimental/react-dom/cjs/react-dom-server.node.production.js +0.89% 245.18 kB 247.36 kB +0.31% 43.78 kB 43.91 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.production.js +0.79% 243.95 kB 245.88 kB +0.32% 42.71 kB 42.85 kB
oss-experimental/react-dom/cjs/react-dom-server.edge.production.js +0.77% 249.58 kB 251.51 kB +0.30% 44.70 kB 44.84 kB
oss-experimental/react-dom/cjs/react-dom-server.node.development.js +0.67% 392.90 kB 395.51 kB +0.20% 69.02 kB 69.16 kB
oss-stable-rc/react-server/cjs/react-server.production.js +0.57% 108.42 kB 109.04 kB +0.07% 19.75 kB 19.76 kB
oss-stable-semver/react-server/cjs/react-server.production.js +0.57% 108.42 kB 109.04 kB +0.07% 19.75 kB 19.76 kB
oss-stable/react-server/cjs/react-server.production.js +0.57% 108.42 kB 109.04 kB +0.07% 19.75 kB 19.76 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.development.js +0.56% 397.57 kB 399.82 kB +0.23% 69.64 kB 69.80 kB
oss-experimental/react-dom/cjs/react-dom-server.edge.development.js +0.56% 398.32 kB 400.57 kB +0.24% 69.74 kB 69.91 kB
oss-experimental/react-server/cjs/react-server.production.js +0.51% 121.76 kB 122.38 kB +0.02% 21.58 kB 21.58 kB
oss-stable-rc/react-server/cjs/react-server.development.js +0.44% 156.17 kB 156.85 kB +0.10% 28.56 kB 28.59 kB
oss-stable-semver/react-server/cjs/react-server.development.js +0.44% 156.17 kB 156.85 kB +0.10% 28.56 kB 28.59 kB
oss-stable/react-server/cjs/react-server.development.js +0.44% 156.17 kB 156.85 kB +0.10% 28.56 kB 28.59 kB
oss-experimental/react-server/cjs/react-server.development.js +0.38% 176.71 kB 177.39 kB +0.08% 31.34 kB 31.37 kB

Generated by 🚫 dangerJS against cd20701

Copy link
Collaborator

@gnoff gnoff left a comment

Choose a reason for hiding this comment

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

Missed an opportunity to call the API presume

@sebmarkbage sebmarkbage merged commit 4735220 into facebook:main Sep 12, 2024
184 checks passed
github-actions bot pushed a commit that referenced this pull request Sep 12, 2024
This is only in the same experimental exports as `resume`. Useful with
Postpone/Halt.

We already have `prerender()` to create a partial tree with postponed
state. We also have `resume()` to dynamically resume such a tree.

This lets you do a new prerender by resuming an already existing
postponed state. Basically creating a chain of preludes. The next
prelude would include the scripts to patch up the document.

This mostly just works since both prerender and resume are already
implemented using the same code so we just enable both at the root. I'm
sure we'll find some edge cases since this wasn't considered when it was
first written but so far I've only found an unrelated existing bug with
`keyPath` fixed here.

DiffTrain build for [4735220](4735220)
gnoff pushed a commit to vercel/next.js that referenced this pull request Sep 12, 2024
**breaking change for canary users: Bumps peer dependency of React from
`19.0.0-rc-7771d3a7-20240827` to `19.0.0-rc-94e652d5-20240912`**

[diff
facebook/react@7771d3a7...94e652d5](facebook/react@7771d3a...94e652d)

<details>
<summary>React upstream changes</summary>

- facebook/react#30952
- facebook/react#30950
- facebook/react#30946
- facebook/react#30934
- facebook/react#30947
- facebook/react#30945
- facebook/react#30938
- facebook/react#30936
- facebook/react#30879
- facebook/react#30888
- facebook/react#30931
- facebook/react#30930
- facebook/react#30832
- facebook/react#30929
- facebook/react#30926
- facebook/react#30925
- facebook/react#30905
- facebook/react#30900
- facebook/react#30910
- facebook/react#30906
- facebook/react#30899
- facebook/react#30919
- facebook/react#30708
- facebook/react#30907
- facebook/react#30897
- facebook/react#30896
- facebook/react#30895
- facebook/react#30887
- facebook/react#30889
- facebook/react#30893
- facebook/react#30892
- facebook/react#30891
- facebook/react#30882
- facebook/react#30881
- facebook/react#30870
- facebook/react#30849
- facebook/react#30878
- facebook/react#30865
- facebook/react#30869
- facebook/react#30875
- facebook/react#30800
- facebook/react#30762
- facebook/react#30831
- facebook/react#30866
- facebook/react#30853
- facebook/react#30850
- facebook/react#30847
- facebook/react#30842
- facebook/react#30837
- facebook/react#30848
- facebook/react#30844
- facebook/react#30839
- facebook/react#30802
- facebook/react#30841
- facebook/react#30827
- facebook/react#30826
- facebook/react#30825
- facebook/react#30824
- facebook/react#30840
- facebook/react#30838
- facebook/react#30836
- facebook/react#30819
- facebook/react#30816
- facebook/react#30814
- facebook/react#30813
- facebook/react#30812
- facebook/react#30811

</details>

---------

Co-authored-by: vercel-release-bot <infra+release@vercel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants