Closed
Description
Suggest in Go 1.14 we go one step further when GO111MODULE="on"
, outside and inside! GOPATH
, module path must be specified to prevent shenanigans.
When trying to create a module crypto
outside gopath you get
% go mod init
go: cannot determine module path for source directory /Users/gert/crypto (outside GOPATH, module path must be specified)
Perfect, but if you do that inside gopath
(force GO111MODULE="on")
% mkdir $GOPATH/src/crypto
% cd $GOPATH/src/crypto
% echo "package crypto" > c_test.go
% go mod init
% cat go.mod
module crypto
go 1.14
% go test -v
=== RUN TestRC4OutOfBoundsWrite
--- PASS: TestRC4OutOfBoundsWrite (0.00s)
=== RUN TestCTROutOfBoundsWrite
--- PASS: TestCTROutOfBoundsWrite (0.00s)
=== RUN TestOFBOutOfBoundsWrite
--- PASS: TestOFBOutOfBoundsWrite (0.00s)
=== RUN TestCFBEncryptOutOfBoundsWrite
--- PASS: TestCFBEncryptOutOfBoundsWrite (0.00s)
=== RUN TestCFBDecryptOutOfBoundsWrite
--- PASS: TestCFBDecryptOutOfBoundsWrite (0.00s)
PASS
ok crypto 0.049s
Not only is it allowed, you even launch the wrong test files from GOROOT
I understand this is done for backward compatible sake, but GOPATH must die and end up somewhere as a dot folder hidden only used for cach.
Furthermore I suggest to change error message
go: cannot determine module path for source directory /Users/gert/crypto (outside GOPATH, module path must be specified)
to
go: cannot determine module path for source directory /Users/gert/crypto (module path must be specified)
to stop promoting people to use GOPATH
(related to: #35070)
Metadata
Metadata
Assignees
Type
Projects
Status
Done