Skip to content
digitaloceanPublic

About

gta: do transitive analysis to find packages whose dependencies have changed

Resources

Contributing

Security policy

Stars

224 stars

Watchers

90 watching

Forks

Repository files navigation

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 install github.com/digitalocean/gta/cmd/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 -f '{{ .Module.Path }}')/"

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

gta -include "$(go list -f '{{ .Module.Path }}')/"

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

About

gta: do transitive analysis to find packages whose dependencies have changed

Resources

Contributing

Security policy

Stars

224 stars

Watchers

90 watching

Forks

Releases

Packages

Used by

Contributors

Languages