From 86b3700fa60e3fa2743a300259ce0e5b47cb3b6e Mon Sep 17 00:00:00 2001 From: Mark Bates Date: Fri, 16 Aug 2019 12:29:24 -0400 Subject: [PATCH] (v0.15.0) Drop `dep` support fixes #1545 (#1759) --- Dockerfile.build | 3 +- buffalo/cmd/fix/dep.go | 97 ----------------------------- buffalo/cmd/fix/fix.go | 1 - buffalo/cmd/fix/imports.go | 23 +------ buffalo/cmd/fix/tools.go | 6 -- buffalo/cmd/new.go | 2 - buffalo/cmd/setup.go | 70 +-------------------- buffalo/cmd/updater/dep.go | 7 --- buffalo/cmd/updater/deprecations.go | 6 -- buffalo/cmd/updater/imports.go | 6 -- buffalo/cmd/updater/npm.go | 9 --- buffalo/cmd/updater/runner.go | 12 ---- buffalo/cmd/updater/updater.go | 7 --- buffalo/cmd/updater/webpack.go | 9 --- genny/build/build_deps.go | 6 -- genny/build/build_deps_test.go | 21 ------- genny/info/pkg.go | 2 +- genny/info/pkg_test.go | 4 -- genny/newapp/api/api.go | 2 +- genny/newapp/core/core.go | 13 +--- genny/newapp/core/errors.go | 3 - genny/newapp/core/options.go | 4 -- genny/newapp/core/options_test.go | 5 -- genny/newapp/web/web.go | 2 +- go.mod | 1 - go.sum | 3 +- 26 files changed, 8 insertions(+), 316 deletions(-) delete mode 100644 buffalo/cmd/fix/dep.go delete mode 100644 buffalo/cmd/updater/dep.go delete mode 100644 buffalo/cmd/updater/deprecations.go delete mode 100644 buffalo/cmd/updater/imports.go delete mode 100644 buffalo/cmd/updater/npm.go delete mode 100644 buffalo/cmd/updater/runner.go delete mode 100644 buffalo/cmd/updater/updater.go delete mode 100644 buffalo/cmd/updater/webpack.go diff --git a/Dockerfile.build b/Dockerfile.build index ee362412a..8a5b6d84a 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -20,8 +20,7 @@ RUN npm -v RUN service postgresql start && \ su -c "psql -c \"ALTER USER postgres WITH PASSWORD 'postgres';\"" - postgres -RUN go get -u github.com/golang/dep/cmd/dep \ -&& go get -tags sqlite -v -u github.com/gobuffalo/pop \ +RUN go get -tags sqlite -v -u github.com/gobuffalo/pop \ && go get -tags sqlite -v -u github.com/gobuffalo/packr/v2/packr2 \ && go get -tags sqlite -v -u github.com/gobuffalo/buffalo-pop \ && rm -rf $GOPATH/src && mkdir -p $BP diff --git a/buffalo/cmd/fix/dep.go b/buffalo/cmd/fix/dep.go deleted file mode 100644 index 09f6bf84a..000000000 --- a/buffalo/cmd/fix/dep.go +++ /dev/null @@ -1,97 +0,0 @@ -package fix - -import ( - "context" - "fmt" - "os" - "os/exec" - "strings" - - "github.com/gobuffalo/buffalo/runtime" - "github.com/gobuffalo/genny" - "github.com/gobuffalo/genny/gogen" -) - -// packages to add to Gopkg.toml -var apkg = []string{} - -// packages ensure get updated -var upkg = []string{ - "github.com/gobuffalo/buffalo", - "github.com/gobuffalo/plush", - "github.com/gobuffalo/events", - "github.com/gobuffalo/suite", - "github.com/gobuffalo/flect", -} - -// DepEnsure runs `dep ensure -v` or `go get -u` depending on app tooling -// to make sure that any newly changed imports are added to dep or installed. -func DepEnsure(r *Runner) error { - if r.App.WithPop { - upkg = append(upkg, "github.com/gobuffalo/fizz", "github.com/gobuffalo/pop") - } - if !r.App.WithDep { - fmt.Println("~~~ Running go get ~~~") - return modGetUpdate(r) - } - - fmt.Println("~~~ Running dep ensure ~~~") - return runDepEnsure(r) -} - -func runDepEnsure(r *Runner) error { - for _, x := range []string{"beta", "rc", "development"} { - if strings.Contains(runtime.Version, x) { - r.Warnings = append(r.Warnings, fmt.Sprintf("This is not an official release and you will need to MANUALLY adjust your Gopkg.toml file to use this release.")) - break - } - } - - if len(apkg) > 0 { - args := []string{"ensure", "-v", "-add"} - args = append(args, apkg...) - if err := depRunner(args); err != nil { - // *sigh* - yeah, i know - if !strings.Contains(err.Error(), "is already in Gopkg.toml") { - return err - } - } - } - - if len(upkg) > 0 { - args := []string{"ensure", "-v", "-update"} - if err := depRunner(args); err != nil { - return err - } - } - - return nil -} - -func depRunner(args []string) error { - cc := exec.Command("dep", args...) - cc.Stdin = os.Stdin - cc.Stderr = os.Stderr - cc.Stdout = os.Stdout - return cc.Run() -} - -func modGetUpdate(r *Runner) error { - run := genny.WetRunner(context.Background()) - g := genny.New() - for _, x := range upkg { - if x == "github.com/gobuffalo/buffalo" { - continue - } - g.Command(gogen.Get(x)) - } - - for _, x := range []string{"beta", "rc"} { - if !strings.Contains(runtime.Version, x) { - continue - } - g.Command(gogen.Get("github.com/gobuffalo/buffalo@"+runtime.Version, "-u")) - } - run.With(g) - return run.Run() -} diff --git a/buffalo/cmd/fix/fix.go b/buffalo/cmd/fix/fix.go index ebeec7652..59b132db9 100644 --- a/buffalo/cmd/fix/fix.go +++ b/buffalo/cmd/fix/fix.go @@ -55,7 +55,6 @@ var checks = []Check{ WebpackCheck, PackageJSONCheck, AddPackageJSONScripts, - DepEnsure, installTools, DeprecrationsCheck, fixDocker, diff --git a/buffalo/cmd/fix/imports.go b/buffalo/cmd/fix/imports.go index 5f6ba6614..ac127ff54 100644 --- a/buffalo/cmd/fix/imports.go +++ b/buffalo/cmd/fix/imports.go @@ -1,12 +1,10 @@ package fix import ( - "bytes" "fmt" "go/ast" "go/parser" "go/token" - "io/ioutil" "os" "path/filepath" "strconv" @@ -26,27 +24,8 @@ type ImportConverter struct { func (c ImportConverter) Process(r *Runner) error { fmt.Println("~~~ Rewriting Imports ~~~") - err := filepath.Walk(".", c.processFile) - if err != nil { - return err - } - - if !r.App.WithDep { - return nil - } - - b, err := ioutil.ReadFile("Gopkg.toml") - if err != nil { - return err - } - - for k := range c.Data { - if bytes.Contains(b, []byte(k)) { - r.Warnings = append(r.Warnings, fmt.Sprintf("Your Gopkg.toml contains the following import that need to be changed MANUALLY: %s", k)) - } - } + return filepath.Walk(".", c.processFile) - return nil } func (c ImportConverter) processFile(p string, info os.FileInfo, err error) error { diff --git a/buffalo/cmd/fix/tools.go b/buffalo/cmd/fix/tools.go index c4db43f5d..08da170ca 100644 --- a/buffalo/cmd/fix/tools.go +++ b/buffalo/cmd/fix/tools.go @@ -3,7 +3,6 @@ package fix import ( "context" "fmt" - "os/exec" "github.com/gobuffalo/genny" "github.com/gobuffalo/genny/gogen" @@ -16,11 +15,6 @@ func installTools(r *Runner) error { run := genny.WetRunner(context.Background()) g := genny.New() app := r.App - if app.WithDep { - if _, err := exec.LookPath("dep"); err != nil { - g.RunFn(gogen.Install("github.com/golang/dep/cmd/dep")) - } - } if app.WithPop { rTools = append(rTools, "github.com/gobuffalo/buffalo-pop") } diff --git a/buffalo/cmd/new.go b/buffalo/cmd/new.go index cf584e137..6df9a3829 100644 --- a/buffalo/cmd/new.go +++ b/buffalo/cmd/new.go @@ -81,7 +81,6 @@ func parseNewOptions(args []string) (newAppOptions, error) { app.AsAPI = viper.GetBool("api") app.VCS = viper.GetString("vcs") - app.WithDep = viper.GetBool("with-dep") if app.WithDep { app.WithModules = false envy.MustSet("GO111MODULE", "off") @@ -273,7 +272,6 @@ func init() { newCmd.Flags().BoolP("dry-run", "d", false, "dry run") newCmd.Flags().BoolP("verbose", "v", false, "verbosely print out the go get commands") newCmd.Flags().Bool("skip-pop", false, "skips adding pop/soda to your app") - newCmd.Flags().Bool("with-dep", false, "adds github.com/golang/dep to your app") newCmd.Flags().Bool("skip-webpack", false, "skips adding Webpack to your app") newCmd.Flags().Bool("skip-yarn", false, "use npm instead of yarn for frontend dependencies management") newCmd.Flags().String("db-type", "postgres", fmt.Sprintf("specify the type of database you want to use [%s]", strings.Join(pop.AvailableDialects, ", "))) diff --git a/buffalo/cmd/setup.go b/buffalo/cmd/setup.go index 83edece67..f85520f73 100644 --- a/buffalo/cmd/setup.go +++ b/buffalo/cmd/setup.go @@ -2,25 +2,19 @@ package cmd import ( "bytes" - "context" "fmt" "os" "os/exec" "strings" - "golang.org/x/sync/errgroup" - - "github.com/gobuffalo/envy" "github.com/gobuffalo/events" "github.com/gobuffalo/meta" - "github.com/markbates/deplist" "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) var setupOptions = struct { verbose bool - updateGoDeps bool dropDatabases bool }{} @@ -31,9 +25,6 @@ var setupCmd = &cobra.Command{ Short: "Setup a newly created, or recently checked out application.", Long: `Setup runs through checklist to make sure dependencies are setup correctly. -Dependencies (if used): -* Runs "dep ensure" to install required Go dependencies. - Asset Pipeline (if used): * Runs "npm install" or "yarn install" to install asset dependencies. @@ -51,7 +42,7 @@ Tests: "app": app, } events.EmitPayload(EvtSetupStarted, payload) - for _, check := range []setupCheck{assetCheck, updateGoDepsCheck, databaseCheck, testCheck} { + for _, check := range []setupCheck{assetCheck, databaseCheck, testCheck} { err := check(app) if err != nil { events.EmitError(EvtSetupErr, err, payload) @@ -63,64 +54,6 @@ Tests: }, } -func updateGoDepsCheck(app meta.App) error { - if app.WithModules { - c := exec.Command(envy.Get("GO_BIN", "go"), "get") - return run(c) - } - if app.WithDep { - if _, err := exec.LookPath("dep"); err != nil { - if err := run(exec.Command(envy.Get("GO_BIN", "go"), "get", "github.com/golang/dep/cmd/dep")); err != nil { - return err - } - } - args := []string{"ensure"} - if setupOptions.verbose { - args = append(args, "-v") - } - if setupOptions.updateGoDeps { - args = append(args, "--update") - } - err := run(exec.Command("dep", args...)) - if err != nil { - return err - } - return nil - } - - // go old school with the installation - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - wg, _ := errgroup.WithContext(ctx) - deps, err := deplist.List() - if err != nil { - return err - } - - deps["github.com/gobuffalo/suite"] = "github.com/gobuffalo/suite" - - for dep := range deps { - args := []string{"get"} - if setupOptions.verbose { - args = append(args, "-v") - } - if setupOptions.updateGoDeps { - args = append(args, "-u") - } - args = append(args, dep) - c := exec.Command(envy.Get("GO_BIN", "go"), args...) - f := func() error { - return run(c) - } - wg.Go(f) - } - err = wg.Wait() - if err != nil { - return fmt.Errorf("We encountered the following error trying to install and update the dependencies for this application:\n%s", err) - } - return nil -} - func testCheck(meta.App) error { err := run(exec.Command("buffalo", "test")) if err != nil { @@ -238,7 +171,6 @@ func run(cmd *exec.Cmd) error { func init() { setupCmd.Flags().BoolVarP(&setupOptions.verbose, "verbose", "v", false, "run with verbose output") - setupCmd.Flags().BoolVarP(&setupOptions.updateGoDeps, "update", "u", false, "run go get -u against the application's Go dependencies") setupCmd.Flags().BoolVarP(&setupOptions.dropDatabases, "drop", "d", false, "drop existing databases") decorate("setup", setupCmd) diff --git a/buffalo/cmd/updater/dep.go b/buffalo/cmd/updater/dep.go deleted file mode 100644 index 08f60a199..000000000 --- a/buffalo/cmd/updater/dep.go +++ /dev/null @@ -1,7 +0,0 @@ -package updater - -import "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - -// DepEnsure runs `dep ensure -v` to make sure that any newly changed -// imports are added to dep. -var DepEnsure = fix.DepEnsure diff --git a/buffalo/cmd/updater/deprecations.go b/buffalo/cmd/updater/deprecations.go deleted file mode 100644 index 5a5a9f655..000000000 --- a/buffalo/cmd/updater/deprecations.go +++ /dev/null @@ -1,6 +0,0 @@ -package updater - -import "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - -// DeprecrationsCheck will either log, or fix, deprecated items in the application -var DeprecrationsCheck = fix.DeprecrationsCheck diff --git a/buffalo/cmd/updater/imports.go b/buffalo/cmd/updater/imports.go deleted file mode 100644 index 2cedf8111..000000000 --- a/buffalo/cmd/updater/imports.go +++ /dev/null @@ -1,6 +0,0 @@ -package updater - -import "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - -// ImportConverter will changes imports from a -> b -type ImportConverter = fix.ImportConverter diff --git a/buffalo/cmd/updater/npm.go b/buffalo/cmd/updater/npm.go deleted file mode 100644 index 37c60fcf8..000000000 --- a/buffalo/cmd/updater/npm.go +++ /dev/null @@ -1,9 +0,0 @@ -package updater - -import "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - -// PackageJSONCheck will compare the current default Buffalo -// package.json against the applications package.json. If they are -// different you have the option to overwrite the existing package.json -// file with the new one. -var PackageJSONCheck = fix.PackageJSONCheck diff --git a/buffalo/cmd/updater/runner.go b/buffalo/cmd/updater/runner.go deleted file mode 100644 index 3b951220e..000000000 --- a/buffalo/cmd/updater/runner.go +++ /dev/null @@ -1,12 +0,0 @@ -package updater - -import "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - -// Check interface for runnable checker functions -type Check = fix.Check - -// Runner will run all compatible checks -type Runner = fix.Runner - -// Run all compatible checks -var Run = fix.Run diff --git a/buffalo/cmd/updater/updater.go b/buffalo/cmd/updater/updater.go deleted file mode 100644 index 8cc3d66ed..000000000 --- a/buffalo/cmd/updater/updater.go +++ /dev/null @@ -1,7 +0,0 @@ -package updater - -import "github.com/markbates/oncer" - -func init() { - oncer.Deprecate(0, "github.com/gobuffalo/buffalo/updater", "Use github.com/gobuffalo/buffalo/fix instead.") -} diff --git a/buffalo/cmd/updater/webpack.go b/buffalo/cmd/updater/webpack.go deleted file mode 100644 index 7002d819d..000000000 --- a/buffalo/cmd/updater/webpack.go +++ /dev/null @@ -1,9 +0,0 @@ -package updater - -import "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - -// WebpackCheck will compare the current default Buffalo -// webpack.config.js against the applications webpack.config.js. If they are -// different you have the option to overwrite the existing webpack.config.js -// file with the new one. -var WebpackCheck = fix.WebpackCheck diff --git a/genny/build/build_deps.go b/genny/build/build_deps.go index 010f98b02..dfd28c7a2 100644 --- a/genny/build/build_deps.go +++ b/genny/build/build_deps.go @@ -3,7 +3,6 @@ package build import ( "github.com/gobuffalo/envy" "github.com/gobuffalo/genny" - "github.com/gobuffalo/genny/depgen" "github.com/gobuffalo/genny/gogen" ) @@ -18,11 +17,6 @@ func buildDeps(opts *Options) (*genny.Generator, error) { return g, nil } - if opts.App.WithDep { - // mount the dep generator - return depgen.Ensure(false) - } - // mount the go get runner tf := opts.App.BuildTags(opts.Environment, opts.Tags...) if len(tf) > 0 { diff --git a/genny/build/build_deps_test.go b/genny/build/build_deps_test.go index 6a272dc9d..f48cc0310 100644 --- a/genny/build/build_deps_test.go +++ b/genny/build/build_deps_test.go @@ -33,24 +33,3 @@ func Test_buildDeps(t *testing.T) { c := res.Commands[0] r.Equal("go get -tags development foo ./...", strings.Join(c.Args, " ")) } - -func Test_buildDeps_WithDep(t *testing.T) { - envy.Temp(func() { - envy.Set(envy.GO111MODULE, "off") - r := require.New(t) - - opts := &Options{App: meta.New(".")} - opts.App.WithDep = true - - run := gentest.NewRunner() - run.WithNew(buildDeps(opts)) - - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 1) - - c := res.Commands[0] - r.Equal("dep ensure", strings.Join(c.Args, " ")) - }) -} diff --git a/genny/info/pkg.go b/genny/info/pkg.go index 998be9133..dd98fb824 100644 --- a/genny/info/pkg.go +++ b/genny/info/pkg.go @@ -7,7 +7,7 @@ import ( func pkgChecks(opts *Options, box packd.Finder) genny.RunFn { return func(r *genny.Runner) error { - for _, x := range []string{"go.mod", "Gopkg.toml", "Gopkg.lock"} { + for _, x := range []string{"go.mod"} { f, err := box.FindString(x) if err == nil { opts.Out.Header("\nBuffalo: " + x) diff --git a/genny/info/pkg_test.go b/genny/info/pkg_test.go index 9e7bb3a0b..ba7a85418 100644 --- a/genny/info/pkg_test.go +++ b/genny/info/pkg_test.go @@ -25,14 +25,10 @@ func Test_pkgChecks(t *testing.T) { box := packd.NewMemoryBox() box.AddString("go.mod", "module foo") - box.AddString("Gopkg.toml", "dep toml") - box.AddString("Gopkg.lock", "dep lock") run.WithRun(pkgChecks(opts, box)) r.NoError(run.Run()) res := bb.String() r.Contains(res, "Buffalo: go.mod") - r.Contains(res, "Buffalo: Gopkg.toml") - r.Contains(res, "Buffalo: Gopkg.lock") } diff --git a/genny/newapp/api/api.go b/genny/newapp/api/api.go index 933a7d2ba..c1c6fccc8 100644 --- a/genny/newapp/api/api.go +++ b/genny/newapp/api/api.go @@ -35,7 +35,7 @@ func New(opts *Options) (*genny.Group, error) { gg.Add(g) // DEP/MODS/go get should be last - if !opts.App.WithDep && !opts.App.WithModules { + if !opts.App.WithModules { g := genny.New() g.Command(gogen.Get("./...", "-t")) gg.Add(g) diff --git a/genny/newapp/core/core.go b/genny/newapp/core/core.go index ac4e7a04b..557c00621 100644 --- a/genny/newapp/core/core.go +++ b/genny/newapp/core/core.go @@ -10,7 +10,6 @@ import ( "github.com/gobuffalo/buffalo/plugins/plugdeps" "github.com/gobuffalo/buffalo/runtime" "github.com/gobuffalo/genny" - "github.com/gobuffalo/genny/depgen" "github.com/gobuffalo/genny/gogen" "github.com/gobuffalo/genny/gogen/gomods" "github.com/gobuffalo/meta" @@ -103,17 +102,7 @@ func New(opts *Options) (*genny.Group, error) { } gg.Merge(ig) - // DEP/MODS/go get should be last - if app.WithDep { - // init dep - di, err := depgen.Init("", false) - if err != nil { - return gg, err - } - gg.Add(di) - } - - if !app.WithDep && !app.WithModules { + if !app.WithModules { g := genny.New() g.Command(gogen.Get("./...", "-t")) gg.Add(g) diff --git a/genny/newapp/core/errors.go b/genny/newapp/core/errors.go index f47fc7c4d..854ce7521 100644 --- a/genny/newapp/core/errors.go +++ b/genny/newapp/core/errors.go @@ -2,8 +2,5 @@ package core import "fmt" -// ErrGoModulesWithDep is thrown when trying to use both dep and go modules -var ErrGoModulesWithDep = fmt.Errorf("dep and modules can not be used at the same time") - // ErrNotInGoPath is thrown when not using go modules outside of GOPATH var ErrNotInGoPath = fmt.Errorf("currently not in a $GOPATH") diff --git a/genny/newapp/core/options.go b/genny/newapp/core/options.go index a669222d8..96799d1bb 100644 --- a/genny/newapp/core/options.go +++ b/genny/newapp/core/options.go @@ -72,10 +72,6 @@ func (opts *Options) Validate() error { } } - if opts.App.WithModules && opts.App.WithDep { - return ErrGoModulesWithDep - } - name := strings.ToLower(opts.App.Name.String()) fb := append(opts.ForbiddenNames, "buffalo", "test", "dev") for _, n := range fb { diff --git a/genny/newapp/core/options_test.go b/genny/newapp/core/options_test.go index 9ff526a97..a8964c825 100644 --- a/genny/newapp/core/options_test.go +++ b/genny/newapp/core/options_test.go @@ -33,9 +33,4 @@ func Test_Options_Validate(t *testing.T) { err = opts.Validate() r.NoError(err) - opts.App.WithDep = true - opts.App.WithModules = true - err = opts.Validate() - r.Error(err) - r.Equal(ErrGoModulesWithDep, err) } diff --git a/genny/newapp/web/web.go b/genny/newapp/web/web.go index 30d728f07..bb05b824c 100644 --- a/genny/newapp/web/web.go +++ b/genny/newapp/web/web.go @@ -56,7 +56,7 @@ func New(opts *Options) (*genny.Group, error) { } // DEP/MODS/go get should be last - if !opts.App.WithDep && !opts.App.WithModules { + if !opts.App.WithModules { g := genny.New() g.Command(gogen.Get("./...", "-t")) gg.Add(g) diff --git a/go.mod b/go.mod index 970412f6f..ff215ca57 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,6 @@ require ( github.com/gorilla/mux v1.7.3 github.com/gorilla/sessions v1.2.0 github.com/karrick/godirwalk v1.10.12 - github.com/markbates/deplist v1.3.0 github.com/markbates/grift v1.1.0 github.com/markbates/oncer v1.0.0 github.com/markbates/refresh v1.8.0 diff --git a/go.sum b/go.sum index 1ed959dae..204051a48 100644 --- a/go.sum +++ b/go.sum @@ -576,9 +576,8 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= github.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= github.com/markbates/deplist v1.1.3/go.mod h1:BF7ioVzAJYEtzQN/os4rt8H8Ti3h0T7EoN+7eyALktE= +github.com/markbates/deplist v1.2.0 h1:4O1+3kAk6xat7T5tVahmKrrtTgzArSNeKpZVGBm5Hl4= github.com/markbates/deplist v1.2.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk= -github.com/markbates/deplist v1.3.0 h1:uPgoloPraPBPYtNSxj2UwZBh2EHW9TmMvQCP2FBiRlU= -github.com/markbates/deplist v1.3.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk= github.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c= github.com/markbates/going v1.0.3/go.mod h1:fQiT6v6yQar9UD6bd/D4Z5Afbk9J6BBVBtLiyY4gp2o= github.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs=