From b64a150ca24a36fdc7eb410e069958b384c4703e Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 01:21:59 +0800 Subject: [PATCH 1/8] copyloopvar --- .golangci.yml | 1 + go.mod | 4 ++-- ignite/pkg/cmdrunner/cmdrunner.go | 1 - ignite/pkg/cosmosgen/generate_composables.go | 1 - ignite/pkg/cosmosgen/generate_typescript.go | 1 - ignite/version/version_test.go | 1 - 6 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index dd076db8ad..a01df459f0 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -9,6 +9,7 @@ linters: disable-all: true enable: - bodyclose + - copyloopvar - decorder - depguard - dogsled diff --git a/go.mod b/go.mod index f61028efdc..5ded020436 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/ignite/cli/v29 -go 1.21.1 +go 1.22 -toolchain go1.21.3 +toolchain go1.22.3 replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 diff --git a/ignite/pkg/cmdrunner/cmdrunner.go b/ignite/pkg/cmdrunner/cmdrunner.go index d49b107a0f..8883db157f 100644 --- a/ignite/pkg/cmdrunner/cmdrunner.go +++ b/ignite/pkg/cmdrunner/cmdrunner.go @@ -107,7 +107,6 @@ func (r *Runner) Run(ctx context.Context, steps ...*step.Step) error { step.Exec.Command, strings.Join(step.Exec.Args, " ")) } - step := step if err := ctx.Err(); err != nil { return err } diff --git a/ignite/pkg/cosmosgen/generate_composables.go b/ignite/pkg/cosmosgen/generate_composables.go index eca228d8a4..86945e3718 100644 --- a/ignite/pkg/cosmosgen/generate_composables.go +++ b/ignite/pkg/cosmosgen/generate_composables.go @@ -118,7 +118,6 @@ func (g *composablesGenerator) generateComposableTemplates(p generatePayload) er gg := &errgroup.Group{} for _, m := range p.Modules { - m := m gg.Go(func() error { return g.generateComposableTemplate(m, p) diff --git a/ignite/pkg/cosmosgen/generate_typescript.go b/ignite/pkg/cosmosgen/generate_typescript.go index 66d5f65179..6a70f71e8d 100644 --- a/ignite/pkg/cosmosgen/generate_typescript.go +++ b/ignite/pkg/cosmosgen/generate_typescript.go @@ -102,7 +102,6 @@ func (g *tsGenerator) generateModuleTemplates(ctx context.Context) error { dirCache := cache.New[[]byte](g.g.cacheStorage, dirchangeCacheNamespace) add := func(sourcePath string, modules []module.Module, includes []string) { for _, m := range modules { - m := m gg.Go(func() error { cacheKey := m.Pkg.Path diff --git a/ignite/version/version_test.go b/ignite/version/version_test.go index ea2be8246a..78724ff8d7 100644 --- a/ignite/version/version_test.go +++ b/ignite/version/version_test.go @@ -44,7 +44,6 @@ func TestAssertSupportedCosmosSDKVersion(t *testing.T) { } for _, tc := range testCases { - tc := tc t.Run(tc.name, func(t *testing.T) { err := version.AssertSupportedCosmosSDKVersion(tc.version) if tc.errMsg == "" { From fea5c84b8fcafae7a8cd94ca643bb612a52babb0 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 02:58:34 +0800 Subject: [PATCH 2/8] enable copyloopvar linter --- changelog.md | 1 + .../services/plugin/grpc/v1/interface_flag.go | 24 ++++++++++++++----- .../plugin/grpc/v1/types_command_test.go | 3 ++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/changelog.md b/changelog.md index b527cfcaea..d0a50a0e20 100644 --- a/changelog.md +++ b/changelog.md @@ -21,6 +21,7 @@ ### Changes +- [#4160](https://github.com/ignite/cli/pull/4160) Enable copyloopvar linter - [#4094](https://github.com/ignite/cli/pull/4094) Scaffolding a multi-index map using `ignite s map foo bar baz --index foobar,foobaz` is no longer supported. Use one index instead of use `collections.IndexedMap`. - [#4058](https://github.com/ignite/cli/pull/4058) Simplify scaffolded modules by including `ValidateBasic()` logic in message handler. - [#4058](https://github.com/ignite/cli/pull/4058) Use `address.Codec` instead of `AccAddressFromBech32`. diff --git a/ignite/services/plugin/grpc/v1/interface_flag.go b/ignite/services/plugin/grpc/v1/interface_flag.go index 8369d476c2..aaadcb5441 100644 --- a/ignite/services/plugin/grpc/v1/interface_flag.go +++ b/ignite/services/plugin/grpc/v1/interface_flag.go @@ -50,7 +50,9 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.IntP(f.Name, f.Shorthand, v, f.Usage) - fs.Set(f.Name, f.Value) + if err := fs.Set(f.Name, f.Value); err != nil { + return err + } case Flag_TYPE_FLAG_UINT: v, err := strconv.ParseUint(f.DefaultValue, 10, 64) if err != nil { @@ -58,7 +60,9 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.UintP(f.Name, f.Shorthand, uint(v), f.Usage) - fs.Set(f.Name, f.Value) + if err := fs.Set(f.Name, f.Value); err != nil { + return err + } case Flag_TYPE_FLAG_INT64: v, err := strconv.ParseInt(f.DefaultValue, 10, 64) if err != nil { @@ -66,7 +70,9 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.Int64P(f.Name, f.Shorthand, v, f.Usage) - fs.Set(f.Name, f.Value) + if err := fs.Set(f.Name, f.Value); err != nil { + return err + } case Flag_TYPE_FLAG_UINT64: v, err := strconv.ParseUint(f.DefaultValue, 10, 64) if err != nil { @@ -74,14 +80,20 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.Uint64P(f.Name, f.Shorthand, v, f.Usage) - fs.Set(f.Name, f.Value) + if err := fs.Set(f.Name, f.Value); err != nil { + return err + } case Flag_TYPE_FLAG_STRING_SLICE: s := strings.Trim(f.DefaultValue, "[]") fs.StringSliceP(f.Name, f.Shorthand, strings.Fields(s), f.Usage) - fs.Set(f.Name, strings.Trim(f.Value, "[]")) + if err := fs.Set(f.Name, strings.Trim(f.Value, "[]")); err != nil { + return err + } case Flag_TYPE_FLAG_STRING_UNSPECIFIED: fs.StringP(f.Name, f.Shorthand, f.DefaultValue, f.Usage) - fs.Set(f.Name, f.Value) + if err := fs.Set(f.Name, f.Value); err != nil { + return err + } } return nil } diff --git a/ignite/services/plugin/grpc/v1/types_command_test.go b/ignite/services/plugin/grpc/v1/types_command_test.go index 0547684a35..03d1319cd1 100644 --- a/ignite/services/plugin/grpc/v1/types_command_test.go +++ b/ignite/services/plugin/grpc/v1/types_command_test.go @@ -131,7 +131,8 @@ func TestExecutedCommandImportFlags(t *testing.T) { cmd := cobra.Command{} cmd.Flags().StringP("foo", "f", "bar", "foo usage") cmd.PersistentFlags().IntP("test", "t", 1, "test usage") - cmd.ParseFlags([]string{"--foo", "baz", "--test", "42"}) + err := cmd.ParseFlags([]string{"--foo", "baz", "--test", "42"}) + require.NoError(t, err) // Act execCmd.ImportFlags(&cmd) From 8520870bba5c1b294e577a168d9baea24388809e Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 03:00:14 +0800 Subject: [PATCH 3/8] Update types_command_test.go --- ignite/services/plugin/grpc/v1/types_command_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ignite/services/plugin/grpc/v1/types_command_test.go b/ignite/services/plugin/grpc/v1/types_command_test.go index 03d1319cd1..0547684a35 100644 --- a/ignite/services/plugin/grpc/v1/types_command_test.go +++ b/ignite/services/plugin/grpc/v1/types_command_test.go @@ -131,8 +131,7 @@ func TestExecutedCommandImportFlags(t *testing.T) { cmd := cobra.Command{} cmd.Flags().StringP("foo", "f", "bar", "foo usage") cmd.PersistentFlags().IntP("test", "t", 1, "test usage") - err := cmd.ParseFlags([]string{"--foo", "baz", "--test", "42"}) - require.NoError(t, err) + cmd.ParseFlags([]string{"--foo", "baz", "--test", "42"}) // Act execCmd.ImportFlags(&cmd) From 8c874eab9a17c6de127637c1ec5d1a964dbd1399 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 03:04:16 +0800 Subject: [PATCH 4/8] bump linter --- .github/workflows/test-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-lint.yml b/.github/workflows/test-lint.yml index aad15e59e4..514fbaae64 100644 --- a/.github/workflows/test-lint.yml +++ b/.github/workflows/test-lint.yml @@ -35,7 +35,7 @@ jobs: - uses: golangci/golangci-lint-action@v6 if: env.GIT_DIFF with: - version: v1.54.2 + version: v1.58.0 install-mode: goinstall args: --timeout 10m github-token: ${{ secrets.github_token }} From f021fe05df295c3f6d8ff287146ffc287ee7ecb9 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 03:20:22 +0800 Subject: [PATCH 5/8] update linter settings --- .golangci.yml | 8 ++++---- ignite/pkg/cosmosgen/generate_composables.go | 1 - ignite/pkg/cosmosgen/generate_typescript.go | 1 - 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index a01df459f0..6df738480f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,9 +1,5 @@ run: tests: false - skip-dirs: - - ignite/ui -# # timeout for analysis, e.g. 30s, 5m, default is 1m -# timeout: 5m linters: disable-all: true @@ -48,6 +44,10 @@ linters: # - wsl linters-settings: + exclude-dirs: + - ignite/ui + # # timeout for analysis, e.g. 30s, 5m, default is 1m + # timeout: 5m forbidigo: forbid: - p: ^fmt\.Errorf$ diff --git a/ignite/pkg/cosmosgen/generate_composables.go b/ignite/pkg/cosmosgen/generate_composables.go index 86945e3718..8e2f5aeecf 100644 --- a/ignite/pkg/cosmosgen/generate_composables.go +++ b/ignite/pkg/cosmosgen/generate_composables.go @@ -118,7 +118,6 @@ func (g *composablesGenerator) generateComposableTemplates(p generatePayload) er gg := &errgroup.Group{} for _, m := range p.Modules { - gg.Go(func() error { return g.generateComposableTemplate(m, p) }) diff --git a/ignite/pkg/cosmosgen/generate_typescript.go b/ignite/pkg/cosmosgen/generate_typescript.go index 6a70f71e8d..08069fa38e 100644 --- a/ignite/pkg/cosmosgen/generate_typescript.go +++ b/ignite/pkg/cosmosgen/generate_typescript.go @@ -102,7 +102,6 @@ func (g *tsGenerator) generateModuleTemplates(ctx context.Context) error { dirCache := cache.New[[]byte](g.g.cacheStorage, dirchangeCacheNamespace) add := func(sourcePath string, modules []module.Module, includes []string) { for _, m := range modules { - gg.Go(func() error { cacheKey := m.Pkg.Path paths := append([]string{m.Pkg.Path, g.g.opts.jsOut(m)}, g.g.opts.includeDirs...) From f386769bcba2b9e0059bb0ae41fea8f4e02ce019 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 03:23:21 +0800 Subject: [PATCH 6/8] cleanup --- go.mod | 1 - ignite/cmd/chain.go | 2 +- ignite/cmd/plugin_test.go | 2 +- ignite/services/chain/init.go | 4 ---- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 5bad3e53c3..5ded020436 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.22 toolchain go1.22.3 - replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2 diff --git a/ignite/cmd/chain.go b/ignite/cmd/chain.go index c18ad70eb7..c128b1ae43 100644 --- a/ignite/cmd/chain.go +++ b/ignite/cmd/chain.go @@ -288,7 +288,7 @@ func configMigrationPreRunHandler(cmd *cobra.Command, session *cliui.Session, ap return err } - if err := os.WriteFile(cfgPath, buf.Bytes(), 0o755); err != nil { + if err := os.WriteFile(cfgPath, buf.Bytes(), 0o600); err != nil { return errors.Errorf("config file migration failed: %w", err) } } diff --git a/ignite/cmd/plugin_test.go b/ignite/cmd/plugin_test.go index 7513e016d5..167c89c498 100644 --- a/ignite/cmd/plugin_test.go +++ b/ignite/cmd/plugin_test.go @@ -86,7 +86,7 @@ func TestLinkPluginCmds(t *testing.T) { ) // helper to assert pluginInterface.Execute() calls - expectExecute := func(t *testing.T, ctx context.Context, p *mocks.PluginInterface, cmd *plugin.Command) { + expectExecute := func(t *testing.T, _ context.Context, p *mocks.PluginInterface, cmd *plugin.Command) { t.Helper() p.EXPECT(). Execute( diff --git a/ignite/services/chain/init.go b/ignite/services/chain/init.go index 863b58c6b0..f91c12347d 100644 --- a/ignite/services/chain/init.go +++ b/ignite/services/chain/init.go @@ -229,10 +229,6 @@ func (c *Chain) IsInitialized() (bool, error) { if _, err := os.Stat(gentxDir); os.IsNotExist(err) { return false, nil } - if err != nil { - // Return error on other error - return false, err - } return true, nil } From bb4686ec48eaeb8acc602f328a46ec6c3f9819c2 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 20 May 2024 03:40:54 +0800 Subject: [PATCH 7/8] revert mistaken changes --- .../services/plugin/grpc/v1/interface_flag.go | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/ignite/services/plugin/grpc/v1/interface_flag.go b/ignite/services/plugin/grpc/v1/interface_flag.go index aaadcb5441..8369d476c2 100644 --- a/ignite/services/plugin/grpc/v1/interface_flag.go +++ b/ignite/services/plugin/grpc/v1/interface_flag.go @@ -50,9 +50,7 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.IntP(f.Name, f.Shorthand, v, f.Usage) - if err := fs.Set(f.Name, f.Value); err != nil { - return err - } + fs.Set(f.Name, f.Value) case Flag_TYPE_FLAG_UINT: v, err := strconv.ParseUint(f.DefaultValue, 10, 64) if err != nil { @@ -60,9 +58,7 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.UintP(f.Name, f.Shorthand, uint(v), f.Usage) - if err := fs.Set(f.Name, f.Value); err != nil { - return err - } + fs.Set(f.Name, f.Value) case Flag_TYPE_FLAG_INT64: v, err := strconv.ParseInt(f.DefaultValue, 10, 64) if err != nil { @@ -70,9 +66,7 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.Int64P(f.Name, f.Shorthand, v, f.Usage) - if err := fs.Set(f.Name, f.Value); err != nil { - return err - } + fs.Set(f.Name, f.Value) case Flag_TYPE_FLAG_UINT64: v, err := strconv.ParseUint(f.DefaultValue, 10, 64) if err != nil { @@ -80,20 +74,14 @@ func (f *Flag) exportToFlagSet(fs *pflag.FlagSet) error { } fs.Uint64P(f.Name, f.Shorthand, v, f.Usage) - if err := fs.Set(f.Name, f.Value); err != nil { - return err - } + fs.Set(f.Name, f.Value) case Flag_TYPE_FLAG_STRING_SLICE: s := strings.Trim(f.DefaultValue, "[]") fs.StringSliceP(f.Name, f.Shorthand, strings.Fields(s), f.Usage) - if err := fs.Set(f.Name, strings.Trim(f.Value, "[]")); err != nil { - return err - } + fs.Set(f.Name, strings.Trim(f.Value, "[]")) case Flag_TYPE_FLAG_STRING_UNSPECIFIED: fs.StringP(f.Name, f.Shorthand, f.DefaultValue, f.Usage) - if err := fs.Set(f.Name, f.Value); err != nil { - return err - } + fs.Set(f.Name, f.Value) } return nil } From 41e39602ef91d73bca74205fe7db627c87b4dcda Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 13 Jun 2024 16:52:47 +0300 Subject: [PATCH 8/8] rollback chain/init.go changes --- go.mod | 2 +- ignite/internal/plugin/testdata/execute_fail/go.mod | 2 +- ignite/internal/plugin/testdata/execute_ok/go.mod | 2 +- ignite/services/chain/init.go | 4 ++++ integration/plugin/testdata/example-plugin/go.mod | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 0b04981d5a..26274c922e 100644 --- a/go.mod +++ b/go.mod @@ -47,6 +47,7 @@ require ( github.com/goccy/go-yaml v1.11.3 github.com/golangci/golangci-lint v1.57.2 github.com/google/go-github/v48 v48.2.0 + github.com/google/go-querystring v1.1.0 github.com/gorilla/mux v1.8.1 github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/go-plugin v1.6.0 @@ -270,7 +271,6 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-containerregistry v0.19.1 // indirect github.com/google/go-dap v0.11.0 // indirect - github.com/google/go-querystring v1.1.0 // indirect github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gordonklaus/ineffassign v0.1.0 // indirect diff --git a/ignite/internal/plugin/testdata/execute_fail/go.mod b/ignite/internal/plugin/testdata/execute_fail/go.mod index 692db54a4b..93c6b097b1 100644 --- a/ignite/internal/plugin/testdata/execute_fail/go.mod +++ b/ignite/internal/plugin/testdata/execute_fail/go.mod @@ -24,7 +24,7 @@ require ( github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-sdk v0.50.6 // indirect + github.com/cosmos/cosmos-sdk v0.50.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.16.0 // indirect diff --git a/ignite/internal/plugin/testdata/execute_ok/go.mod b/ignite/internal/plugin/testdata/execute_ok/go.mod index 30c13651f0..f012ea498e 100644 --- a/ignite/internal/plugin/testdata/execute_ok/go.mod +++ b/ignite/internal/plugin/testdata/execute_ok/go.mod @@ -24,7 +24,7 @@ require ( github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-sdk v0.50.6 // indirect + github.com/cosmos/cosmos-sdk v0.50.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.16.0 // indirect diff --git a/ignite/services/chain/init.go b/ignite/services/chain/init.go index 7146e47e35..aaa710b5d6 100644 --- a/ignite/services/chain/init.go +++ b/ignite/services/chain/init.go @@ -229,6 +229,10 @@ func (c *Chain) IsInitialized() (bool, error) { if _, err := os.Stat(gentxDir); os.IsNotExist(err) { return false, nil } + if err != nil { + // Return error on other error + return false, err + } return true, nil } diff --git a/integration/plugin/testdata/example-plugin/go.mod b/integration/plugin/testdata/example-plugin/go.mod index 3033d77639..1cbc0ada56 100644 --- a/integration/plugin/testdata/example-plugin/go.mod +++ b/integration/plugin/testdata/example-plugin/go.mod @@ -22,7 +22,7 @@ require ( github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-sdk v0.50.6 // indirect + github.com/cosmos/cosmos-sdk v0.50.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.16.0 // indirect