# When finding the latest version of a module, we should not download version # contents. Previously, we downloaded .zip files to determine whether a real # .mod file was present in order to decide whether +incompatible versions # could be "latest". # # Verifies #47377. # rsc.io/breaker has two versions, neither of which has a .mod file. go list -m -versions rsc.io/breaker stdout '^rsc.io/breaker v1.0.0 v2.0.0\+incompatible$' go mod download rsc.io/breaker@v1.0.0 ! grep '^go' $GOPATH/pkg/mod/cache/download/rsc.io/breaker/@v/v1.0.0.mod go mod download rsc.io/breaker@v2.0.0+incompatible ! grep '^go' $GOPATH/pkg/mod/cache/download/rsc.io/breaker/@v/v2.0.0+incompatible.mod # Delete downloaded .zip files. go clean -modcache # Check for updates. go list -m -u rsc.io/breaker stdout '^rsc.io/breaker v1.0.0 \[v2.0.0\+incompatible\]$' # We should not have downloaded zips. ! exists $GOPATH/pkg/mod/cache/download/rsc.io/breaker/@v/v1.0.0.zip ! exists $GOPATH/pkg/mod/cache/download/rsc.io/breaker/@v/v2.0.0+incompatible.zip -- go.mod -- module m go 1.16 require rsc.io/breaker v1.0.0 -- go.sum -- rsc.io/breaker v1.0.0/go.mod h1:s5yxDXvD88U1/ESC23I2FK3Lkv4YIKaB1ij/Hbm805g=