astriaorg / optimism

Optimism is Ethereum, scaled.
https://optimism.io
MIT License
0 stars 0 forks source link

Notes on attempting to manually run install #1

Open jbowen93 opened 1 year ago

jbowen93 commented 1 year ago

Running yarn install on a M1 Mac doesn't work because a dependency requires leveldown which includes a script which rebuilds node-gyp from source every time we run yarn install which doesn’t work on macos.

https://github.com/nodejs/node-gyp/issues/1967

The specific dependency is inside of @eth-optimism/core-utils, probably something with @ethersproject

Going to attempt to run the individual steps manually and see if/when it fails.

jbowen93 commented 1 year ago

Logs from a successful linux run

yarn run v1.22.19
$ yarn lerna run build
$ /home/joshbowen/ethereum-optimism/optimism/node_modules/.bin/lerna run build
lerna notice cli v4.0.0
lerna info versioning independent
lerna info Executing command in 15 packages: "yarn run build"
lerna info run Ran npm script 'build' in '@eth-optimism/core-utils' in 2.7s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/hardhat-deploy-config' in 3.7s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/common-ts' in 4.7s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/replica-healthcheck' in 11.9s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/contracts' in 67.8s:
$ yarn build:contracts && yarn copy:contracts && yarn autogen:artifacts && yarn build:typescript
$ hardhat compile --show-stack-traces
Downloading compiler 0.5.17
Generating typings for: 80 artifacts in dir: dist/types for target: ethers-v5
Successfully generated 206 typings!
Compiled 80 Solidity files successfully
✅ Generated documentation for 68 contracts
<<< Starting Output Checks >>> 
qualifiedNames [
  'contracts/L1/deployment/AddressDictator.sol:AddressDictator',
  'contracts/L1/deployment/ChugSplashDictator.sol:ChugSplashDictator',
  'contracts/L1/messaging/IL1CrossDomainMessenger.sol:IL1CrossDomainMessenger',
  'contracts/L1/messaging/IL1ERC20Bridge.sol:IL1ERC20Bridge',
  'contracts/L1/messaging/IL1StandardBridge.sol:IL1StandardBridge',
  'contracts/L1/messaging/L1CrossDomainMessenger.sol:L1CrossDomainMessenger',
  'contracts/L1/messaging/L1StandardBridge.sol:L1StandardBridge',
  'contracts/L1/rollup/CanonicalTransactionChain.sol:CanonicalTransactionChain',
  'contracts/L1/rollup/ChainStorageContainer.sol:ChainStorageContainer',
  'contracts/L1/rollup/ICanonicalTransactionChain.sol:ICanonicalTransactionChain',
  'contracts/L1/rollup/IChainStorageContainer.sol:IChainStorageContainer',
  'contracts/L1/rollup/IStateCommitmentChain.sol:IStateCommitmentChain',
  'contracts/L1/rollup/StateCommitmentChain.sol:StateCommitmentChain',
  'contracts/L1/teleportr/TeleportrDeposit.sol:TeleportrDeposit',
  'contracts/L1/verification/BondManager.sol:BondManager',
  'contracts/L1/verification/IBondManager.sol:IBondManager',
  'contracts/L2/messaging/IL2CrossDomainMessenger.sol:IL2CrossDomainMessenger',
  'contracts/L2/messaging/IL2ERC20Bridge.sol:IL2ERC20Bridge',
  'contracts/L2/messaging/L2CrossDomainMessenger.sol:L2CrossDomainMessenger',
  'contracts/L2/messaging/L2StandardBridge.sol:L2StandardBridge',
  'contracts/L2/messaging/L2StandardTokenFactory.sol:L2StandardTokenFactory',
  'contracts/L2/predeploys/OVM_DeployerWhitelist.sol:OVM_DeployerWhitelist',
  'contracts/L2/predeploys/OVM_ETH.sol:OVM_ETH',
  'contracts/L2/predeploys/OVM_GasPriceOracle.sol:OVM_GasPriceOracle',
  'contracts/L2/predeploys/OVM_L2ToL1MessagePasser.sol:OVM_L2ToL1MessagePasser',
  'contracts/L2/predeploys/OVM_SequencerFeeVault.sol:OVM_SequencerFeeVault',
  'contracts/L2/predeploys/WETH9.sol:WETH9',
  'contracts/L2/predeploys/iOVM_L1BlockNumber.sol:iOVM_L1BlockNumber',
  'contracts/L2/predeploys/iOVM_L2ToL1MessagePasser.sol:iOVM_L2ToL1MessagePasser',
  'contracts/L2/teleportr/TeleportrDisburser.sol:TeleportrDisburser',
  'contracts/chugsplash/L1ChugSplashProxy.sol:L1ChugSplashProxy',
  'contracts/chugsplash/interfaces/iL1ChugSplashDeployer.sol:iL1ChugSplashDeployer',
  'contracts/libraries/bridge/CrossDomainEnabled.sol:CrossDomainEnabled',
  'contracts/libraries/bridge/ICrossDomainMessenger.sol:ICrossDomainMessenger',
  'contracts/libraries/bridge/Lib_CrossDomainUtils.sol:Lib_CrossDomainUtils',
  'contracts/libraries/codec/Lib_OVMCodec.sol:Lib_OVMCodec',
  'contracts/libraries/constants/Lib_DefaultValues.sol:Lib_DefaultValues',
  'contracts/libraries/constants/Lib_PredeployAddresses.sol:Lib_PredeployAddresses',
  'contracts/libraries/resolver/Lib_AddressManager.sol:Lib_AddressManager',
  'contracts/libraries/resolver/Lib_AddressResolver.sol:Lib_AddressResolver',
  'contracts/libraries/resolver/Lib_ResolvedDelegateProxy.sol:Lib_ResolvedDelegateProxy',
  'contracts/libraries/rlp/Lib_RLPReader.sol:Lib_RLPReader',
  'contracts/libraries/rlp/Lib_RLPWriter.sol:Lib_RLPWriter',
  'contracts/libraries/trie/Lib_MerkleTrie.sol:Lib_MerkleTrie',
  'contracts/libraries/trie/Lib_SecureMerkleTrie.sol:Lib_SecureMerkleTrie',
  'contracts/libraries/utils/Lib_Buffer.sol:Lib_Buffer',
  'contracts/libraries/utils/Lib_Bytes32Utils.sol:Lib_Bytes32Utils',
  'contracts/libraries/utils/Lib_BytesUtils.sol:Lib_BytesUtils',
  'contracts/libraries/utils/Lib_MerkleTree.sol:Lib_MerkleTree',
  'contracts/standards/AddressAliasHelper.sol:AddressAliasHelper',
  'contracts/standards/IL2StandardERC20.sol:IL2StandardERC20',
  'contracts/standards/L2StandardERC20.sol:L2StandardERC20'
]
✅ All Contracts have been checked for missing Natspec comments
$ yarn copyfiles -u 1 -e "**/test-*/**/*" "contracts/**/*" ./
$ /home/joshbowen/ethereum-optimism/optimism/node_modules/.bin/copyfiles -u 1 -e '**/test-*/**/*' 'contracts/**/*' ./
$ ts-node scripts/generate-artifacts.ts && ts-node scripts/generate-deployed-artifacts.ts
$ tsc -p ./tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/migration-data' in 11.2s:
$ tsc -p ./tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/data-transport-layer' in 12.6s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/contracts-bedrock' in 133.7s:
$ yarn ts-node scripts/verify-foundry-install.ts
$ /home/joshbowen/ethereum-optimism/optimism/node_modules/.bin/ts-node scripts/verify-foundry-install.ts
$ hardhat compile && yarn autogen:artifacts && yarn build:ts && yarn typechain
installing solc version "0.8.15"
Successfully installed solc 0.8.15
installing solc version "0.5.17"
Successfully installed solc 0.5.17
Compiling 1 files with 0.5.17
Compiling 131 files with 0.8.15
Solc 0.5.17 finished in 76.14ms
Solc 0.8.15 finished in 79.04s
Compiler run successful
$ ts-node scripts/generate-artifacts.ts
$ tsc -p tsconfig.json
$ typechain --target ethers-v5 --out-dir dist/types --glob 'artifacts/!(build-info)/**/+([a-zA-Z0-9_]).json'
Successfully generated 455 typings!
lerna info run Ran npm script 'build' in '@eth-optimism/sdk' in 9.1s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/fault-detector' in 16.6s:
$ tsc -p tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/message-relayer' in 17.2s:
$ tsc -p ./tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/contracts-governance' in 19.9s:
$ npx hardhat compile
Downloading compiler 0.8.12
Compiled 22 Solidity files successfully
lerna info run Ran npm script 'build' in '@eth-optimism/contracts-periphery' in 32.3s:
$ yarn build:hh
$ hardhat compile --show-stack-traces
Downloading compiler 0.8.15
Downloading compiler 0.8.16
Generating typings for: 65 artifacts in dir: dist/types for target: ethers-v5
Successfully generated 186 typings!
Compiled 58 Solidity files successfully
lerna info run Ran npm script 'build' in '@eth-optimism/drippie-mon' in 8.8s:
$ tsc -p ./tsconfig.json
lerna info run Ran npm script 'build' in '@eth-optimism/integration-tests' in 11.8s:
$ hardhat compile
Compiled 30 Solidity files successfully
lerna success run Ran npm script 'build' in 15 packages in 181.6s:
lerna success - @eth-optimism/integration-tests
lerna success - @eth-optimism/common-ts
lerna success - @eth-optimism/contracts-bedrock
lerna success - @eth-optimism/contracts-governance
lerna success - @eth-optimism/contracts-periphery
lerna success - @eth-optimism/contracts
lerna success - @eth-optimism/core-utils
lerna success - @eth-optimism/data-transport-layer
lerna success - @eth-optimism/drippie-mon
lerna success - @eth-optimism/fault-detector
lerna success - @eth-optimism/hardhat-deploy-config
lerna success - @eth-optimism/message-relayer
lerna success - @eth-optimism/migration-data
lerna success - @eth-optimism/replica-healthcheck
lerna success - @eth-optimism/sdk
Done in 182.43s.
jbowen93 commented 1 year ago

There is something in @eth-optimism/data-transport-layer and something in @eth-optimism/common-ts.