I assume that this is a project deployed on mainnet and you want to use OpenZeppelin Upgrades plugins to test and check upgrades.
What version of openzeppelin-eth are you using? It looks like the last Solidity 0.4 version of the upgrade safe fork of OpenZeppelin Contracts was openzeppelin-eth 2.0.2.
I don’t know if there were storage layout changes between versions of openzeppelin-eth or whether you can upgrade to a later version. (For example, storage layout changes means that we can’t upgrade from OpenZeppelin Contracts Ethereum Package 2.5 to 3.0).
The simple solution is to keep openzeppelin-eth and zos-lib, but they annoyingly come bundled with web3 and it’s never great to use deprecated dependencies.
The migration tool that @martriay mentioned is for OpenZeppelin CLI users. We looked at your project in more detail and see that you don’t use the CLI so it’s not relevant for you.
I see that the real issue here is that you need to use openzeppelin-eth 2.0.2 because of solc 0.4 support, but that package has a peer dependency on zos-lib because of Initializable.sol, which then forces a lot of deprecated dependencies that you understandably don’t want.
I’m looking into the options and I’ll get back to you in a little bit!
I’ve published openzeppelin-eth@2.0.2-standalone as a variant that comes with Initializable.sol vendored in and without a peer dependency on zos-lib. You should be able to use this version of openzeppelin-eth together with the upgrades plugins on Buidler, and you can uninstall zos-lib entirely.
Hey @frangio - We are looking into upgrading to v0.6 right now. The team has two major concerns: 1) storage layout changes that go unnoticed from a version refactor. 2) latest compiler versions that are unaudited.
I am currently making the assessment of whether or not to move forward with the upgrade and the first step was to modernize our testing and deployment infra.