Skip to content

refactor: x/upgrade as a standalone go module #14560

@kocubinski

Description

@kocubinski

Ref: #11899

The SDK module dependency graph below (generated from main 2023-01-09) shows that x/upgrade has only one dependent. If it can be removed it should be trivial to create a go.mod for this module and separate it from the SDK monolith.

image

x/upgrade has dependencies on the SDK modules shown below. As a part of this issue lets do a cursory review and remove them if trivial, or punt to the dependency's issue if not.

$ goFmtString="{{ \$importPath := .ImportPath }} {{ \$forTest := .ForTest }}                                                               
{{ range .Imports }} {{ if \$forTest }} {{ \$forTest }}.test {{else}} {{ \$importPath }} {{end}}-> {{ . }}
{{ end }}"
$ go list -test -f "$goFmtString" ./... | awk -F'->' '$2 ~ "github.com/cosmos/cosmos-sdk/x/"' | awk -F'->' '$2 !~ "github.com/cosmos/cosmos-sdk/x/upgrade"'   
  github.com/cosmos/cosmos-sdk/x/upgrade -> github.com/cosmos/cosmos-sdk/x/auth/types
  github.com/cosmos/cosmos-sdk/x/upgrade -> github.com/cosmos/cosmos-sdk/x/gov/types
  github.com/cosmos/cosmos-sdk/x/upgrade -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1
  github.com/cosmos/cosmos-sdk/x/upgrade/client -> github.com/cosmos/cosmos-sdk/x/gov/client
  github.com/cosmos/cosmos-sdk/x/upgrade/client/cli -> github.com/cosmos/cosmos-sdk/x/gov/client/cli
  github.com/cosmos/cosmos-sdk/x/upgrade/client/cli -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1
  github.com/cosmos/cosmos-sdk/x/upgrade/keeper -> github.com/cosmos/cosmos-sdk/x/gov/types
  github.com/cosmos/cosmos-sdk/x/upgrade/types -> github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx
  github.com/cosmos/cosmos-sdk/x/upgrade/types -> github.com/cosmos/cosmos-sdk/x/authz/codec
  github.com/cosmos/cosmos-sdk/x/upgrade/types -> github.com/cosmos/cosmos-sdk/x/gov/codec
  github.com/cosmos/cosmos-sdk/x/upgrade/types -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1
  github.com/cosmos/cosmos-sdk/x/upgrade/types -> github.com/cosmos/cosmos-sdk/x/group/codec
  github.com/cosmos/cosmos-sdk/x/upgrade.test -> github.com/cosmos/cosmos-sdk/x/auth/types
  github.com/cosmos/cosmos-sdk/x/upgrade.test -> github.com/cosmos/cosmos-sdk/x/gov/types
  github.com/cosmos/cosmos-sdk/x/upgrade.test -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1
  github.com/cosmos/cosmos-sdk/x/upgrade/client/cli.test -> github.com/cosmos/cosmos-sdk/x/gov/client/cli
  github.com/cosmos/cosmos-sdk/x/upgrade/client/cli.test -> github.com/cosmos/cosmos-sdk/x/gov/client/cli
  github.com/cosmos/cosmos-sdk/x/upgrade/client/cli.test -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1
  github.com/cosmos/cosmos-sdk/x/upgrade/keeper.test -> github.com/cosmos/cosmos-sdk/x/gov/types
  github.com/cosmos/cosmos-sdk/x/upgrade/keeper.test -> github.com/cosmos/cosmos-sdk/x/auth/types
  github.com/cosmos/cosmos-sdk/x/upgrade/keeper.test -> github.com/cosmos/cosmos-sdk/x/gov/types
  github.com/cosmos/cosmos-sdk/x/upgrade/types.test -> github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx
  github.com/cosmos/cosmos-sdk/x/upgrade/types.test -> github.com/cosmos/cosmos-sdk/x/authz/codec
  github.com/cosmos/cosmos-sdk/x/upgrade/types.test -> github.com/cosmos/cosmos-sdk/x/gov/codec
  github.com/cosmos/cosmos-sdk/x/upgrade/types.test -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1
  github.com/cosmos/cosmos-sdk/x/upgrade/types.test -> github.com/cosmos/cosmos-sdk/x/group/codec
  github.com/cosmos/cosmos-sdk/x/upgrade/types.test -> github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1

List of To-dos when creating a go.mod: https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#gomod

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions