gitcoinco / gitcoinco/Alpha-Governor-Upgrade
Determine process to ensure successful alpha upgrade
- Dominant language
- Solidity
- Stars
- 14
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
Needless to say, there's a ton at stake in the upgrade process. What can/should we do to ensure that there are absolutely no mistakes?
Some ideas we've considered:
* In other complex, high-stakes environments (e.g. aerospace, surgery, construction) checklists are used to make sure important steps don't get missed. Off the cuff, I can think of quite a few things that we definitely don't want to forget to do before running the upgrade script, e.g.:
- [ ] correct ENV is loaded in shell
- [ ] there is a co-pilot to watch and sanity-check everything being done
- [ ] we're using the correct forge version
- [ ] all tests pass locally
- [ ] all tests pass on CI
- [ ] we're on the correct git commit locally
- [ ] dry-run succeeds
- [ ] test run on local fork looks as expected
- [ ] other devs are around to observe/triage any issues
- [ ] we have open channels with important stakeholders
- [ ] then, only after all that is done, run the upgrade script live
* Build a fail-safe into the proposal in some way, e.g. that a certain important function can only be executed if `tx.origin` is an address of our choosing
* Write new fork tests against mainnet at each stage of the process
* Make the transfer a two step process with two separate proposals, e.g. one to the AlphaGovernor to update the Timelock admin, a second to the BravoGovernor to accept the admin, so that the upgrade can't happen unless proposals really can be voted on and executed by Bravo
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.