From 1de2632684d41d68322c41628bcc9592c64a991c Mon Sep 17 00:00:00 2001 From: "Chris S. Kim" Date: Mon, 28 Mar 2022 10:10:52 -0400 Subject: [PATCH] Add example of goimports -local --- .github/CONTRIBUTING.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a2e713e003..c2b2b9b052 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -85,6 +85,25 @@ To build Consul, run `make dev`. In a few moments, you'll have a working Go provides [tooling to apply consistent code formatting](https://golang.org/doc/effective_go#formatting). If you make any changes to the code, run `gofmt -s -w` to automatically format the code according to Go standards. +##### Organizing Imports + +Group imports using `goimports -local github.com/hashicorp/consul/` to keep [local packages](https://github.com/golang/tools/commit/ed69e84b1518b5857a9f4e01d1f9cefdcc45246e) in their own section. + +Example: +``` +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-cleanhttp" + "github.com/mitchellh/mapstructure" + + "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/lib" +) +``` + #### Updating Go Module Dependencies If a dependency is added or change, run `go mod tidy` to update `go.mod` and `go.sum`. @@ -148,4 +167,4 @@ When you're ready to submit a pull request: Some common changes that many PRs require are documented through checklists as `checklist-*.md` files in [docs/](../docs/), including: -- [Adding config fields](../docs/config/checklist-adding-config-fields.md) \ No newline at end of file +- [Adding config fields](../docs/config/checklist-adding-config-fields.md)