You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 27, 2023. It is now read-only.
go list is quite slow because it has to download external dependencies. This becomes more problematic under Bazel execution environment when GOCACHE is not available (bazel-contrib/rules_go#2366). I found all mockgen need from go list is the package path. Why not deduce the package path from source file or directory in mockgen, using logic like:
If GO111MODUE==off:
find the relative path from GOPATH
else:
find the closest go.mod and add the relative path from the go.mod to the module name
if no go.mod exist and GO111MODUE != on:
find the relative path from GOPATH
I am not against not using go list but using it fixed a couple bugs for use. The advantages we gained by it were:
It is module aware.
It works for resolving import paths that are as followed: Have an import path of example.com/foo but the package in foo is actually bar.
A special case example of # 2 is projects that use go modules >v1: import path of example.com/foo/v2 where the package in v2 is bar(or this could be foo as well).
If we can find a solution that covers these cases, tests should exist for these, and does not use go list I am all for it. It is not great having to exec something from a binary, but it was a simple solution built into the tooling that fixed some bugs.
I have not looked into this yet, but there could also be extra flags we pass into go list to filter down the amount of packages it scans.
@plakhotnii @codyoss
go list
is quite slow because it has to download external dependencies. This becomes more problematic under Bazel execution environment when GOCACHE is not available (bazel-contrib/rules_go#2366). I found all mockgen need fromgo list
is the package path. Why not deduce the package path from source file or directory in mockgen, using logic like:Related to #396
The text was updated successfully, but these errors were encountered: