An example repository to demonstrate Pants's experimental Golang support.
See the Golang blog post for some unique benefits Pants brings to Golang repositories, and see pantsbuild.org/docs/go-overview for more detailed documentation.
This is only one possible way of laying out your project with Pants. See pantsbuild.org/docs/source-roots#examples for some other example layouts.
Note: for now, Pants only supports repositories using a single go.mod
. Please comment on
#13114 if you need support for greater
than one go.mod
so that we can prioritize adding support.
You run Pants goals using the ./pants
wrapper script, which will bootstrap the
configured version of Pants if necessary.
Pants commands are called goals. You can get a list of goals with
./pants help goals
Most goals take arguments to run on. To run on a single directory, use the directory name with
:
at the end. To recursively run on a directory and all its subdirectories, add ::
to the
end.
For example:
./pants lint cmd: internal::
You can run on all changed files:
./pants --changed-since=HEAD lint
You can run on all changed files, and any of their "dependees":
./pants --changed-since=HEAD --changed-dependees=transitive test
Try these out in this repo!
./pants fmt :: # Format all packages.
./pants fmt cmd/greeter_en: # Format only this package.
./pants lint pkg:: # Check that all packages under `pkg` are formatted.
./pants check :: # Compile all packages.
./pants check cmd/greeter_en: # Compile only this package and its transitive dependencies.
./pants test :: # Run all tests in the repository.
./pants test pkg/uuid: # Run all the tests in this package.
./pants test pkg/uuid: -- -run TestGenerateUuid # Run just this one test.
Writes the result to the dist/
folder.
./pants package cmd/greeter_en:
./pants package cmd:: # Create all binaries.
./pants run cmd/greeter_en:
./pants run cmd/greeter_es: -- --help
./pants dependencies cmd/greeter_en:
./pants dependencies --transitive cmd/greeter_en:
That is, find what code depends on a particular package(s).
./pants dependees pkg/uuid:
./pants dependees --transitive pkg/uuid:
./pants count-loc '**/*'