Go 1.16, released this week, deprecated GOPATH
. I used it extensively to develop my libs before publishing them, but now I’m forced to convert them to modules, which work with remote repos by default. However, there’s a way to work with local dependencies.
As I found here, we can instruct Go toolchain to search for a local repo, instead of a remote one by using this command:
go mod edit -replace github.com/username/repo=../repo
This changes the go.mod
file. Now, to clean up the go.sum
file, run:
go mod tidy
After that, you should be able to use a local dependency just like the old GOPATH
days.
The downloaded files are still cached, though. To finally clean the entire cache, run:
go clean -cache -modcache
Modules eventually needed by other applications will be downloaded again when due.