blob: 7bdd7a58a89b5d15c43520055daf3eb7b4c1d8f8 [file] [log] [blame]
# 'go get pkg' should not show a deprecation message for an unrelated module.
go get -d ./use/nothing
! stderr 'module.*is deprecated'
# 'go get pkg' should show a deprecation message for the module providing pkg.
go get -d example.com/deprecated/a
stderr '^go: module example.com/deprecated/a is deprecated: in example.com/deprecated/a@v1.9.0$'
go get -d example.com/deprecated/a@v1.0.0
stderr '^go: module example.com/deprecated/a is deprecated: in example.com/deprecated/a@v1.9.0$'
# 'go get pkg' should show a deprecation message for a module providing
# packages directly imported by pkg.
go get -d ./use/a
stderr '^go: module example.com/deprecated/a is deprecated: in example.com/deprecated/a@v1.9.0$'
# 'go get pkg' may show a deprecation message for an indirectly required module
# if it provides a package named on the command line.
go get -d ./use/b
! stderr 'module.*is deprecated'
go get -d local/use
! stderr 'module.*is deprecated'
go get -d example.com/deprecated/b
stderr '^go: module example.com/deprecated/b is deprecated: in example.com/deprecated/b@v1.9.0$'
# 'go get pkg' does not show a deprecation message for a module providing a
# directly imported package if the module is no longer deprecated in its
# latest version, even if the module is deprecated in its current version.
go get -d ./use/undeprecated
! stderr 'module.*is deprecated'
-- go.mod --
module m
go 1.17
require (
example.com/deprecated/a v1.0.0
example.com/undeprecated v1.0.0
local v0.0.0
)
replace local v0.0.0 => ./local
-- use/nothing/nothing.go --
package nothing
-- use/a/a.go --
package a
import _ "example.com/deprecated/a"
-- use/b/b.go --
package b
import _ "local/use"
-- use/undeprecated/undeprecated.go --
package undeprecated
import _ "example.com/undeprecated"
-- local/go.mod --
module local
go 1.17
require example.com/deprecated/b v1.0.0
-- local/use/use.go --
package use
import _ "example.com/deprecated/b"