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

[Flight] rename prerender to unstable_prerender and include in stable channel #31724

Merged
merged 1 commit into from
Dec 10, 2024

Conversation

gnoff
Copy link
Collaborator

@gnoff gnoff commented Dec 10, 2024

We added an experimental prerender API to flight. This change exposes this API in stable channels prefixed as unstable_prerender. We have high confidence this API should exist but because we have not yet settled on how to handle resuming/replaying of RSC streams we may need to change the API contract to suit future needs. This release will allow us to get more usage out of the existing implemented functionality without requiring you to use experimental builds which will open up greater adoption and opportunity for feedback.

the prerender implementation is documented in the react-server package. As with all RSC APIs implemented in bundler specific binding packages these aren't intended to be called by end users but instead be used by frameworks implementing React Server Components.

Previously prerender was exposed unprefixed and only in the experimental channel. This PR renames the export across all channels to unstable_prerender so users of this previously unprefixed api will need to update to the unstable form. This isn't a breaking change because it was only exposed in the experimental channel which does not follow semver. The reason we don't expose it under both names is that users may feature detect the unprefixed form and then when we finally do ship it as unprefixed we may change the function signature and break this code. Changing the name now is much safer.

Copy link

vercel bot commented Dec 10, 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 Dec 10, 2024 7:48pm

@react-sizebot
Copy link

react-sizebot commented Dec 10, 2024

Comparing: 4a8fc0f...1dba5f1

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 = 510.76 kB 510.76 kB = 91.41 kB 91.41 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 = 515.69 kB 515.69 kB = 92.12 kB 92.12 kB
facebook-www/ReactDOM-prod.classic.js = 595.61 kB 595.61 kB = 105.12 kB 105.12 kB
facebook-www/ReactDOM-prod.modern.js = 585.88 kB 585.88 kB = 103.55 kB 103.55 kB
oss-experimental/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-stable/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-stable/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-stable/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-stable/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-stable-rc/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-stable-semver/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-stable/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-experimental/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-stable-rc/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-stable-semver/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-stable/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-experimental/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-stable-rc/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-stable-semver/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-stable/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-experimental/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable-rc/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable-semver/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 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-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-stable/react-server-dom-webpack/static.edge.js +9.44% 0.29 kB 0.31 kB +3.91% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-stable/react-server-dom-turbopack/static.edge.js +9.31% 0.29 kB 0.32 kB +3.33% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-stable/react-server-dom-webpack/static.browser.js +9.25% 0.29 kB 0.32 kB +3.89% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-stable-rc/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-stable-semver/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-stable/react-server-dom-turbopack/static.browser.js +9.12% 0.30 kB 0.32 kB +3.30% 0.18 kB 0.19 kB
oss-experimental/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-stable-rc/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-stable-semver/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-stable/react-server-dom-esm/static.node.js +8.60% 0.31 kB 0.34 kB +2.70% 0.19 kB 0.19 kB
oss-experimental/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-stable-rc/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-stable-semver/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-stable/react-server-dom-webpack/static.node.js +8.39% 0.32 kB 0.35 kB +3.16% 0.19 kB 0.20 kB
oss-experimental/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-stable-rc/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-stable-semver/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-stable/react-server-dom-turbopack/static.node.js +8.28% 0.33 kB 0.35 kB +4.76% 0.19 kB 0.20 kB
oss-experimental/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable-rc/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable-semver/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable/react-server-dom-webpack/static.node.unbundled.js +7.89% 0.34 kB 0.37 kB +3.55% 0.20 kB 0.20 kB
oss-stable-rc/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +1.60% 88.00 kB 89.41 kB +1.39% 18.40 kB 18.66 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +1.60% 88.00 kB 89.41 kB +1.39% 18.40 kB 18.66 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +1.60% 88.00 kB 89.41 kB +1.39% 18.40 kB 18.66 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +1.50% 91.48 kB 92.86 kB +0.75% 18.89 kB 19.03 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +1.50% 91.48 kB 92.86 kB +0.75% 18.89 kB 19.03 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +1.50% 91.48 kB 92.86 kB +0.75% 18.89 kB 19.03 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +1.50% 91.84 kB 93.22 kB +0.76% 19.00 kB 19.14 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +1.50% 91.84 kB 93.22 kB +0.76% 19.00 kB 19.14 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +1.50% 91.84 kB 93.22 kB +0.76% 19.00 kB 19.14 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +1.49% 91.90 kB 93.27 kB +0.76% 19.00 kB 19.14 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +1.49% 91.90 kB 93.27 kB +0.76% 19.00 kB 19.14 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +1.49% 91.90 kB 93.27 kB +0.76% 19.00 kB 19.14 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +1.49% 91.92 kB 93.29 kB +0.78% 19.01 kB 19.16 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +1.49% 91.92 kB 93.29 kB +0.78% 19.01 kB 19.16 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +1.49% 91.92 kB 93.29 kB +0.78% 19.01 kB 19.16 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1.49% 93.98 kB 95.38 kB +1.28% 19.36 kB 19.61 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1.49% 93.98 kB 95.38 kB +1.28% 19.36 kB 19.61 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1.49% 93.98 kB 95.38 kB +1.28% 19.36 kB 19.61 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +1.48% 94.97 kB 96.38 kB +1.32% 19.56 kB 19.82 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +1.48% 94.97 kB 96.38 kB +1.32% 19.56 kB 19.82 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +1.48% 94.97 kB 96.38 kB +1.32% 19.56 kB 19.82 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +1.47% 95.04 kB 96.43 kB +1.28% 19.58 kB 19.83 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +1.47% 95.04 kB 96.43 kB +1.28% 19.58 kB 19.83 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +1.47% 95.04 kB 96.43 kB +1.28% 19.58 kB 19.83 kB
oss-stable-rc/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +1.28% 133.23 kB 134.94 kB +1.06% 24.98 kB 25.25 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +1.28% 133.23 kB 134.94 kB +1.06% 24.98 kB 25.25 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +1.28% 133.23 kB 134.94 kB +1.06% 24.98 kB 25.25 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +1.22% 139.93 kB 141.64 kB +1.09% 26.01 kB 26.29 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +1.22% 139.93 kB 141.64 kB +1.09% 26.01 kB 26.29 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +1.22% 139.93 kB 141.64 kB +1.09% 26.01 kB 26.29 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +1.21% 141.07 kB 142.77 kB +1.02% 26.30 kB 26.56 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +1.21% 141.07 kB 142.77 kB +1.02% 26.30 kB 26.56 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +1.21% 141.07 kB 142.77 kB +1.02% 26.30 kB 26.56 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +1.21% 141.14 kB 142.84 kB +1.02% 26.31 kB 26.58 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +1.21% 141.14 kB 142.84 kB +1.02% 26.31 kB 26.58 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +1.21% 141.14 kB 142.84 kB +1.02% 26.31 kB 26.58 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +1.17% 137.12 kB 138.72 kB +0.37% 25.63 kB 25.72 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +1.17% 137.12 kB 138.72 kB +0.37% 25.63 kB 25.72 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +1.17% 137.12 kB 138.72 kB +0.37% 25.63 kB 25.72 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +1.16% 137.66 kB 139.26 kB +0.35% 25.75 kB 25.84 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +1.16% 137.66 kB 139.26 kB +0.35% 25.75 kB 25.84 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +1.16% 137.66 kB 139.26 kB +0.35% 25.75 kB 25.84 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +1.16% 138.57 kB 140.18 kB +0.35% 25.89 kB 25.98 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +1.16% 138.57 kB 140.18 kB +0.35% 25.89 kB 25.98 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +1.16% 138.57 kB 140.18 kB +0.35% 25.89 kB 25.98 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +1.15% 138.65 kB 140.25 kB +0.35% 25.91 kB 26.00 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +1.15% 138.65 kB 140.25 kB +0.35% 25.91 kB 26.00 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +1.15% 138.65 kB 140.25 kB +0.35% 25.91 kB 26.00 kB

