Zb - an opinionated repo based tool for working with go

Hi All,

I’ve been working on a new tool to help with some of the challenges we’ve had working with repositories that contain multiple packages. It has turned into a useful tool that has replaced my use of the go command for many things.

Benefits

  • Faster builds (by defaulting to go install except for main packages, and by running concurrent go install commands when the dependency tree allows)
  • Faster testing (by caching test results and not retesting except when necessary)
  • Faster linting (by caching lint results from gometalinter)
  • Did I mention fast!
  • Automatically runs go generate if its dependency calculation determines it’s required
  • Operates on all packages in a repository (by default) with intelligent support for vendored packages
  • Can complement other build tools like make
  • Does not interfere with tools like govendor or gb
  • Built in shell auto-completion

Commands

     build     build all of the packages in each of the projects
     clean     remove executables in repo produced by build
     commands  list all of the executables that will be emitted by the build command
     install   compile and install all of the packages in each of the projects
     lint      gometalinter with cache and better defaults
     list      lists the packages in the repos of the packages named by the import paths, one per line.
     test      test all of the packages in each of the projects and cache the results

Please take a look at the README for full details.

This is still a pre 1.0 product. There are a few outstanding issues to resolve, but I’d also love to get some community feedback as well.

Thanks a bunch!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.