env GO111MODULE=on # golang.org/issue/31248: loading the build list must not add explicit entries # for indirect dependencies already implied by older-than-selected versions # already in the build list. cp go.mod.orig go.mod go mod tidy cmp go.mod go.mod.orig cp go.mod.orig go.mod go list -m all cmp go.mod go.mod.orig -- go.mod.orig -- module main go 1.13 require a v0.0.0 replace ( a v0.0.0 => ./a b v0.0.0 => ./b i v0.0.0 => ./i x v0.1.0 => ./x1 x v0.2.0 => ./x2 ) -- main.go -- package main import _ "a" func main() {} -- a/go.mod -- module a go 1.13 require ( x v0.2.0 b v0.0.0 ) -- a/a.go -- package a -- b/go.mod -- module b go 1.13 require x v0.1.0 -- x1/go.mod -- module x go 1.13 require ( b v0.0.0 i v0.0.0 ) -- x2/go.mod -- module x go 1.13 -- i/go.mod -- module i go 1.13