Generated by 🚫 dangerJS against 8e2dbfb

@@ -10,3 +10,6 @@ if (process.env.NODE_ENV === 'production') {
if (s.prerenderToNodeStream) {
exports.prerenderToNodeStream = s.prerenderToNodeStream;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

We can drop this.

@gnoff gnoff force-pushed the add-unstable-prerender-flight branch from 5252edb to 1c928f2 Compare December 10, 2024 19:36
@gnoff gnoff changed the title [Flight] Add unstable_prerender to stable builds [Flight] rename prerender to unstable_prerender` and include in stable channel Dec 10, 2024
@gnoff gnoff changed the title [Flight] rename prerender to unstable_prerender` and include in stable channel [Flight] rename prerender to unstable_prerender and include in stable channel Dec 10, 2024
@gnoff gnoff force-pushed the add-unstable-prerender-flight branch 2 times, most recently from 9181778 to f5b04e7 Compare December 10, 2024 19:39
…able channel

We added an experimental `prerender` API to flight. This change exposes this API in stable channels prefixed as `unstable_prerender`. We have high confidence this API should exist but because we have not yet settled on how to handle resuming/replaying of RSC streams we may need to change the API contract to suit future needs. This release will allow us to get more usage out of the existing implemented functionality without requiring you to use experimental builds which will open up greater adoption and opportunity for feedback.

the `prerender` implementation is documented in the `react-server` package. As with all RSC APIs implemented in bundler specific binding packages these aren't inteded to be called by end users but instead be used by frameworks implementing React Server Components.

Previously `prerender` was exposed unprefixed and only in the experimental channel. This PR renames the export across all channels to `unstable_prerender` so users of this previously unprefixed api will need to update to the unstable form. This isn't a breaking change because it was only exposed in the experimental channel which does not follow semver. The reason we don't expose it under both names is that users may feature detect the unprefixed form and then when we finally do ship it as unprefixed we may change the function signature and break this code. Changing the name now is much safer.
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