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
v3.0.0+incompatible would be shown by default, because it's not making anything worse, but
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
One could still get the old behavior via a flag, like