regen-ledger icon indicating copy to clipboard operation
regen-ledger copied to clipboard

v5.0 Readiness Checklist

Open ryanchristo opened this issue 2 years ago • 0 comments

Summary

This checklist is to be used for tracking the final internal audit of v5.0 changes prior to inclusion in a published release.

Note: One of the goals of this upgrade is to have a stable major version that will allow us to move forward with a series of upgrades that do not introduce API or client breaking changes. We should keep this in mind during the audit process and make sure we are addressing potential API and client breaking changes prior to release.

Release Candidate Checklist

The following checklist should be gone through once the items listed in v5.0 Titicaca Upgrade (#972) have been completed. This audit should be performed directly on main and a release branch should only be created after the audit is complete.

  • [ ] API audit (at least 1 person)
    • [ ] All Msg and Query methods are well-named and organized (@assignee)
    • [ ] All types and state objects are well-named and organized (@assignee)
    • [ ] All proto comments are up-to-date, informative, and accurate (@assignee)
    • [ ] All proto message links are included in module specifications (@assignee)
  • [ ] Unit and integration tests (at least 1 person)
    • [ ] ecocredit.v1 unit tests for all messages with emphasis on new messages (@aleem1314 )
    • [ ] ecocredit.v1 unit tests for all queries with emphasis on new queries (@aleem1314 )
    • [ ] ecocredit.basket.v1 unit tests for all messages with emphasis on new messages (@assignee)
    • [ ] ecocredit.basket.v1 unit tests for all queries with emphasis on new queries (@assignee)
    • [ ] ecocredit.marketplace.v1 unit tests for all messages with emphasis on new messages (@assignee)
    • [ ] ecocredit.marketplace.v1 unit tests for all queries with emphasis on new queries (@assignee)
  • [ ] State machine audit (at least 2 people)
    • [ ] Make sure state machine logic matches API documentation (@assignee, @assignee)
      • [ ] x/ecocredit/base all messages with emphasis on new messages
      • [ ] x/ecocredit/basket all messages with emphasis on new messages
      • [ ] x/ecocredit/marketplace all messages with emphasis on new messages
    • [ ] Read through keeper code and verify correctness upon visual inspection (@assignee, @assignee)
      • [ ] x/ecocredit/base all messages with emphasis on new messages
      • [ ] x/ecocredit/basket all messages with emphasis on new messages
      • [ ] x/ecocredit/marketplace all messages with emphasis on new messages
    • [ ] Ensure all state machine code which could be confusing is properly commented (@assignee, @assignee)
      • [ ] x/ecocredit/base all messages with emphasis on new messages
      • [ ] x/ecocredit/basket all messages with emphasis on new messages
      • [ ] x/ecocredit/marketplace all messages with emphasis on new messages
    • [ ] Assess potential threats for each method and ensure that threats have been addressed sufficiently
    • [ ] Assess potential risks of any new third party dependencies and decide whether a dependency audit is needed
  • [ ] Completeness audit (at least 1 person)
    • [ ] Genesis validation for all state (@assignee)
    • [ ] Genesis import and export of all state (@assignee)
    • [ ] Query methods for all state (@assignee)
    • [ ] CLI methods for all messages (@assignee)
  • [ ] Manual testing on a testnet after above items have been addressed (at least 2 people)
    • [ ] All Msg methods have been tested (@assignee, @assignee)
    • [ ] All Query methods have been tested (@assignee, @assignee)
    • [ ] Genesis import and export has been tested (@assignee, @assignee)

ryanchristo avatar Sep 01 '22 16:09 ryanchristo