All Projects → digitalocean → gta

digitalocean / gta

Licence: Apache-2.0 license
gta: do transitive analysis to find packages whose dependencies have changed

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

gta

Overview

gta is an application which finds Go packages that have deviated from their upstream source in git. A typical situation is when a project is using a monorepo. At build or continuous integration time, you won't have to build every single package since you will know which packages (and dependencies) have changed.

GTA in Action

Installation

go get github.com/digitalocean/gta/...

After installation, you will have a gta binary in $GOPATH/bin/

Usage

List packages that should be tested since they have deviated from master.

gta -include $(go list ./...)

List packages that have deviated from the most recent merge commit.

gta -include $(go list ./...) -merge

What gta does

gta builds a list of "dirty" (changed) packages from master, using git. This is useful for determining which tests to run in larger monorepo style repositories.

gta works by implementing a various set of interfaces, namely the Differ and Packager interfaces.

Note: When using this tool, it is common to hit the maximum number of open file descriptors limit set by your OS. On macOS, this may be a measly 256. Consider raising that maximum to something reasonable with:

sudo ulimit -n 4096

License

This application is distributed under the Apache 2 license found in LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].