Can’t say goodbye to mono repos? DigitalOcean shares secret gta sauce so you don’t have to

Can’t say goodbye to mono repos? DigitalOcean shares secret gta sauce so you don’t have to

In a bid to boost its open source credibility, cloud provider DigitalOcean has shared the sources of transitive analysis tool gta. 

The project was central to speeding up the company’s Go related CI build processes, as the company’s engineering team laid out in a blog post updating those interested in the state of its Go mono repo cthulhu in 2017.

The latter had been growing since 2014 as a sort of catch-all for all Go code in the organisation, which at some point led to trouble with vendoring, code ownership, and CI build times. According to the post, CI builds took an average of 20 minutes to complete in 2016, so “Go Test Auto” (gta) was developed to get this number down. 

Its approach is somewhat similar to that of a diff tool, as it inspects a project’s git history in order to find out which files have changed. This information can then be used within a CI or build process to only build altered packages, speeding up the time needed for their mono repo builds from 20 minutes to 2-3 minutes on average, DigitalOcean says.

More than three years on, the company has now decided to share the tool with the world, making it available on GitHub under the Apache License 2.0. Caveats include that it will only work when git is used for source control, and Go packages have to be structured “efficiently” to get the full benefit. 

For DO, this means putting “interface implementations in a separate package from implementations, program against the interfaces, and reference the implementations of those interfaces in main packages”, which might not be the most practical approach at times.

Those who have found mono repos to be unsuitable for their workflow might still be interested to hear about some changes to DigitalOcean’s still young App Platform. Introduced last October, the latter has just been updated with features to deploy pre-built container images, allowing already containerised apps written in languages not supported out-of-the-box to be deployed to the product quicker.

To make that work, users need to register for the company’s container registry DOCR, since images have to be pushed there to be deployed with App Platform. DOCR left beta last November and is now generally available. Subscription plans for the registry range from a free Starter package with one 500MiB repository, to a basic one charging $5 per month for 5GiB in 5 repos, and a professional offering granting unlimited repositories that shouldn’t exceed 100GiB, though additional storage is available for renting.