Just a bit preamble to introduce myself and the context of my query: I began studying Go round 6 years in the past as a pure facet mission language. At first of final 12 months, I really acquired employed in an organization which works primarily with Go for his or her backend initiatives. They began with it years earlier than go modules have been a factor and the whole lot was managed through the
GOPATH. They developed an superior customized bundle administration instrument which integrates nice of their automation system, manages mirrors of dependencies and helps creating license abstract exports. However now, we need to migrate to go modules as an alternative of utilizing the
I did some investigation on the way it may very well be attainable to create a customized dependency administration system together with go modules and it got here out to be fairly tough and hacky. I adopted the strategy to place packages into the
vendor/ listing, which is then utilized by the go toolchain to seek for exterior packages. However this additionally signifies that you must manually create and handle the
go.mod file, which is de facto not an ideal expertise and likewise feels prefer it may break at any time.
I do know that some initiatives like cockroach use customized construct instruments like bazel. However we really actually like to make use of to have the ability to construct our initiatives merely with the nice go toolchain and don’t actually goal to dive deep into customized construct options.
Now, in case you are working with go at an organization, how do you handle your dependencies? Do you merely use
go get? Do you will have a customized dependency supervisor and if sure, how does it work? What are your mirroring and offline construct methods?
Thanks very a lot prematurely to your responses.
go get and
go mod vendor are the first means and the toolchain joyful path.
This publish was flagged by the group and is briefly hidden.
Some corporations develop their very own customized bundle administration instruments for particular wants. These instruments might help with mirroring, dependency versioning, and license administration. If your organization already has a customized bundle supervisor that works effectively, it may be price integrating it with Go Modules. This might contain extending or adapting the customized instrument to work together with the Go Modules workflow.