Regarding how to fix "invalid pseudo-version" errors, I think the release notes are also trying to give options for someone trying to use tools for which they aren't the maintainer (as well as options for maintainers).
The paragraph on the `replace` directive in that section of the release notes I think is something you can use, even if you are not the maintainer of a module with an invalid version. In general, the `replace` directive basically gives your module complete control over its own build in terms of what versions to use.
More specifically, using Go 1.13, this fails with an "invalid pseudo-version" error (as expected):
export GOPATH=$(mktemp -d) # using fresh module cache
cd $(mktemp -d)
which reports error:
It looks like there has been some discussion of solving this within golangci, including here and some related issues there:
It looks like some of the core Go team has commented there with advice, but looks like it is still pending changes there.
However, we don't need to wait for that to be resolved within golangci.
If we follow the advice from the section of the Go 1.13 release notes on resolving version validation issues ( valhttps://
golang.org/doc/go1.13#version-validation), we can make that same 'go get' work:
# re-do setup from scratch
export GOPATH=$(mktemp -d) # using fresh module cache
cd $(mktemp -d)
# create 'replace' statements using *just* the commit hashes for each problematic module on the right-hand side
# this now works
Regards,
thepudds