# Test of go work sync in a workspace in which some dependency needed by `a` # appears at a lower version in the build list of `b`, but is not needed at all # by `b` (so it should not be upgraded within b). # # a -> p 1.1 # b -> q 1.0 -(through a test dependency)-> p 1.0 go work sync cmp a/go.mod a/want_go.mod cmp b/go.mod b/want_go.mod -- go.work -- go 1.18 use ( ./a ./b ) -- a/go.mod -- go 1.18 module example.com/a require ( example.com/p v1.1.0 ) replace ( example.com/p => ../p ) -- a/want_go.mod -- go 1.18 module example.com/a require ( example.com/p v1.1.0 ) replace ( example.com/p => ../p ) -- a/a.go -- package a import ( "example.com/p" ) func Foo() { p.P() } -- b/go.mod -- go 1.18 module example.com/b require ( example.com/q v1.0.0 ) replace ( example.com/q => ../q ) -- b/want_go.mod -- go 1.18 module example.com/b require ( example.com/q v1.0.0 ) replace ( example.com/q => ../q ) -- b/b.go -- package b import ( "example.com/q" ) func Foo() { q.Q() } -- p/go.mod -- go 1.18 module example.com/p -- p/p.go -- package p func P() {} -- q/go.mod -- go 1.18 module example.com/q require ( example.com/p v1.0.0 ) replace ( example.com/p => ../p ) -- q/q.go -- package q func Q() { } -- q/q_test.go -- package q import example.com/p func TestQ(t *testing.T) { p.P() }