I am wondering which patterns openzeppelin use for upgradable contracts(I am mostly curious how you deal with storages).
Do you guys follow the strict storage rules, where you can’t add/remove/change order of variables in the new contract ? I’d ask if so, how did this pattern work for you ? isn’t it a big pain for developers to follow such conventions in the practice ?
We haven't heard complaints about it. It's not really a convention but a safety requirement! If you reorder variables you are basically corrupting storage layout.