External Projs - 4.x RC Testing Infrastructure
Description
-
[ ] external Apps/APIs using web3.js: add automated testing of 4.x with external projects when these projects are ready for 4.x ( openzeppelin , truffle < TBD )
-
[x] Injected Providers ( metamask, in3, ... < TBD )
Leave for end of RC testing
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. If you believe this was a mistake, please comment.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. If you believe this was a mistake, please comment.
As now the second point was done (testing with external providers #5309), and the 4.x is near to RC1, I think it is the time to work on the first point which is also discussed here https://github.com/web3/web3.js/issues/5643 (I will close that issue to keep related discussions here on one place).
Actually, I am now thinking that it would be better to check each dependent project separately by running their full tests with our new web3.js version. So, to check for bugs and also any undocumented compatibilities issues. I suggest doing the following:
-
List the most popular projects that use web3.js as a dependency (for example, projects that has more than 1000 stars at GitHub. Or we can take only the top 5 or 7. Or we can choose depending on the project type like one for Node and another for Angular and so...). And here is a starting draft list:
- https://github.com/trufflesuite/truffle (13.8K Stars)
- https://github.com/NomicFoundation/hardhat/tree/main/packages/hardhat-web3
- https://github.com/bitpay/bitcore (4.5K Stars)
- https://github.com/ethereum/remix-project (1.8K Stars)
- https://github.com/OpenZeppelin/openzeppelin-contracts/ (21.5K Stars)
- https://github.com/OpenZeppelin/ethernaut/ (1.5K Stars)
- https://github.com/OpenZeppelin/openzeppelin-sdk (423 Stars)
- https://github.com/ProjectOpenSea/opensea-js/ (2.1K Stars)
- https://github.com/Synthetixio/synthetix (1K Stars)
-
Fork each repo in a common folder and update the web3.js version to the latest v4.x version in the dependencies and update for the breaking changes.
-
Run the tests of that forked repo similar to the automated tests in the original repo. And if the original repo would run the tests automatically for MRs, create a draft MR for each.
-
List all errors that may come, investigate them and create a specific GitHub issue for each bug. And if the error was because of undocumented breaking changes, then document them.
-
Fix the bugs and iterate starting from step 3 till there are no coming errors.
And this could be the standard way of checking before every release.
Those steps will help us in many ways:
- Detect undocumented breaking changes.
- Discover possible bugs.
- Help some dependent projects to migrate to the new version as we will create the draft MR for some of them.