blob: c26c5e1c21013ada363965a4b768d36d921c6552 [file] [log] [blame]
env GO111MODULE=on
[short] skip
# downgrade sampler should downgrade quote
cp go.mod.orig go.mod
go get -d rsc.io/sampler@v1.0.0
go list -m all
stdout 'rsc.io/quote v1.4.0'
stdout 'rsc.io/sampler v1.0.0'
# downgrade sampler away should downgrade quote further
go get -d rsc.io/sampler@none
go list -m all
stdout 'rsc.io/quote v1.3.0'
# downgrade should report inconsistencies and not change go.mod
go get -d rsc.io/quote@v1.5.1
go list -m all
stdout 'rsc.io/quote v1.5.1'
stdout 'rsc.io/sampler v1.3.0'
! go get -d rsc.io/sampler@v1.0.0 rsc.io/quote@v1.5.2 golang.org/x/text@none
stderr -count=1 '^go get:'
stderr '^go get: rsc.io/quote@v1.5.2 requires rsc.io/sampler@v1.3.0, not rsc.io/sampler@v1.0.0$'
go list -m all
stdout 'rsc.io/quote v1.5.1'
stdout 'rsc.io/sampler v1.3.0'
# go get -u args should limit upgrades
cp go.mod.empty go.mod
go get -d -u rsc.io/quote@v1.4.0 rsc.io/sampler@v1.0.0
go list -m all
stdout 'rsc.io/quote v1.4.0'
stdout 'rsc.io/sampler v1.0.0'
! stdout golang.org/x/text
# downgrading away quote should also downgrade away latemigrate/v2,
# since there are no older versions. v2.0.0 is incompatible.
cp go.mod.orig go.mod
go list -m -versions example.com/latemigrate/v2
stdout v2.0.0 # proxy may serve incompatible versions
go get -d rsc.io/quote@none
go list -m all
! stdout 'example.com/latemigrate/v2'
-- go.mod.orig --
module x
require (
rsc.io/quote v1.5.1
example.com/latemigrate/v2 v2.0.1
)
-- go.mod.empty --
module x
-- x.go --
package x