currently, there is a listing for "Valid go.mod file" in the "Details" section. it makes sense that this is more of a presence/absence and syntax check, but I was caught off guard when I could not go-get something reported as "Valid":
go get: github.com/path/to/want@none updating to
github.com/path/to/want@v1.0.0 requires
github.com/path/to/dep@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000
it turned out that this module had an require version and replaced it with the local file system. both replace and exclude are intended for local development and temporary workarounds, see #37559, thus it seems reasonable to flag such modules. it is possible to craft a go.mod with exclude or replace directives that also works with go-get, but considering it behaves differently as a main and dependent module, it still seems worth flagging.
currently, there is a listing for "Valid go.mod file" in the "Details" section. it makes sense that this is more of a presence/absence and syntax check, but I was caught off guard when I could not go-get something reported as "Valid":
it turned out that this module had an
requireversion andreplaced it with the local file system. bothreplaceandexcludeare intended for local development and temporary workarounds, see #37559, thus it seems reasonable to flag such modules. it is possible to craft ago.modwithexcludeorreplacedirectives that also works with go-get, but considering it behaves differently as a main and dependent module, it still seems worth flagging.