Skip to content

Using old sorting function signature #555

Open
@raserhin

Description

@raserhin

Summary of Bug

In line

slices.SortFunc(fds.File, func(x, y *descriptorpb.FileDescriptorProto) bool {
I could find the use of SortFunc

This slices sorting was introduced from the experimental package (the one you are using) to the std library, on doing so they decided to change the actual signature of the function from func(a, b E) bool to func(a, b E) int, you can check the PR

Now this break the SDK for my build process using Go version 1.21 (also tried 1.20)

Maybe I may be doing something wrong but I see this as possible point of failure in the future

Version

v0.47.5

Steps to Reproduce

I created a small snippet, to try to query a pool:

package osmosis_client

import (
	"context"
	"fmt"

	"github.com/cosmos/cosmos-sdk/codec"
	poolmanager "github.com/osmosis-labs/osmosis/v23/x/poolmanager/client/queryproto"
	"google.golang.org/grpc"
)

func QueryPool() error {
	// Create a connection to the gRPC server.
	grpcConn, err := grpc.Dial(
		"grpc.osmosis.zone:9090",
		grpc.WithInsecure(),
		grpc.WithDefaultCallOptions(grpc.ForceCodec(codec.NewProtoCodec(nil).GRPCCodec())),
	)
	if err != nil {
		return err
	}
	defer grpcConn.Close()

	querier := poolmanager.NewQueryClient(grpcConn)
	resp, err := querier.Pool(context.Background(), &poolmanager.PoolRequest{PoolId: 1})
	if err != nil {
		fmt.Errorf("Error retrieving pool: %s", err)
	}
	fmt.Println(resp)
	return nil
}

This break giving the following error:

# github.com/cosmos/cosmos-sdk/runtime/services
../../go/pkg/mod/github.com/osmosis-labs/[email protected]/runtime/services/reflection.go:60:28: type func(x *descriptorpb.FileDescriptorProto, y *descriptorpb.FileDescriptorProto) bool of func(x, y *descriptorpb.FileDescriptorProto) bool {…} does not match inferred type func(a *descriptorpb.FileDescriptorProto, b *descriptorpb.FileDescriptorProto) int for func(a E, b E) int

my go.mod after go mod tidy

module github.com/raserhin/test

go 1.20


require (
   github.com/cosmos/cosmos-sdk v0.50.4
   google.golang.org/grpc v1.62.0
)

require (
   cosmossdk.io/api v0.3.1 // indirect
   cosmossdk.io/core v0.10.0 // indirect
   cosmossdk.io/depinject v1.0.0-alpha.4 // indirect
   cosmossdk.io/errors v1.0.1 // indirect
   cosmossdk.io/log v1.3.1 // indirect
   cosmossdk.io/math v1.3.0 // indirect
   cosmossdk.io/tools/rosetta v0.2.1 // indirect
   filippo.io/edwards25519 v1.0.0 // indirect
   github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
   github.com/99designs/keyring v1.2.1 // indirect
   github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect
   github.com/CosmWasm/wasmvm v1.5.2 // indirect
   github.com/DataDog/zstd v1.5.5 // indirect
   github.com/antihax/optional v1.0.0 // indirect
   github.com/armon/go-metrics v0.4.1 // indirect
   github.com/beorn7/perks v1.0.1 // indirect
   github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
   github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
   github.com/cenkalti/backoff/v4 v4.2.1 // indirect
   github.com/cespare/xxhash v1.1.0 // indirect
   github.com/cespare/xxhash/v2 v2.2.0 // indirect
   github.com/chzyer/readline v1.5.1 // indirect
   github.com/cockroachdb/errors v1.11.1 // indirect
   github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
   github.com/cockroachdb/pebble v1.1.0 // indirect
   github.com/cockroachdb/redact v1.1.5 // indirect
   github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
   github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect
   github.com/cometbft/cometbft v0.38.0 // indirect
   github.com/cometbft/cometbft-db v0.10.0 // indirect
   github.com/confio/ics23/go v0.9.1 // indirect
   github.com/cosmos/btcutil v1.0.5 // indirect
   github.com/cosmos/cosmos-db v1.0.0 // indirect
   github.com/cosmos/cosmos-proto v1.0.0-beta.4 // indirect
   github.com/cosmos/go-bip39 v1.0.0 // indirect
   github.com/cosmos/gogogateway v1.2.0 // indirect
   github.com/cosmos/gogoproto v1.4.11 // indirect
   github.com/cosmos/iavl v1.0.2-0.20240221171955-e019f7411ec7 // indirect
   github.com/cosmos/ibc-go/v7 v7.3.2 // indirect
   github.com/cosmos/ics23/go v0.10.0 // indirect
   github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect
   github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect
   github.com/creachadair/taskgroup v0.4.2 // indirect
   github.com/danieljoos/wincred v1.1.2 // indirect
   github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
   github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
   github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
   github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
   github.com/dgraph-io/ristretto v0.1.1 // indirect
   github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
   github.com/dustin/go-humanize v1.0.1 // indirect
   github.com/dvsekhvalnov/jose2go v1.6.0 // indirect
   github.com/emicklei/dot v1.6.1 // indirect
   github.com/felixge/httpsnoop v1.0.2 // indirect
   github.com/fsnotify/fsnotify v1.7.0 // indirect
   github.com/getsentry/sentry-go v0.27.0 // indirect
   github.com/go-kit/kit v0.12.0 // indirect
   github.com/go-kit/log v0.2.1 // indirect
   github.com/go-logfmt/logfmt v0.6.0 // indirect
   github.com/go-playground/locales v0.14.1 // indirect
   github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
   github.com/gogo/googleapis v1.4.1 // indirect
   github.com/gogo/protobuf v1.3.3 // indirect
   github.com/golang/glog v1.2.0 // indirect
   github.com/golang/mock v1.6.0 // indirect
   github.com/golang/protobuf v1.5.3 // indirect
   github.com/golang/snappy v0.0.4 // indirect
   github.com/google/btree v1.1.2 // indirect
   github.com/google/go-cmp v0.6.0 // indirect
   github.com/google/orderedcode v0.0.1 // indirect
   github.com/gorilla/handlers v1.5.1 // indirect
   github.com/gorilla/mux v1.8.1 // indirect
   github.com/gorilla/websocket v1.5.0 // indirect
   github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
   github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
   github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
   github.com/gtank/merlin v0.1.1 // indirect
   github.com/gtank/ristretto255 v0.1.2 // indirect
   github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
   github.com/hashicorp/golang-lru v1.0.2 // indirect
   github.com/hashicorp/hcl v1.0.0 // indirect
   github.com/hdevalence/ed25519consensus v0.1.0 // indirect
   github.com/huandu/skiplist v1.2.0 // indirect
   github.com/improbable-eng/grpc-web v0.15.0 // indirect
   github.com/inconshreveable/mousetrap v1.1.0 // indirect
   github.com/jmhodges/levigo v1.0.0 // indirect
   github.com/klauspost/compress v1.17.6 // indirect
   github.com/kr/pretty v0.3.1 // indirect
   github.com/kr/text v0.2.0 // indirect
   github.com/lib/pq v1.10.9 // indirect
   github.com/libp2p/go-buffer-pool v0.1.0 // indirect
   github.com/linxGnu/grocksdb v1.8.12 // indirect
   github.com/magiconair/properties v1.8.7 // indirect
   github.com/manifoldco/promptui v0.9.0 // indirect
   github.com/mattn/go-colorable v0.1.13 // indirect
   github.com/mattn/go-isatty v0.0.20 // indirect
   github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect
   github.com/minio/highwayhash v1.0.2 // indirect
   github.com/mitchellh/mapstructure v1.5.0 // indirect
   github.com/mtibben/percent v0.2.1 // indirect
   github.com/osmosis-labs/osmosis/osmomath v0.0.9-0.20240222171503-685566578734 // indirect
   github.com/osmosis-labs/osmosis/osmoutils v0.0.9-0.20240222004208-b602d1901059 // indirect
   github.com/osmosis-labs/osmosis/v23 v23.0.3
   github.com/pelletier/go-toml/v2 v2.1.0 // indirect
   github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect
   github.com/pkg/errors v0.9.1 // indirect
   github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
   github.com/prometheus/client_golang v1.18.0 // indirect
   github.com/prometheus/client_model v0.6.0 // indirect
   github.com/prometheus/common v0.47.0 // indirect
   github.com/prometheus/procfs v0.12.0 // indirect
   github.com/rakyll/statik v0.1.7 // indirect
   github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
   github.com/rogpeppe/go-internal v1.12.0 // indirect
   github.com/rs/cors v1.9.0 // indirect
   github.com/rs/zerolog v1.32.0 // indirect
   github.com/sagikazarmark/locafero v0.4.0 // indirect
   github.com/sagikazarmark/slog-shim v0.1.0 // indirect
   github.com/sasha-s/go-deadlock v0.3.1 // indirect
   github.com/sourcegraph/conc v0.3.0 // indirect
   github.com/spf13/afero v1.11.0 // indirect
   github.com/spf13/cast v1.6.0 // indirect
   github.com/spf13/cobra v1.8.0 // indirect
   github.com/spf13/pflag v1.0.5 // indirect
   github.com/spf13/viper v1.18.2 // indirect
   github.com/stretchr/testify v1.8.4 // indirect
   github.com/subosito/gotenv v1.6.0 // indirect
   github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
   github.com/tendermint/go-amino v0.16.0 // indirect
   github.com/tidwall/btree v1.7.0 // indirect
   github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
   github.com/zondax/hid v0.9.2 // indirect
   github.com/zondax/ledger-go v0.14.3 // indirect
   go.etcd.io/bbolt v1.3.8 // indirect
   go.uber.org/multierr v1.11.0 // indirect
   golang.org/x/crypto v0.19.0 // indirect
   golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
   golang.org/x/net v0.20.0 // indirect
   golang.org/x/sync v0.6.0 // indirect
   golang.org/x/sys v0.17.0 // indirect
   golang.org/x/term v0.17.0 // indirect
   golang.org/x/text v0.14.0 // indirect
   google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect
   google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect
   google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
   google.golang.org/protobuf v1.31.0 // indirect
   gopkg.in/ini.v1 v1.67.0 // indirect
   gopkg.in/yaml.v3 v3.0.1 // indirect
   nhooyr.io/websocket v1.8.7 // indirect
   pgregory.net/rapid v1.1.0 // indirect
   sigs.k8s.io/yaml v1.4.0 // indirect
)

replace (
   github.com/CosmWasm/wasmd => github.com/osmosis-labs/wasmd v0.45.0-osmo
   github.com/cometbft/cometbft => github.com/osmosis-labs/cometbft v0.37.4-v23-osmo-2
   github.com/cosmos/cosmos-sdk => github.com/osmosis-labs/cosmos-sdk v0.47.5-v23-osmo-2-iavl-v1
   github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
)

exclude github.com/coinbase/rosetta-sdk-go v0.7.9

exclude github.com/cosmos/cosmos-sdk v0.50.1

exclude cosmossdk.io/api v0.7.0

exclude github.com/cometbft/cometbft v0.38.5

exclude google.golang.org/protobuf v1.32.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions