Skip to content

feat: upgrade to sdk v0.55 - #5001

Draft
julienrbrt wants to merge 6 commits into
mainfrom
julien/sdk
Draft

julienrbrt wants to merge 6 commits into
mainfrom
julien/sdk

Conversation

@julienrbrt

@julienrbrt julienrbrt commented Sep 22, 2026

Copy link
Copy Markdown
Member

Description

Upgrades Ignite CLI and the scaffolded Cosmos SDK chain templates to Cosmos SDK v0.55.0, IBC-Go v11.2.0, and CometBFT v0.40.0.

CLI

  • Bump github.com/cosmos/cosmos-sdk to v0.55.0, github.com/cometbft/cometbft to v0.40.0, and cosmossdk.io/core to v1.1.0.
  • Bump github.com/libp2p/go-libp2p to v0.50.0 and github.com/quic-go/webtransport-go to v0.13.0. CometBFT v0.40 pulls in libp2p, and webtransport-go v0.11.1 does not compile against the quic-go version required by the buf tool.
  • Add StargateFiftyFiveVersion to cosmosver.Versions (now Latest).
  • Update the scaffolded app (plugin) template: pin Cosmos SDK v0.55.0, raise the Go directive to 1.26.7, and pin libp2p v0.50.0 and webtransport-go v0.13.0. The old v0.53.6 pin breaks go mod tidy now that cosmossdk.io/api v1.1.0 drops the params and group proto packages, and the webtransport pin is needed until ignite/cli main carries the compatible versions.
  • Resolve SDK module protos from the SDK proto directory only during module discovery. Cosmos SDK v0.55 moves the deprecated circuit and nft protos to contrib/proto, outside the proto tree, where buf --path cannot reach them and the name-based package lookup returns missing paths.

Chain template

  • Update go.mod: SDK v0.55.0 dependency set, go 1.26.5, and replaces for sonic, libp2p, and webtransport-go.
  • Remove x/params (deleted in v0.55): drop the params module config, ParamsKeeper, GetSubspace, and the legacy IBC param key tables.
  • Remove x/circuit and x/nft from the template, following the SDK v0.55 reference app (simapp). They are deprecated and moved to cosmos-sdk/contrib, and TypeScript client generation cannot resolve their protos from the contrib tree.
  • Remove x/group (moved to Cosmos Enterprise under a commercial license).
  • Move evidence, feegrant, and upgrade imports to github.com/cosmos/cosmos-sdk/x/....
  • Move cosmossdk.io/log to log/v2 and cosmossdk.io/store to cosmos-sdk/store/v2.
  • Remove the SIGN_MODE_TEXTUAL wiring from root.go (TextualCoinMetadataQueryFn is gone in v0.55).
  • Add the staking key rotation fee pool module account and put bank first in the end blockers, both required by v0.55.
  • Drop traceStore from app.New, AppCreator, AppExporter, and appBuilder.Build.
  • Migrate the IBC wiring to v11: keeper constructors lose the subspace argument, the transfer keeper takes an address codec, keepers are held as pointers, and scaffolded IBC modules implement SetICS4Wrapper.
  • Replace NewUncachedContext with NewNextBlockContext plus SimWriteState in the in-place testnet command.
  • Use the new genutil.ExportGenesisFileWithTime signature in the multi-node testnet command.

Template bug fixes found along the way

  • expected_keepers.go imported cosmossdk.io/core/address only when the module had a Staking dependency, but AuthKeeper always uses address.Codec. Modules without a Staking dependency did not compile. The import is now unconditional.
  • depinject.go had an unbalanced plush conditional that rendered the ibckeeper import into non-IBC modules. The opening conditional is restored.
  • The module keeper test templates imported log and codectestutil without using them.

Docs

  • Add the Cosmos SDK v0.55 section to the v30.0.0 migration guide.
  • Update the readme compatibility table, the install Go version requirement, the Go client tutorial module example, and the IBC guide import.
  • Prefix Cosmos commands with ignite cosmos in the live guide, clients, and configuration pages, since the top-level commands now target gno.land.
  • Add changelog entries.

Validation

  • go build ./... and go vet ./... pass.
  • Scaffolded fresh chains (standard and minimal), then IBC module, packet, message, list, and map scaffolds on top. All compile and vet clean.
  • ignite cosmos chain init and ignite cosmos chain serve run on a freshly scaffolded chain and the chain produces blocks.
  • ignite cosmos generate ts-client and generate composables (with a Vue frontend) work on a freshly scaffolded chain.
  • Integration suites chain, app, tx, and cosmosgen pass. Local runs need a workaround for an invalid Buf API token in the machine ~/.netrc and for a goenv test that assumes the default GOMODCACHE path; CI is not affected by either.

@netlify

netlify Bot commented Sep 22, 2026

Copy link
Copy Markdown

Deploy Preview for docs-ignite ready!

Name Link
🔨 Latest commit 4cea0aa
🔍 Latest deploy log https://app.netlify.com/projects/docs-ignite/deploys/6ab2f5cfa92e5c0008c4b30e
😎 Deploy Preview https://deploy-preview-5001--docs-ignite.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

The v0.53.6 pin breaks go mod tidy now that cosmossdk.io/api v1.1.0 no
longer contains the params and group proto packages imported by the old
SDK. Also raise the Go directive to 1.26.7 to match ignite/cli/v30.
- add the Cosmos SDK v0.55 section to the v30.0.0 migration guide
- update the readme compatibility table and the install Go version
- update the Go client tutorial module example to ignite/cli/v30
- bump the IBC guide import to ibc-go/v11
- prefix Cosmos commands with 'ignite cosmos' in the live guide,
  clients, and configuration pages
- add changelog entries for the SDK upgrade
@github-actions github-actions Bot added component:docs Documentation additions or improvements. type:services Service-related issues. labels Sep 22, 2026
Cosmos SDK v0.55 moves the deprecated circuit and nft protos to
contrib/proto, outside the proto tree. When module discovery walked the
SDK module root it picked them up, and the name based package lookup
produced missing proto/cosmos/<mod> paths that broke ts-client and
composables generation. Resolve SDK module protos from the SDK proto
directory only.

Also remove x/circuit and x/nft from the chain template, following the
SDK v0.55 reference app, and update the affected integration tests,
changelog, and migration guide.
The cosmos-sdk v0.55.0 replace brings libp2p v0.48 and
webtransport-go v0.11.1 into the app module graph. ignite/cli@main
still requires cosmos-sdk v0.53, so until this branch merges nothing
bumps webtransport-go past v0.11.1, which does not compile against the
quic-go version required by the buf tool dependency. Pin the same
compatible versions as the chain template.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component:ci CI/CD workflow and automated jobs. component:configs component:docs Documentation additions or improvements. component:packages component:templates type:internal type:services Service-related issues.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant