go-groups

command module
v1.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2020 License: BSD-3-Clause Imports: 14 Imported by: 0

README

go-groups

Go Report Card Build Status GoDoc NetflixOSS Lifecycle GitHub

Project Overview

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.

Getting Started

The go-groups command can be installed by running:

$ go get oss.indeed.com/go/go-groups

Usage

$ 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

Formatting Behavior

With this example source file input
import (
  "strings"
  "github.com/pkg/errors"
  "fmt"
  "github.com/gorilla/mux"
  "github.com/gorilla/csrf"
)
Running go-groups will produce
import (
  "fmt"
  "strings"
  
  "github.com/gorilla/csrf"
  "github.com/gorilla/mux"
  
  "github.com/pkg/errors"
)
Typical Workflow

Run go-groups -w ./.. to rewrite and sort import groupings for go source files in a project.

Asking Questions

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

Contributing

We welcome contributions! Feel free to help make go-groups better.

Process
  • 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.

Maintainers

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.

Code of Conduct

oss.indeed.com/go/go-groups is governed by the Contributer Covenant v1.4.1

For more information please contact opensource@indeed.com.

License

The oss.indeed.com/go/go-groups module is open source under the BSD-3-Clause license.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL