Closed ernestognw closed 10 months ago
The release-v4.9
branch was updated to Node 16 in a83918df1491d9c6a642a16f8c9a8ff93bf042cc to unblock the upgradeable contracts transpilation. This caused the following diff in the 4.9.5 release:
$ diff -qr contracts-4.9.3 contracts-4.9.5
Only in contracts-4.9.3/access: README.adoc
Files contracts-4.9.3/build/contracts/ERC1155.json and contracts-4.9.5/build/contracts/ERC1155.json differ
Files contracts-4.9.3/build/contracts/ERC1155PresetMinterPauser.json and contracts-4.9.5/build/contracts/ERC1155PresetMinterPauser.json differ
Files contracts-4.9.3/build/contracts/ERC20.json and contracts-4.9.5/build/contracts/ERC20.json differ
Files contracts-4.9.3/build/contracts/ERC20PresetFixedSupply.json and contracts-4.9.5/build/contracts/ERC20PresetFixedSupply.json differ
Files contracts-4.9.3/build/contracts/ERC20PresetMinterPauser.json and contracts-4.9.5/build/contracts/ERC20PresetMinterPauser.json differ
Files contracts-4.9.3/build/contracts/ERC721.json and contracts-4.9.5/build/contracts/ERC721.json differ
Files contracts-4.9.3/build/contracts/ERC721PresetMinterPauserAutoId.json and contracts-4.9.5/build/contracts/ERC721PresetMinterPauserAutoId.json differ
Files contracts-4.9.3/build/contracts/ERC777.json and contracts-4.9.5/build/contracts/ERC777.json differ
Files contracts-4.9.3/build/contracts/ERC777PresetFixedSupply.json and contracts-4.9.5/build/contracts/ERC777PresetFixedSupply.json differ
Files contracts-4.9.3/build/contracts/Escrow.json and contracts-4.9.5/build/contracts/Escrow.json differ
Files contracts-4.9.3/build/contracts/PaymentSplitter.json and contracts-4.9.5/build/contracts/PaymentSplitter.json differ
Files contracts-4.9.3/build/contracts/ProxyAdmin.json and contracts-4.9.5/build/contracts/ProxyAdmin.json differ
Files contracts-4.9.3/build/contracts/RefundEscrow.json and contracts-4.9.5/build/contracts/RefundEscrow.json differ
Files contracts-4.9.3/build/contracts/SafeERC20.json and contracts-4.9.5/build/contracts/SafeERC20.json differ
Files contracts-4.9.3/build/contracts/TimelockController.json and contracts-4.9.5/build/contracts/TimelockController.json differ
Files contracts-4.9.3/build/contracts/TokenTimelock.json and contracts-4.9.5/build/contracts/TokenTimelock.json differ
Files contracts-4.9.3/build/contracts/UpgradeableBeacon.json and contracts-4.9.5/build/contracts/UpgradeableBeacon.json differ
Files contracts-4.9.3/build/contracts/VestingWallet.json and contracts-4.9.5/build/contracts/VestingWallet.json differ
Only in contracts-4.9.3/crosschain: README.adoc
Only in contracts-4.9.3/finance: README.adoc
Only in contracts-4.9.3/governance: README.adoc
Only in contracts-4.9.3/interfaces: README.adoc
Files contracts-4.9.3/metatx/ERC2771Context.sol and contracts-4.9.5/metatx/ERC2771Context.sol differ
Only in contracts-4.9.3/metatx: README.adoc
Files contracts-4.9.3/package.json and contracts-4.9.5/package.json differ
Only in contracts-4.9.3/proxy: README.adoc
Only in contracts-4.9.3/security: README.adoc
Only in contracts-4.9.3/token/ERC1155: README.adoc
Only in contracts-4.9.3/token/ERC1155/presets: README.md
Only in contracts-4.9.3/token/ERC20: README.adoc
Files contracts-4.9.3/token/ERC20/extensions/ERC20Permit.sol and contracts-4.9.5/token/ERC20/extensions/ERC20Permit.sol differ
Files contracts-4.9.3/token/ERC20/extensions/IERC20Permit.sol and contracts-4.9.5/token/ERC20/extensions/IERC20Permit.sol differ
Only in contracts-4.9.3/token/ERC20/presets: README.md
Only in contracts-4.9.3/token/ERC721: README.adoc
Only in contracts-4.9.3/token/ERC721/presets: README.md
Only in contracts-4.9.3/token/ERC777: README.adoc
Only in contracts-4.9.3/token/common: README.adoc
Files contracts-4.9.3/utils/Context.sol and contracts-4.9.5/utils/Context.sol differ
Files contracts-4.9.3/utils/Multicall.sol and contracts-4.9.5/utils/Multicall.sol differ
Only in contracts-4.9.3/utils: README.adoc
Only in contracts-4.9.3/vendor/compound: LICENSE
Only in contracts-4.9.3/vendor/optimism: LICENSE
This is consistent with what we expected since the Multicall update in 3af62716dded52b323c688da0721099a420adfb8 but it curiously removes the .adoc
and .md
files. We should test what will be the produced diff between compiling and releasing with Node 16 (as of today) and Node 20.
This likely comes from a dependency (perhaps npm
) that installs a higher version when using 16.x instead of 14.x
🧐 Motivation
We have a few dependency PR updates that require a higher node version:
The minimum node version between both is
18
but ideally we should upgrade to LTS (20)📝 Details
We need to update the CI. If migrated correctly the CI should pass along with a PR solving this.
Note updating dependencies is considered highly sensitive so we need to be careful while upgrading.