On 6/12/20 8:08 AM, Arnaud Rebillout wrote:
On 6/11/20 4:07 PM, Shengjing Zhu wrote:
On Thu, Jun 11, 2020 at 4:55 PM Arnaud Rebillout
<[email protected]> wrote:
More fun now: in the case of gotest.tools, this magic mechanism does
not work, and the build fails with multiple lines such as:
package gotest.tools: code in directory
/tmp/gotestdir/src/gotest.tools expects import "gotest.tools/v3"
After much painful investigation, I found out that gotest.tools uses
"import aliases" everywhere. That is, lines such as:
package assert // import "gotest.tools/v3/assert"
The directive "// import ..." is an import alias, and that's what
prevents Go from dealing with the import path successfully.
That feels awkward... Can we just add a patch to remove this alias?
Yep I'm doing exactly that at the moment, and discussing the issue
with upstream [1]. It seems like these import aliases are not needed
anyway.
[1]: https://github.com/gotestyourself/gotest.tools/issues/203
Oh well. So in the end, I tried it, same as with godbus, ie. installing
gotest.tools v3 at the path `/usr/share/gocode/src/gotest.tools`.
It doesn't work with a number of packages, for example `gotestum`. Ie.
package gotest.tools/gotestsum (test)
imports gotest.tools/assert
imports gotest.tools/v3/assert/cmp: cannot find package
"gotest.tools/v3/assert/cmp" in any of:
/usr/lib/go-1.14/src/gotest.tools/v3/assert/cmp (from $GOROOT)
/<<PKGBUILDDIR>>/_build/src/gotest.tools/v3/assert/cmp (from $GOPATH)
I don't understand what's wrong, I spent a while on this issue, with no
success.
In any case, gotest.tools has little reverse build deps. So I will just
install it at the path `gotest.tools/v3`, and patch reverse build deps
as needed. Some of these deps already switched to using v3 upstream already.
Thanks for the support Go team!