fetchai / fetchd

Source code for Fetch.ai blockchain nodes
Other
100 stars 38 forks source link

Potential dependency inconsistency #295

Open Ben131-Go opened 1 year ago

Ben131-Go commented 1 year ago

Dependency line:

github.com/fetchai/fetchd --> github.com/CosmWasm/wasmd --> github.com/99designs/keyring
github.com/CosmWasm/wasmd v0.27.0 --> github.com/cosmos/keyring ef00f8a
https://github.com/CosmWasm/wasmd/blob/v0.27.0/go.mod#L127

Background

Repo github.com/CosmWasm/wasmd at version v0.27.0 uses replace directive to change dependency path from github.com/99designs/keyring to github.com/cosmos/keyring.
According to Go Modules wikis, replace directives in modules other than the main module are ignored when building the main module. It means such replace usage in dependency's go.mod cannot be inherited when building main module. And it turns out that fetchai/fetchd indirectly relies on 99designs/keyring@v1.1.6, which is different from the new dependency path CosmWasm/wasmd needed.

https://github.com/fetchai/fetchd/blob/master/go.mod(Line 21)

github.com/99designs/keyring v1.1.6 // indirect

https://github.com/CosmWasm/wasmd/blob/v0.27.0/go.mod(line 37&127)

github.com/99designs/keyring v1.1.6 // indirect
github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76

So this is just a reminder in the hope that you can notice such an inconsistency.

Solution

1. Bump the version of dependency github.com/CosmWasm/wasmd

You can try upgrading dependency github.com/CosmWasm/wasmd to a newer version, which may have eliminated the use of this directive.

2. Add the same replace rule to your go.mod

github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76