Should I upgrade from Solidity 0.5.X

Hi @brendan,

Are you upgrading an existing contract deployed on mainnet?

If you are upgrading, then there will be limitations on what versions of OpenZeppelin Contracts Upgradeable (previously called OpenZeppelin Contracts Ethereum Package) you can use in your implementation contract.

If you are not upgrading, then you can change to the latest version of Solidity that your dependencies support. OpenZeppelin Contracts 3.4 supports Solidity 0.6 and Solidity 0.7.
OpenZeppelin Contracts 4.0 Beta supports Solidity 0.8 and is currently at release candidate stage.

It really depends what you use in your contract. You can follow the Solidity breaking changes. Appropriate unit testing is advised to check that you don't break anything in your smart contract.

If you can wait for OpenZeppelin Contracts 4 to be released then I would look at using Solidity 0.8.

You can go from Solidity 0.5 to 0.6 to 0.7 to 0.8 or jump straight to 0.8. It depends on the complexity of your code.