Previously ERC-1155 mentioned EIP-1538 for upgrades. But EIP-1538 has been replaced by the Diamond Standard, which is why ERC-1155 was updated. The pull request is here: https://github.com/ethereum/EIPs/pull/2800
ERC-1155 says this:
To alleviate the need to emit events when changing contract address, consider using the proxy pattern, such as described in EIP-2535. This will also have the added benefit of providing a stable contract address for users.
About the Diamond Standard
Consider using the Diamond Standard for contract upgrades, to solve the maximum contract size limit and for code organization.
A diamond is a set of contracts that can access the same storage variables and share the same Ethereum address.
Recent Diamond News
Last month ConsenSys Diligence conducted a public security audit of Codefi's contracts. Consensys Diligence recommended or suggested that Codefi use the Diamond Standard to solve the maximum contract size limit problem.
Ronan Sandford (wighawag), a prominent smart contract developer and an author of the ERC-1155 standard, announced he is working on adding support for diamonds to buidler-deploy to make it very easy to deploy/cut diamonds. buidler-deploy is a mechanism to deploy contracts to any network, keeping track of them and replicating the same environment for testing.
Joey Zacherl, a developer at VolleyFire, released a Python tool called Diamond Setter that is a contract manager for diamonds. Here is his blog post about it: Diamond Setter, Ethereum smart contract manager
The Diamond Standard got its first popular Reddit post.
If you want to learn more about diamonds read this article: Understanding Diamonds on Ethereum.
I am the author of the Diamond Standard so if you have any questions let me know. And/or join the Discord server: https://discord.gg/kQewPw2