This PR enable Go Modules and it's backwards compatible with old go versions.
Go Modules is the official Go dependency management tool, and it’s directly implemented into the go toolchain.
We need this in order to:
Automatically detect import statements and then update dependencies graph, lock, download, and install appropriate versions of packages.
Quoting golang official docs:
In Go 1.14, module support is considered ready for production use, and all users are encouraged to migrate to modules from other dependency management systems.
(Inside $GOPATH/src, for compatibility, the go command still runs in the old GOPATH mode, even if a go.mod is found. See the go command documentation for details.) Starting in Go 1.13, module mode will be the default for all development.
This PR enable Go Modules and it's backwards compatible with old go versions.
Go Modules is the official Go dependency management tool, and it’s directly implemented into the go toolchain. We need this in order to:
Also quoting the golang official blog, the reason why this does not break compatibility with previous go versions: