Ability to eliminate bugs and revert malicious activities Cons Higher complexity of the code. Gas overhead Contradicts decentralization principle, where protocols remain unchanged throughout the time of existence
Self-written or with the help of Custom DApp breakdowns Data & logic separation, Eternal Storage, etc. For more info and resources on DApp upgreadeability check out notes. ZeppelinOS these
not happen o en. Overall suggestion is to create a manually triggered job The job must output and persist artifacts which may be either Truffle jsons or (better and placeable to the repo) raw abi and contract addresses. These artifacts then should be utilized by client builds