Grab
Grab logoGrab · Feature trail

Go Modules in Monorepo

2 posts · May 2020 – Aug 2020

What this trail covers

Grab has evolved its approach to managing Go modules within a monorepo, addressing challenges with vendoring, private repository access, inconsistent Go versions, and implementing an automated dependency upgrade system (AutoVend Bot). This has improved build integrity, developer productivity, and security by ensuring dependencies are up-to-date. This post details the initial challenges and solutions for adopting Go modules in a multi-module monorepo, focusing on the transition from the 'vendor' folder to Go modules, handling incompatible dependencies with 'replace' directives and empty 'go.mod' files, and addressing maintenance issues like dependency inheritance and implicit updates. The use of 'go mod graph' for dependency analysis is also highlighted.

All Grab trails