react
react copied to clipboard
bump AppVeyor Node version from '10.x' to '14.x' (current Maintenance LTS version)
Summary
fixes #24891
For the full deepdive/context, see:
- https://github.com/facebook/react/issues/24891
The below is an excerpt from the above that is specifically relevant to this PR:
If AppVeyor is still in use, and it's still not possible to migrate the Windows builds to CircleCI, it would be good to upgrade to a modern version of node:
- https://nodejs.org/en/about/releases/
- node 14.x is the current Maintenance LTS
- node 16.x is the current Active LTS
Looking at
.circleci/config.yml
, the jobs seem to run on thecimg/openjdk:17.0.0-node
docker container:
- https://circleci.com/developer/images/image/cimg/openjdk
17.0.0-node
uses: node 14.17.6, yarn 1.22.5Looking at .codesandbox/ci.json, it appears to use node 14.x.
AppVeyor's Windows images include the following versions of node by default:
- https://www.appveyor.com/docs/windows-images-software/#node-js
8.x
is default Node.js installed on build workers- Node.js
16.8.0
(x86 and x64) - useCurrent
alias for latest16.x
release- Node.js
15.0.0
- 15.14.0 (x86 and x64)- Node.js
14.17.6
(x86 and x64) - default on VS 2019 image. UseLTS
alias for latest14.x
release- etc
So I think that either we should upgrade both AppVeyor and CircleCI to use a
16.x
version of node, or at the very least, should upgrade AppVeyor to use the14.x
version (i'm unsure if there is any official list of node versions that React is intended to support being built on, but if so, then should probably test against all of those versions)While this may not be too important currently (as presumably all of the build tools work at the moment), it will likely become more of an issue as time goes on, and the build tooling is upgraded to versions that will require newer versions of the node runtime:
eg. An improvement that would allow generating source maps for React would ideally be able to use a version of the
magic-string
library (which is used by a number of the Rollup plugins) that supportss.replace
, but this version requires Node12.x
or higher, which currently would presumably break on AppVeyor as it uses node10.x
:
- https://github.com/facebook/react/issues/20186
- https://github.com/facebook/react/pull/21946#discussion_r918677066
- https://github.com/Rich-Harris/magic-string/blob/master/CHANGELOG.md#0260-2022-03-03
- https://github.com/rollup/plugins/search?q=magic-string&type=code
How did you test this change?
I haven't.. but hopefully it will run automagically (or someone else can trigger it to run since AppVeyor is only set up to run on the main
branch)
Comparing: e225fa43ada4f4cf3d3ba4982cdd81bb093eaa46...15a04f3c3cff72e1c7cd2158627b808518558be5
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.min.js | = | 133.13 kB | 133.13 kB | = | 42.76 kB | 42.76 kB |
oss-experimental/react-dom/cjs/react-dom.production.min.js | = | 138.41 kB | 138.41 kB | = | 44.34 kB | 44.34 kB |
facebook-www/ReactDOM-prod.classic.js | = | 465.92 kB | 465.92 kB | = | 84.38 kB | 84.38 kB |
facebook-www/ReactDOM-prod.modern.js | = | 451.16 kB | 451.16 kB | = | 82.14 kB | 82.14 kB |
facebook-www/ReactDOMForked-prod.classic.js | = | 465.92 kB | 465.92 kB | = | 84.38 kB | 84.38 kB |
Significant size changes
Includes any change greater than 0.2%:
(No significant changes)
Generated by :no_entry_sign: dangerJS against 15a04f3c3cff72e1c7cd2158627b808518558be5
The unused config was now deleted. Thanks for drawing attention at it!