Skip to content
Cosmopediaby Unity Nodes
Documentationcosmos/cosmos-sdk-migration-mcpcosmos/cosmos-sdk-migration-mcp › src › cosmos_migration_mcp › migration_spec › v50-to-v54View on cosmos/cosmos-sdk-migration-mcp ↗

── verification ────────────────────────────────────────────────────────────

id: app-structure-cleanup title: App wiring, DI files, and module ordering cleanup version: v50+ -> v54 description: | Miscellaneous structural changes to app wiring in v54:

  1. DI-variant files (app_di.go, root_di.go) are removed. v54 simapp supports only the non-DI variant. These files import removed modules (x/group, etc.) and would cause goimports to re-add stripped imports.

  2. params tx import deduplication is fixed in specific files (params/proto.go, simd/cmd/root.go) where the auth/tx alias pattern differs from app.go.

  3. Stale MsgSetProposers references are removed from AllTypeMessages and internal_msgs_test.go.

This spec is intentionally narrower than a full app.go rewrite. For simapp-shaped targets, the current v54 reference layout may still require manual follow-up beyond these deletions, especially when older helper files survive after the mechanical migration.

upstream_sources:

  • docs://upgrading/v0.54

depends_on:

  • core-sdk-migration
  • crisis-removal

detection: sdk_version: max_exclusive: v0.54.0-0 files: - app_di.go - root_di.go patterns: - "//go:build !app_v1" - "MsgSetProposers"

changes:

── file removals ──────────────────────────────────────────────────────

file_removals: - file_name: app_di.go contains_must_match: "!app_v1"

- file_name: root_di.go
  contains_must_match: "!app_v1"

── map entry removals ────────────────────────────────────────────────

map_entry_removals: - map_var: AllTypeMessages keys: - '"/cosmos.staking.v1beta1.MsgSetProposers"' - '"/cosmos.staking.v1beta1.MsgSetProposersResponse"'

── text replacements ─────────────────────────────────────────────────

text_replacements: # params/proto.go: add the tx import that app.go deduplication stripped. - old: "import (\n\t"github.com/cosmos/cosmos-sdk/codec"\n\t"github.com/cosmos/cosmos-sdk/codec/types"\n)\n" new: "import (\n\t"github.com/cosmos/cosmos-sdk/codec"\n\t"github.com/cosmos/cosmos-sdk/codec/types"\n\t"github.com/cosmos/cosmos-sdk/x/auth/tx"\n)\n" file_match: params/proto.go

- old: authtx.NewTxConfig(
  new: tx.NewTxConfig(
  file_match: params/proto.go

- old: authtx.DefaultSignModes
  new: tx.DefaultSignModes
  file_match: params/proto.go

# simd/cmd/root.go: add tx import and normalize usages.
- old: "\t\"github.com/cosmos/cosmos-sdk/types/tx/signing\"\n\tauthtxconfig \"github.com/cosmos/cosmos-sdk/x/auth/tx/config\"\n"
  new: "\t\"github.com/cosmos/cosmos-sdk/types/tx/signing\"\n\t\"github.com/cosmos/cosmos-sdk/x/auth/tx\"\n\tauthtxconfig \"github.com/cosmos/cosmos-sdk/x/auth/tx/config\"\n"
  file_match: simd/cmd/root.go

- old: authtx.DefaultSignModes
  new: tx.DefaultSignModes
  file_match: simd/cmd/root.go

- old: authtx.ConfigOptions
  new: tx.ConfigOptions
  file_match: simd/cmd/root.go

- old: authtx.NewTxConfigWithOptions(
  new: tx.NewTxConfigWithOptions(
  file_match: simd/cmd/root.go

# app/msgs/internal_msgs_test.go: remove stale staking entries
- old: "\t\t\"/cosmos.staking.v1beta1.MsgSetProposers\",\n"
  new: ""
  file_match: app/msgs/internal_msgs_test.go

- old: "\t\t\"/cosmos.staking.v1beta1.MsgSetProposersResponse\",\n"
  new: ""
  file_match: app/msgs/internal_msgs_test.go

manual_steps:

  • id: app-structure-followup description: | If the target still follows an older simapp-style app layout, compare the migrated app structure against the current v54 reference files. DI-era helpers and related wiring can survive the mechanical migration even when this spec has applied cleanly.

── verification ────────────────────────────────────────────────────────────

verification: must_not_contain: - pattern: MsgSetProposers - pattern: "//go:build !app_v1" file_match: app_di.go