Command go-groups
is a CLI tool to deterministically rewrite go import blocks to sort and re-group
the imports.
go-groups
is similar to goimports
, but in addition to sorting imports
lexigraphically, it also separates import blocks at a per-project level.
Like goimports
, go-groups
also runs gofmt and fixes any style/formatting
issues.
The go-groups
command can be installed by running:
$ go install oss.indeed.com/go/go-groups@latest
$ go-groups -h
usage: go-groups [flags] [path ...]
-d display diffs instead of rewriting files
-f disables the automatic gofmt style fixes
-g include generated code in analysis
-l list files whose formatting differs
-v display the version of go-groups
-w write result to (source) file instead of stdout
import (
"strings"
"github.com/pkg/errors"
"fmt"
"github.com/gorilla/mux"
"github.com/gorilla/csrf"
)
import (
"fmt"
"strings"
"github.com/gorilla/csrf"
"github.com/gorilla/mux"
"github.com/pkg/errors"
)
Run go-groups -w ./..
to rewrite and sort import groupings for go source files in a project.
For technical questions about go-groups
, just file an issue in the GitHub tracker.
For questions about Open Source in Indeed Engineering, send us an email at opensource@indeed.com
We welcome contributions! Feel free to help make go-groups
better.
- Open an issue and describe the desired feature / bug fix before making changes. It's useful to get a second pair of eyes before investing development effort.
- Make the change. If adding a new feature, remember to provide tests that demonstrate the new feature works, including any error paths. If contributing a bug fix, add tests that demonstrate the erroneous behavior is fixed.
- Open a pull request. Automated CI tests will run. If the tests fail, please make changes to fix the behavior, and repeat until the tests pass.
- Once everything looks good, one of the indeedeng members will review the PR and provide feedback.
The oss.indeed.com/go/go-groups
module is maintained by Indeed Engineering.
While we are always busy helping people get jobs, we will try to respond to GitHub issues, pull requests, and questions within a couple of business days.
oss.indeed.com/go/go-groups
is governed by the Contributer Covenant v1.4.1
For more information please contact opensource@indeed.com.
The oss.indeed.com/go/go-groups
module is open source under the BSD-3-Clause license.