In a few projects, I see gomajor list -major
make suggestions like:
github.com/libp2p/go-libp2p: v0.21.0 [latest v6.0.23+incompatible]
github.com/mattn/go-sqlite3: v1.14.16 [latest v2.0.3+incompatible]
The suggestions are technically correct, because the upgrades are indeed newer major versions, and they aren't retracted via the modules system.
However, they're wrong: they are older versions which were published either before switching to Go modules, or by mistake.
I reckon that gomajor list -major
should, by default, ignore major version upgrades which add the +incompatible
component. An upgrade from v2.0.0+incompatible
to v3.0.0+incompatible
would be shown by default, because it's not making anything worse, but v1.0.0
to v3.0.0+incompatible
would not be shown by default, with the understanding that often it will be a bad idea. Nowadays, if a module really does bump their major version, it's incredibly rare that they will publish as +incompatible
.
One could still get the old behavior via a flag, like -incompatible
.
bug