Skip to content
/ example-golang Public template
forked from pantsbuild/example-golang

An example repo to demonstrate Go support in Pants v2

License

Notifications You must be signed in to change notification settings

tdyas/example-golang

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

example-golang

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.

Running Pants

You run Pants goals using the ./pants wrapper script, which will bootstrap the configured version of Pants if necessary.

Goals

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

Example Goals

Try these out in this repo!

Run Gofmt

./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.

Check compilation

./pants check ::  # Compile all packages.
./pants check cmd/greeter_en:  # Compile only this package and its transitive dependencies.

Run tests

./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.

Create a binary file

Writes the result to the dist/ folder.

./pants package cmd/greeter_en:
./pants package cmd::  # Create all binaries.

Run a binary

./pants run cmd/greeter_en:
./pants run cmd/greeter_es: -- --help

Determine dependencies

./pants dependencies cmd/greeter_en:
./pants dependencies --transitive cmd/greeter_en:

Determine dependees

That is, find what code depends on a particular package(s).

./pants dependees pkg/uuid:
./pants dependees --transitive pkg/uuid: 

Count lines of code

./pants count-loc '**/*'

About

An example repo to demonstrate Go support in Pants v2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Shell 74.4%
  • Go 17.7%
  • Starlark 7.9%