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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Node 20 #4719

Closed
ernestognw opened this issue Nov 1, 2023 · 1 comment 路 Fixed by #4756
Closed

Migrate to Node 20 #4719

ernestognw opened this issue Nov 1, 2023 · 1 comment 路 Fixed by #4756

Comments

@ernestognw
Copy link
Member

ernestognw commented Nov 1, 2023

馃 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.

@ernestognw
Copy link
Member Author

The release-v4.9 branch was updated to Node 16 in a83918d 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 3af6271 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant