Skip to content

Enable fixtures/view-transition deploy to Vercel #32994

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

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

eps1lon
Copy link
Collaborator

@eps1lon eps1lon commented Apr 23, 2025

Pending git integration with facebook/react

Summary

Automatically deploys fixtures/view-transition to Vercel (except changes only targetting compiler/.

There's repeated work from yarn build-for-vt-deploy that could be skipped if we wait for CI. But that requires setting up a webhook which makes testing harder. Let's see if we have issues with starved build containers first.

I tried to make it work with zero-config but combining create-react-app with express.js was too much of a hassle. So we directly output Build Output API compatible files. This is what we'd do if we switch to Vite in vite-plugin-ssr anyway.

How did you test this change?

Same settings on a fork and git push. We'll see how it behaves on PRs from forks.

@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Apr 23, 2025
@@ -13,7 +13,7 @@ module.exports = {
arrowParens: 'avoid',
overrides: [
{
files: ['*.code-workspace'],
files: ['*.code-workspace', '*.json'],
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

drive-by to allow force-formatting of .json files. They used to be handled by Hermes parser which can't parse .json files.


## Deploy

Deployed to https://react-fixture-view-transition-six.vercel.app
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I don't like the -six suffix. Maybe I accidentally sit on react-fixture-view-transition.vercel.app. I'll double check.

@react-sizebot
Copy link

react-sizebot commented Apr 23, 2025

Comparing: ad09027...b8fd442

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 +0.05% 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 527.72 kB 516.14 kB = 93.07 kB 91.87 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 = 633.34 kB 621.45 kB = 111.25 kB 110.00 kB
facebook-www/ReactDOM-prod.classic.js = 671.16 kB 654.82 kB = 117.72 kB 115.57 kB
facebook-www/ReactDOM-prod.modern.js = 661.44 kB 645.10 kB = 116.15 kB 114.04 kB
facebook-www/ReactReconciler-dev.modern.js = 831.22 kB 814.49 kB = 128.86 kB 127.32 kB
facebook-react-native/react-dom/cjs/ReactDOMProfiling-prod.js = 557.42 kB 545.73 kB = 98.18 kB 96.84 kB
facebook-www/ReactReconciler-prod.classic.js = 508.46 kB 497.73 kB = 81.12 kB 80.01 kB
facebook-react-native/react-dom/cjs/ReactDOMClient-prod.js = 551.91 kB 540.22 kB = 97.09 kB 95.77 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js = 663.84 kB 649.77 kB = 105.02 kB 103.73 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js = 663.81 kB 649.75 kB = 104.99 kB 103.70 kB
facebook-www/ReactReconciler-prod.modern.js = 498.15 kB 487.42 kB = 79.51 kB 78.40 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.js = 474.73 kB 464.33 kB = 75.80 kB 74.65 kB
oss-stable-semver/react-dom/cjs/react-dom-client.production.js = 527.59 kB 516.02 kB = 93.04 kB 91.84 kB
facebook-react-native/react-dom/cjs/ReactDOMProfiling-profiling.js = 586.08 kB 573.20 kB = 102.23 kB 100.84 kB
facebook-react-native/react-dom/cjs/ReactDOMClient-profiling.js = 580.14 kB 567.26 kB = 101.07 kB 99.68 kB
oss-stable/react-dom/cjs/react-dom-profiling.profiling.js = 561.37 kB 548.74 kB = 98.03 kB 96.73 kB
oss-stable-semver/react-dom/cjs/react-dom-profiling.profiling.js = 561.25 kB 548.62 kB = 98.00 kB 96.70 kB
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.js = 538.69 kB 526.32 kB = 84.68 kB 83.44 kB
facebook-www/ReactDOM-profiling.classic.js = 744.53 kB 726.85 kB = 127.79 kB 125.62 kB
facebook-www/ReactDOMTesting-prod.classic.js = 685.56 kB 669.22 kB = 121.39 kB 119.25 kB
facebook-www/ReactDOM-profiling.modern.js = 736.48 kB 718.80 kB = 126.48 kB 124.30 kB
facebook-www/ReactDOMTesting-prod.modern.js = 675.84 kB 659.50 kB = 119.83 kB 117.64 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.js = 402.14 kB 391.46 kB = 64.81 kB 63.74 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.production.js = 402.11 kB 391.44 kB = 64.78 kB 63.72 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.js = 431.36 kB 419.86 kB = 68.80 kB 67.62 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.profiling.js = 431.33 kB 419.83 kB = 68.78 kB 67.59 kB
oss-experimental/react-reconciler/cjs/react-reconciler-reflection.production.js = 6.54 kB 6.19 kB = 1.69 kB 1.64 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler-reflection.production.js = 6.54 kB 6.19 kB = 1.69 kB 1.64 kB
oss-stable/react-reconciler/cjs/react-reconciler-reflection.production.js = 6.54 kB 6.19 kB = 1.69 kB 1.64 kB
oss-experimental/react-reconciler/cjs/react-reconciler-reflection.development.js = 7.22 kB 6.84 kB = 1.69 kB 1.65 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler-reflection.development.js = 7.22 kB 6.84 kB = 1.69 kB 1.65 kB
oss-stable/react-reconciler/cjs/react-reconciler-reflection.development.js = 7.22 kB 6.84 kB = 1.69 kB 1.65 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/cjs/react-server-flight.production.js = 62.91 kB 62.78 kB = 12.52 kB 12.51 kB
oss-stable-semver/react-server/cjs/react-server-flight.production.js = 57.95 kB 57.82 kB = 11.65 kB 11.64 kB
oss-stable/react-server/cjs/react-server-flight.production.js = 57.95 kB 57.82 kB = 11.65 kB 11.64 kB
react-native/implementations/ReactFabric-dev.fb.js = 670.36 kB 663.57 kB = 108.80 kB 108.17 kB
react-native/implementations/ReactFabric-dev.js = 651.33 kB 644.54 kB = 105.63 kB 105.02 kB
react-native/implementations/ReactNativeRenderer-dev.js = 660.31 kB 652.63 kB = 107.04 kB 106.30 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js = 676.47 kB 668.07 kB = 109.79 kB 109.01 kB
oss-experimental/react-dom/unstable_server-external-runtime.js = 8.80 kB 8.69 kB = 2.28 kB 2.26 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js = 600.73 kB 593.03 kB = 96.43 kB 95.68 kB
facebook-www/ReactART-dev.classic.js = 724.08 kB 714.75 kB = 112.91 kB 112.11 kB
facebook-www/ReactART-dev.modern.js = 714.58 kB 705.25 kB = 111.18 kB 110.26 kB
facebook-www/ReactTestRenderer-dev.classic.js = 587.47 kB 579.52 kB = 94.90 kB 94.09 kB
facebook-www/ReactTestRenderer-dev.modern.js = 587.46 kB 579.52 kB = 94.90 kB 94.09 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js = 569.52 kB 561.65 kB = 91.85 kB 91.02 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js = 569.47 kB 561.60 kB = 91.84 kB 91.00 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js = 569.44 kB 561.57 kB = 91.83 kB 90.99 kB
oss-stable/react-art/cjs/react-art.development.js = 570.48 kB 562.59 kB = 91.09 kB 90.30 kB
oss-stable-semver/react-art/cjs/react-art.development.js = 570.40 kB 562.52 kB = 91.07 kB 90.27 kB
react-native/implementations/ReactFabric-profiling.fb.js = 409.97 kB 404.25 kB = 70.01 kB 69.54 kB
react-native/implementations/ReactFabric-prod.fb.js = 381.79 kB 376.43 kB = 65.90 kB 65.39 kB
oss-experimental/react-art/cjs/react-art.development.js = 661.18 kB 651.82 kB = 104.24 kB 103.38 kB
facebook-www/ReactART-prod.classic.js = 388.33 kB 382.82 kB = 64.99 kB 64.43 kB
facebook-www/ReactDOMTesting-dev.classic.js = 1,226.98 kB 1,209.26 kB = 203.73 kB 201.82 kB
facebook-www/ReactDOMTesting-dev.modern.js = 1,217.84 kB 1,200.12 kB = 202.02 kB 200.11 kB
facebook-www/ReactART-prod.modern.js = 378.35 kB 372.84 kB = 63.32 kB 62.80 kB
facebook-www/ReactDOM-dev.classic.js = 1,210.45 kB 1,192.72 kB = 200.02 kB 198.05 kB
facebook-www/ReactDOM-dev.modern.js = 1,201.31 kB 1,183.58 kB = 198.25 kB 196.27 kB
react-native/implementations/ReactFabric-profiling.js = 392.26 kB 386.47 kB = 66.79 kB 66.26 kB
react-native/implementations/ReactFabric-prod.js = 364.35 kB 358.94 kB = 62.82 kB 62.35 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js = 413.74 kB 407.55 kB = 70.64 kB 70.09 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js = 385.62 kB 379.79 kB = 66.53 kB 66.03 kB
oss-stable/react-dom/cjs/react-dom-profiling.development.js = 988.37 kB 973.07 kB = 165.84 kB 164.03 kB
oss-stable-semver/react-dom/cjs/react-dom-profiling.development.js = 988.25 kB 972.94 kB = 165.81 kB 164.00 kB
react-native/implementations/ReactNativeRenderer-profiling.js = 399.80 kB 393.56 kB = 68.01 kB 67.43 kB
oss-experimental/react-art/cjs/react-art.production.js = 347.64 kB 342.16 kB = 58.63 kB 58.12 kB
oss-stable/react-dom/cjs/react-dom-client.development.js = 971.93 kB 956.63 kB = 162.99 kB 161.19 kB
oss-stable-semver/react-dom/cjs/react-dom-client.development.js = 971.81 kB 956.50 kB = 162.97 kB 161.16 kB
react-native/implementations/ReactNativeRenderer-prod.js = 371.85 kB 365.99 kB = 63.93 kB 63.38 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.development.js = 1,164.92 kB 1,146.27 kB = 194.66 kB 192.26 kB
oss-experimental/react-dom/cjs/react-dom-profiling.development.js = 1,164.77 kB 1,146.12 kB = 193.81 kB 191.41 kB
oss-experimental/react-dom/cjs/react-dom-client.development.js = 1,148.38 kB 1,129.72 kB = 190.96 kB 188.57 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js = 360.90 kB 354.71 kB = 61.67 kB 61.10 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js = 336.14 kB 330.31 kB = 58.25 kB 57.72 kB
facebook-react-native/react-dom/cjs/ReactDOMProfiling-dev.js = 1,024.04 kB 1,006.17 kB = 171.72 kB 169.27 kB
facebook-react-native/react-dom/cjs/ReactDOMClient-dev.js = 1,007.71 kB 989.84 kB = 168.86 kB 166.45 kB
oss-stable/react-art/cjs/react-art.production.js = 306.75 kB 301.15 kB = 51.78 kB 51.25 kB
oss-stable-semver/react-art/cjs/react-art.production.js = 306.67 kB 301.07 kB = 51.76 kB 51.22 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.production.js = 647.75 kB 635.86 kB = 114.84 kB 113.57 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 633.34 kB 621.45 kB = 111.25 kB 110.00 kB
oss-experimental/react-dom/cjs/react-dom-profiling.profiling.js = 699.33 kB 686.17 kB = 121.10 kB 119.79 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.js = 319.35 kB 313.31 kB = 55.45 kB 54.93 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js = 789.25 kB 774.32 kB = 123.10 kB 121.78 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.js = 319.17 kB 313.14 kB = 55.41 kB 54.89 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.production.js = 319.10 kB 313.06 kB = 55.39 kB 54.87 kB
facebook-www/ReactReconciler-dev.classic.js = 840.43 kB 823.69 kB = 130.59 kB 129.04 kB
facebook-www/ReactReconciler-dev.modern.js = 831.22 kB 814.49 kB = 128.86 kB 127.32 kB
facebook-react-native/react-dom/cjs/ReactDOMProfiling-prod.js = 557.42 kB 545.73 kB = 98.18 kB 96.84 kB
facebook-www/ReactReconciler-prod.classic.js = 508.46 kB 497.73 kB = 81.12 kB 80.01 kB
facebook-react-native/react-dom/cjs/ReactDOMClient-prod.js = 551.91 kB 540.22 kB = 97.09 kB 95.77 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js = 663.84 kB 649.77 kB = 105.02 kB 103.73 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js = 663.81 kB 649.75 kB = 104.99 kB 103.70 kB
facebook-www/ReactReconciler-prod.modern.js = 498.15 kB 487.42 kB = 79.51 kB 78.40 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.js = 474.73 kB 464.33 kB = 75.80 kB 74.65 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 527.72 kB 516.14 kB = 93.07 kB 91.87 kB
oss-stable-semver/react-dom/cjs/react-dom-client.production.js = 527.59 kB 516.02 kB = 93.04 kB 91.84 kB
facebook-react-native/react-dom/cjs/ReactDOMProfiling-profiling.js = 586.08 kB 573.20 kB = 102.23 kB 100.84 kB
facebook-react-native/react-dom/cjs/ReactDOMClient-profiling.js = 580.14 kB 567.26 kB = 101.07 kB 99.68 kB
oss-stable/react-dom/cjs/react-dom-profiling.profiling.js = 561.37 kB 548.74 kB = 98.03 kB 96.73 kB
oss-stable-semver/react-dom/cjs/react-dom-profiling.profiling.js = 561.25 kB 548.62 kB = 98.00 kB 96.70 kB
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.js = 538.69 kB 526.32 kB = 84.68 kB 83.44 kB
facebook-www/ReactDOM-profiling.classic.js = 744.53 kB 726.85 kB = 127.79 kB 125.62 kB
facebook-www/ReactDOMTesting-prod.classic.js = 685.56 kB 669.22 kB = 121.39 kB 119.25 kB
facebook-www/ReactDOM-profiling.modern.js = 736.48 kB 718.80 kB = 126.48 kB 124.30 kB
facebook-www/ReactDOMTesting-prod.modern.js = 675.84 kB 659.50 kB = 119.83 kB 117.64 kB
facebook-www/ReactDOM-prod.classic.js = 671.16 kB 654.82 kB = 117.72 kB 115.57 kB
facebook-www/ReactDOM-prod.modern.js = 661.44 kB 645.10 kB = 116.15 kB 114.04 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.js = 402.14 kB 391.46 kB = 64.81 kB 63.74 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.production.js = 402.11 kB 391.44 kB = 64.78 kB 63.72 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.js = 431.36 kB 419.86 kB = 68.80 kB 67.62 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.profiling.js = 431.33 kB 419.83 kB = 68.78 kB 67.59 kB
oss-experimental/react-reconciler/cjs/react-reconciler-reflection.production.js = 6.54 kB 6.19 kB = 1.69 kB 1.64 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler-reflection.production.js = 6.54 kB 6.19 kB = 1.69 kB 1.64 kB
oss-stable/react-reconciler/cjs/react-reconciler-reflection.production.js = 6.54 kB 6.19 kB = 1.69 kB 1.64 kB
oss-experimental/react-reconciler/cjs/react-reconciler-reflection.development.js = 7.22 kB 6.84 kB = 1.69 kB 1.65 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler-reflection.development.js = 7.22 kB 6.84 kB = 1.69 kB 1.65 kB
oss-stable/react-reconciler/cjs/react-reconciler-reflection.development.js = 7.22 kB 6.84 kB = 1.69 kB 1.65 kB

Generated by 🚫 dangerJS against b8fd442

Comment on lines 9 to +15
"dependencies": {
"@babel/core": "7.26.0",
"@babel/plugin-proposal-private-property-in-object": "7.21.11",
"@babel/register": "^7.25.9",
"babel-preset-react-app": "10.0.1",
"express": "^4.14.0",
"http-proxy-middleware": "3.0.3",
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

These are used when running the server so I classified them as prod dependencies. This enables a simple yarn install --production to avoid file limits when deploying. The alternative is bundling the server via ncc but that was its own fight I lost.

@eps1lon eps1lon force-pushed the sebbie/vt-deploy-build-output-api branch from 77a9784 to b8fd442 Compare April 24, 2025 08:28
@eps1lon eps1lon marked this pull request as ready for review May 6, 2025 09:46
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