Skip to content

Upgrading the Interchain Stack

Jim Larson edited this page Jan 31, 2024 · 9 revisions

Our Cosmos layer depends on the "Interchain Stack" - a set of packages developed by the Cosmos community, must notable the CometBFT consensus engine, the Cosmos-SDK, and the ibc-go module. We maintain forks of some repositories, but many are used as-is, and we hope to reduce the number of forks we use over time.

Once a dependency is updated, we need to update agoric-sdk to use it. This involves several steps that we don't face in normal development, especially the maintenance of protocol buffer definitions and generated code.

  • If there's a matching version of gaia, run upgradegaia.sh to pull in its changes.
  • Update .go files to import new major version.
    • Don't edit generated files. Protobuf generated files will be udpated below.
  • Update go.mod with new versions, if needed.
    • The go mod tidy below will automatically update dependencies which come from import paths.
    • But we need to manually edit some replace directives. Look at the cosmos-sdk and gaia go.mod files.
  • Run go mod tidy
  • Run go mod download
  • Run make proto-update-deps
  • Run make proto-gen

Run govulncheck

  • Commit
  • PR
    • add proto:expect-breakage tag if any protos are updated
Clone this wiki locally