hyperledger-cacti / cacti

Hyperledger Cacti is a new approach to the blockchain interoperability problem
https://wiki.hyperledger.org/display/cactus
Apache License 2.0
341 stars 283 forks source link

build(deps): upgrade dependencies, especially grpc #1507

Closed petermetz closed 1 year ago

petermetz commented 2 years ago

See the containing epic for more context and the scope of packages that are being affected: https://github.com/hyperledger/cactus/issues/1497


Description

The older edition of grpc increases the configure script's runtime 10 fold due to it requiring native dependencies to be compiled as part of the dependency resolutions. Recommending to upgrade to @grpc/grpc-js instead to avoid this issue (the latter is written fully in JS/TS)

The old C implementation of gRPC is now officially deprecated and will not receive updates going forward. This makes it a must have for us to upgrade.

image

petermetz commented 1 year ago
$ yarn why grpc
├─ @hyperledger/cacti-weaver-protos-js@workspace:weaver/common/protos-js
│  └─ grpc@npm:1.24.11 (via npm:^1.24.3)
│
├─ @hyperledger/cactus-plugin-ledger-connector-fabric-socketio@workspace:packages/cactus-plugin-ledger-connector-fabric-socketio
│  └─ grpc@npm:1.24.11 (via npm:1.24.11)
│
├─ @hyperledger/cactus-plugin-ledger-connector-iroha@workspace:packages/cactus-plugin-ledger-connector-iroha
│  └─ grpc@npm:1.24.11 (via npm:1.24.11)
│
├─ fabric-ca-client@npm:1.4.19
│  └─ grpc@npm:1.24.11 (via npm:1.24.11)
│
└─ fabric-client@npm:1.4.19
   └─ grpc@npm:1.24.11 (via npm:1.24.11)
petermetz commented 1 year ago

A more complete list of native code dependencies that are forcing code compilation of their own (on top of our own code's compilation)

Cactus_CI/build-dev]   ❓  ::group::Link step
| ➤ YN0007: │ @nestjs/core@npm:8.2.0 [4e575] must be built because it never has been before or the last one failed
| ➤ YN0007: │ electron@npm:18.3.7 must be built because it never has been before or the last one failed
| ➤ YN0007: │ grpc-tools@npm:1.11.2 must be built because it never has been before or the last one failed
| ➤ YN0007: │ secp256k1@npm:4.0.2 must be built because it never has been before or the last one failed
| ➤ YN0007: │ keccak@npm:3.0.3 must be built because it never has been before or the last one failed
| ➤ YN0007: │ pkcs11js@npm:1.3.1 must be built because it never has been before or the last one failed
| ➤ YN0007: │ protobufjs@npm:7.2.4 must be built because it never has been before or the last one failed
| ➤ YN0007: │ protobufjs@npm:6.11.3 must be built because it never has been before or the last one failed
| ➤ YN0007: │ secp256k1@npm:4.0.3 must be built because it never has been before or the last one failed
| ➤ YN0007: │ classic-level@npm:1.3.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ bufferutil@npm:4.0.7 must be built because it never has been before or the last one failed
| ➤ YN0007: │ es5-ext@npm:0.10.62 must be built because it never has been before or the last one failed
| ➤ YN0007: │ utf-8-validate@npm:5.0.10 must be built because it never has been before or the last one failed
| ➤ YN0007: │ esbuild@npm:0.15.5 must be built because it never has been before or the last one failed
| ➤ YN0007: │ nice-napi@npm:1.0.2 must be built because it never has been before or the last one failed
| ➤ YN0007: │ grpc@npm:1.24.11 must be built because it never has been before or the last one failed
| ➤ YN0007: │ web3-bzz@npm:1.8.1 must be built because it never has been before or the last one failed
| ➤ YN0007: │ web3-bzz@npm:1.7.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ web3-bzz@npm:1.5.2 must be built because it never has been before or the last one failed
| ➤ YN0007: │ cpu-features@npm:0.0.8 must be built because it never has been before or the last one failed
| ➤ YN0007: │ keccak@npm:1.4.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ secp256k1@npm:3.8.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ web3-bzz@npm:1.6.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ deasync@npm:0.1.28 must be built because it never has been before or the last one failed
| ➤ YN0007: │ aws-sdk@npm:2.965.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ keytar@npm:7.9.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ cbor@npm:6.0.1 must be built because it never has been before or the last one failed
| ➤ YN0007: │ sqlite3@npm:5.1.5 [aa907] must be built because it never has been before or the last one failed
| ➤ YN0007: │ iso-constants@npm:0.1.2 must be built because it never has been before or the last one failed
| ➤ YN0007: │ web3-bzz@npm:1.7.3 must be built because it never has been before or the last one failed
| ➤ YN0007: │ grpc-tools@npm:1.12.4 must be built because it never has been before or the last one failed
| ➤ YN0007: │ web3-bzz@npm:1.10.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ keccak@npm:3.0.2 must be built because it never has been before or the last one failed
| ➤ YN0007: │ leveldown@npm:6.1.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ @trufflesuite/bigint-buffer@npm:1.1.10 must be built because it never has been before or the last one failed
| ➤ YN0007: │ bufferutil@npm:4.0.5 must be built because it never has been before or the last one failed
| ➤ YN0007: │ utf-8-validate@npm:5.0.7 must be built because it never has been before or the last one failed
| ➤ YN0007: │ leveldown@npm:5.6.0 must be built because it never has been before or the last one failed
| ➤ YN0007: │ @apollo/protobufjs@npm:1.2.6 must be built because it never has been before or the last one failed
| ➤ YN0007: │ @apollo/protobufjs@npm:1.2.7 must be built because it never has been before or the last one failed
| ➤ YN0007: │ grpc-tools@npm:1.9.1 must be built because it never has been before or the last one failed
| ➤ YN0007: │ core-js@npm:2.6.12 must be built because it never has been before or the last one failed