diff --git a/changelog.md b/changelog.md index c0e58d2ea0..55cb1dcb24 100644 --- a/changelog.md +++ b/changelog.md @@ -5,11 +5,13 @@ ### Features - [#4183](https://github.com/ignite/cli/pull/4183) Set `chain-id` in the client.toml +- [#4001](https://github.com/ignite/cli/pull/4001) Improve `xgenny` dry run ### Changes - [#4095](https://github.com/ignite/cli/pull/4095) Migrate to matomo analytics - [#4149](https://github.com/ignite/cli/pull/4149) Bump cometbft to `v0.38.7` +- [#4002](https://github.com/ignite/cli/pull/4002) Bump buf build - [#4168](https://github.com/ignite/cli/pull/4168) Bump IBC to `v8.3.1` If you are upgrading manually from `v8.2.0` to `v8.3.1`, add the following to your `ibc.go` file: diff --git a/docs/docs/06-migration/v28.0.0.md b/docs/docs/06-migration/v28.0.0.md index 9c618fefd8..7ece1836f6 100644 --- a/docs/docs/06-migration/v28.0.0.md +++ b/docs/docs/06-migration/v28.0.0.md @@ -81,15 +81,15 @@ This guide provides a step-by-step process for developers to upgrade their appli - **Old Code**: ```go - store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey)) + store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey)) ``` - **New Code**: ```go - storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) - store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.PostKey)) + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.PostKey)) ``` diff --git a/go.mod b/go.mod index 620fe3116f..1f316195b4 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/DATA-DOG/go-sqlmock v1.5.2 github.com/blang/semver/v4 v4.0.0 github.com/briandowns/spinner v1.23.0 - github.com/bufbuild/buf v1.30.1 + github.com/bufbuild/buf v1.34.0 github.com/buger/jsonparser v1.1.1 github.com/cenkalti/backoff v2.2.1+incompatible github.com/charmbracelet/bubbles v0.7.6 @@ -66,22 +66,22 @@ require ( github.com/pelletier/go-toml v1.9.5 github.com/radovskyb/watcher v1.0.7 github.com/rogpeppe/go-internal v1.12.0 - github.com/rs/cors v1.10.1 - github.com/spf13/cobra v1.8.0 + github.com/rs/cors v1.11.0 + github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/tbruyelle/mdgofmt v0.1.3 github.com/vektra/mockery/v2 v2.40.1 go.etcd.io/bbolt v1.3.9 - golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 - golang.org/x/mod v0.17.0 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 + golang.org/x/mod v0.18.0 golang.org/x/sync v0.7.0 - golang.org/x/term v0.19.0 - golang.org/x/text v0.14.0 - golang.org/x/tools v0.20.0 - golang.org/x/vuln v1.0.4 - google.golang.org/grpc v1.63.2 - google.golang.org/protobuf v1.33.0 + golang.org/x/term v0.21.0 + golang.org/x/text v0.16.0 + golang.org/x/tools v0.22.0 + golang.org/x/vuln v1.0.1 + google.golang.org/grpc v1.64.0 + google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v2 v2.4.0 mvdan.cc/gofumpt v0.6.0 sigs.k8s.io/yaml v1.4.0 @@ -90,8 +90,10 @@ require ( require ( 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1 // indirect - connectrpc.com/connect v1.16.0 // indirect + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240508200655-46a4cf4ba109.2 // indirect + buf.build/gen/go/bufbuild/registry/connectrpc/go v1.16.2-20240610164129-660609bc46d3.1 // indirect + buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.34.2-20240610164129-660609bc46d3.2 // indirect + connectrpc.com/connect v1.16.2 // indirect connectrpc.com/otelconnect v0.7.0 // indirect cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/collections v0.4.0 // indirect @@ -142,15 +144,16 @@ require ( github.com/breml/errchkjson v0.3.6 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect - github.com/bufbuild/protocompile v0.9.0 // indirect - github.com/bufbuild/protovalidate-go v0.6.0 // indirect - github.com/bufbuild/protoyaml-go v0.1.8 // indirect + github.com/bufbuild/protocompile v0.14.0 // indirect + github.com/bufbuild/protoplugin v0.0.0-20240323223605-e2735f6c31ee // indirect + github.com/bufbuild/protovalidate-go v0.6.2 // indirect + github.com/bufbuild/protoyaml-go v0.1.9 // indirect github.com/butuzov/ireturn v0.3.0 // indirect github.com/butuzov/mirror v1.1.0 // indirect github.com/calmh/randomart v1.1.0 // indirect github.com/catenacyber/perfsprint v0.7.1 // indirect github.com/ccojocar/zxcvbn-go v1.0.2 // indirect - github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect @@ -196,10 +199,10 @@ require ( github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/dlclark/regexp2 v1.2.0 // indirect - github.com/docker/cli v26.0.0+incompatible // indirect + github.com/docker/cli v26.1.4+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect - github.com/docker/docker v26.0.0+incompatible // indirect - github.com/docker/docker-credential-helpers v0.8.1 // indirect + github.com/docker/docker v27.0.0+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect @@ -217,7 +220,7 @@ require ( github.com/fzipp/gocyclo v0.6.0 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect github.com/ghostiam/protogetter v0.3.5 // indirect - github.com/go-chi/chi/v5 v5.0.12 // indirect + github.com/go-chi/chi/v5 v5.0.13 // indirect github.com/go-critic/go-critic v0.11.2 // indirect github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect @@ -225,7 +228,7 @@ require ( github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect @@ -245,7 +248,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gofrs/uuid v4.4.0+incompatible // indirect - github.com/gofrs/uuid/v5 v5.0.0 // indirect + github.com/gofrs/uuid/v5 v5.2.0 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.1.0 // indirect @@ -262,9 +265,9 @@ require ( github.com/google/btree v1.1.2 // indirect github.com/google/cel-go v0.20.1 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/go-containerregistry v0.19.1 // indirect + github.com/google/go-containerregistry v0.19.2 // indirect github.com/google/go-dap v0.11.0 // indirect - github.com/google/pprof v0.0.0-20240327155427-868f304927ed // indirect + github.com/google/pprof v0.0.0-20240618054019-d3b898a103f8 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gordonklaus/ineffassign v0.1.0 // indirect github.com/gorilla/css v1.0.0 // indirect @@ -308,7 +311,7 @@ require ( github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kisielk/errcheck v1.7.0 // indirect github.com/kkHAIKE/contextcheck v1.1.5 // indirect - github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/pgzip v1.2.6 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect @@ -454,14 +457,14 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.6.0 // indirect - golang.org/x/crypto v0.22.0 // indirect + golang.org/x/crypto v0.24.0 // indirect golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect - golang.org/x/net v0.24.0 // indirect - golang.org/x/sys v0.19.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.21.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240325203815-454cdb8f5daa // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index c8248cd6f8..aabf70f82e 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,12 @@ 4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs= 4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc= 4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1 h1:0nWhrRcnkgw1kwJ7xibIO8bqfOA7pBzBjGCDBxIHch8= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1/go.mod h1:Tgn5bgL220vkFOI0KPStlcClPeOJzAv4uT+V8JXGUnw= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240508200655-46a4cf4ba109.2 h1:cFrEG/pJch6t62+jqndcPXeTNkYcztS4tBRgNkR+drw= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240508200655-46a4cf4ba109.2/go.mod h1:ylS4c28ACSI59oJrOdW4pHS4n0Hw4TgSPHn8rpHl4Yw= +buf.build/gen/go/bufbuild/registry/connectrpc/go v1.16.2-20240610164129-660609bc46d3.1 h1:PmSlGbLLyhKIAm46ROmzdGVaaYgDdFsQNA+VftjuCLs= +buf.build/gen/go/bufbuild/registry/connectrpc/go v1.16.2-20240610164129-660609bc46d3.1/go.mod h1:4ptL49VoWyYwajT6j4zu5vmQ/k/om4tGMB9atY2FhEo= +buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.34.2-20240610164129-660609bc46d3.2 h1:y1+UxFIWzj/eF2RCPqt9egR7Rt9vgQkXNUzSdmR6iEU= +buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.34.2-20240610164129-660609bc46d3.2/go.mod h1:psseUmlKRo9v5LZJtR/aTpdTLuyp9o3X7rnLT87SZEo= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -37,8 +41,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -connectrpc.com/connect v1.16.0 h1:rdtfQjZ0OyFkWPTegBNcH7cwquGAN1WzyJy80oFNibg= -connectrpc.com/connect v1.16.0/go.mod h1:XpZAduBQUySsb4/KO5JffORVkDI4B6/EYPi7N8xpNZw= +connectrpc.com/connect v1.16.2 h1:ybd6y+ls7GOlb7Bh5C8+ghA6SvCBajHwxssO2CGFjqE= +connectrpc.com/connect v1.16.2/go.mod h1:n2kgwskMHXC+lVqb18wngEpF95ldBHXjZYJussz5FRc= connectrpc.com/otelconnect v0.7.0 h1:ZH55ZZtcJOTKWWLy3qmL4Pam4RzRWBJFOqTPyAqCXkY= connectrpc.com/otelconnect v0.7.0/go.mod h1:Bt2ivBymHZHqxvo4HkJ0EwHuUzQN6k2l0oH+mp/8nwc= cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= @@ -203,14 +207,16 @@ github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipus github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 h1:KdUfX2zKommPRa+PD0sWZUyXe9w277ABlgELO7H04IM= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/bufbuild/buf v1.30.1 h1:QFtanwsXodoGFAwzXFXGXpzBkb7N2u8ZDyA3jWB4Pbs= -github.com/bufbuild/buf v1.30.1/go.mod h1:7W8DJnj76wQa55EA3z2CmDxS0/nsHh8FqtE00dyDAdA= -github.com/bufbuild/protocompile v0.9.0 h1:DI8qLG5PEO0Mu1Oj51YFPqtx6I3qYXUAhJVJ/IzAVl0= -github.com/bufbuild/protocompile v0.9.0/go.mod h1:s89m1O8CqSYpyE/YaSGtg1r1YFMF5nLTwh4vlj6O444= -github.com/bufbuild/protovalidate-go v0.6.0 h1:Jgs1kFuZ2LHvvdj8SpCLA1W/+pXS8QSM3F/E2l3InPY= -github.com/bufbuild/protovalidate-go v0.6.0/go.mod h1:1LamgoYHZ2NdIQH0XGczGTc6Z8YrTHjcJVmiBaar4t4= -github.com/bufbuild/protoyaml-go v0.1.8 h1:X9QDLfl9uEllh4gsXUGqPanZYCOKzd92uniRtW2OnAQ= -github.com/bufbuild/protoyaml-go v0.1.8/go.mod h1:R8vE2+l49bSiIExP4VJpxOXleHE+FDzZ6HVxr3cYunw= +github.com/bufbuild/buf v1.34.0 h1:rZSVfYS5SakOe6ds9PDjbHVwOc+vBGVWNW9Ei+Rg/+c= +github.com/bufbuild/buf v1.34.0/go.mod h1:Fj+KBmY2ODYD2Ld02w4LH9Y3WiRH2203IjGJbKYK5Hc= +github.com/bufbuild/protocompile v0.14.0 h1:z3DW4IvXE5G/uTOnSQn+qwQQxvhckkTWLS/0No/o7KU= +github.com/bufbuild/protocompile v0.14.0/go.mod h1:N6J1NYzkspJo3ZwyL4Xjvli86XOj1xq4qAasUFxGups= +github.com/bufbuild/protoplugin v0.0.0-20240323223605-e2735f6c31ee h1:E6ET8YUcYJ1lAe6ctR3as7yqzW2BNItDFnaB5zQq/8M= +github.com/bufbuild/protoplugin v0.0.0-20240323223605-e2735f6c31ee/go.mod h1:HjGFxsck9RObrTJp2hXQZfWhPgZqnR6sR1U5fCA/Kus= +github.com/bufbuild/protovalidate-go v0.6.2 h1:U/V3CGF0kPlR12v41rjO4DrYZtLcS4ZONLmWN+rJVCQ= +github.com/bufbuild/protovalidate-go v0.6.2/go.mod h1:4BR3rKEJiUiTy+sqsusFn2ladOf0kYmA2Reo6BHSBgQ= +github.com/bufbuild/protoyaml-go v0.1.9 h1:anV5UtF1Mlvkkgp4NWA6U/zOnJFng8Orq4Vf3ZUQHBU= +github.com/bufbuild/protoyaml-go v0.1.9/go.mod h1:KCBItkvZOK/zwGueLdH1Wx1RLyFn5rCH7YjQrdty2Wc= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0= @@ -228,8 +234,8 @@ github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQd github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -357,7 +363,6 @@ github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5X github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= @@ -403,14 +408,14 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/dlclark/regexp2 v1.2.0 h1:8sAhBGEM0dRWogWqWyQeIJnxjWO6oIjl8FKqREDsGfk= github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/docker/cli v26.0.0+incompatible h1:90BKrx1a1HKYpSnnBFR6AgDq/FqkHxwlUyzJVPxD30I= -github.com/docker/cli v26.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v26.1.4+incompatible h1:I8PHdc0MtxEADqYJZvhBrW9bo8gawKwwenxRM7/rLu8= +github.com/docker/cli v26.1.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v26.0.0+incompatible h1:Ng2qi+gdKADUa/VM+6b6YaY2nlZhk/lVJiKR/2bMudU= -github.com/docker/docker v26.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo= -github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/docker v27.0.0+incompatible h1:JRugTYuelmWlW0M3jakcIadDx2HUoUO6+Tf2C5jVfwA= +github.com/docker/docker v27.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= +github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -487,8 +492,8 @@ github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= -github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s= -github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-chi/chi/v5 v5.0.13 h1:JlH2F2M8qnwl0N1+JFFzlX9TlKJYas3aPXdiuTmJL+w= +github.com/go-chi/chi/v5 v5.0.13/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-critic/go-critic v0.11.2 h1:81xH/2muBphEgPtcwH1p6QD+KzXl2tMSi3hXjBSxDnM= github.com/go-critic/go-critic v0.11.2/go.mod h1:OePaicfjsf+KPy33yq4gzv6CO7TEQ9Rom6ns1KsJnl8= github.com/go-delve/delve v1.21.0 h1:npcc8TZhdVxaMSJon+zqcE3bXM/ck8SSOOWw/id13jI= @@ -523,8 +528,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -606,8 +611,8 @@ github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14j github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= -github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +github.com/gofrs/uuid/v5 v5.2.0 h1:qw1GMx6/y8vhVsx626ImfKMuS5CvJmhIKKtuyvfajMM= +github.com/gofrs/uuid/v5 v5.2.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= @@ -701,8 +706,8 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.19.1 h1:yMQ62Al6/V0Z7CqIrrS1iYoA5/oQCm88DeNujc7C1KY= -github.com/google/go-containerregistry v0.19.1/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= +github.com/google/go-containerregistry v0.19.2 h1:TannFKE1QSajsP6hPWb5oJNgKe1IKjHukIKDUmvsV6w= +github.com/google/go-containerregistry v0.19.2/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= github.com/google/go-dap v0.9.1/go.mod h1:HAeyoSd2WIfTfg+0GRXcFrb+RnojAtGNh+k+XTIxJDE= github.com/google/go-dap v0.11.0 h1:SpAZJL41rOOvd85PuLCCLE1dteTQOyKNnn0H3DBHywo= github.com/google/go-dap v0.11.0/go.mod h1:HAeyoSd2WIfTfg+0GRXcFrb+RnojAtGNh+k+XTIxJDE= @@ -728,8 +733,8 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= -github.com/google/pprof v0.0.0-20240327155427-868f304927ed h1:n8QtJTrwsv3P7dNxPaMeNkMcxvUpqocsHLr8iDLGlQI= -github.com/google/pprof v0.0.0-20240327155427-868f304927ed/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240618054019-d3b898a103f8 h1:ASJ/LAqdCHOyMYI+dwNxn7Rd8FscNkMyTr1KZU1JI/M= +github.com/google/pprof v0.0.0-20240618054019-d3b898a103f8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -873,8 +878,8 @@ github.com/jdx/go-netrc v1.0.0 h1:QbLMLyCZGj0NA8glAhxUpf1zDg6cxnWgMBbjq40W0gQ= github.com/jdx/go-netrc v1.0.0/go.mod h1:Gh9eFQJnoTNIRHXl2j5bJXA1u84hQWJWgGh569zF3v8= github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/protoreflect v1.15.6 h1:WMYJbw2Wo+KOWwZFvgY0jMoVHM6i4XIvRs2RcBj5VmI= -github.com/jhump/protoreflect v1.15.6/go.mod h1:jCHoyYQIJnaabEYnbGwyo9hUqfyUMTbJw/tAut5t97E= +github.com/jhump/protoreflect v1.16.0 h1:54fZg+49widqXYQ0b+usAFHbMkBGR4PpXrsHc8+TBDg= +github.com/jhump/protoreflect v1.16.0/go.mod h1:oYPd7nPvcBw/5wlDfm/AVmU9zH9BgqGCI469pGxfj/8= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= @@ -931,8 +936,8 @@ github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7 github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1275,8 +1280,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= -github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= +github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= @@ -1363,8 +1368,8 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1522,8 +1527,8 @@ go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhs go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= -go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.starlark.net v0.0.0-20220816155156-cfacd8902214/go.mod h1:VZcBMdr3cT3PnBoWunTabuSEXwVAH+ZJ5zxfs3AdASk= go.starlark.net v0.0.0-20231101134539-556fd59b42f6 h1:+eC0F/k4aBLC4szgOcjd7bDTEnpxADJyWJE0yowgM3E= go.starlark.net v0.0.0-20231101134539-556fd59b42f6/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= @@ -1570,8 +1575,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1583,8 +1588,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= -golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= @@ -1617,8 +1622,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1674,8 +1679,8 @@ golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1794,8 +1799,8 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1806,8 +1811,8 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1820,8 +1825,8 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1900,10 +1905,10 @@ golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= -golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= -golang.org/x/vuln v1.0.4 h1:SP0mPeg2PmGCu03V+61EcQiOjmpri2XijexKdzv8Z1I= -golang.org/x/vuln v1.0.4/go.mod h1:NbJdUQhX8jY++FtuhrXs2Eyx0yePo9pF7nPlIjo9aaQ= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/vuln v1.0.1 h1:KUas02EjQK5LTuIx1OylBQdKKZ9jeugs+HiqO5HormU= +golang.org/x/vuln v1.0.1/go.mod h1:bb2hMwln/tqxg32BNY4CcxHWtHXuYa3SbIBmtsyjxtM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1971,10 +1976,10 @@ google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240325203815-454cdb8f5daa h1:Jt1XW5PaLXF1/ePZrznsh/aAUvI7Adfc3LY1dAKlzRs= -google.golang.org/genproto/googleapis/api v0.0.0-20240325203815-454cdb8f5daa/go.mod h1:K4kfzHtI0kqWA79gecJarFtDn/Mls+GxQcg3Zox91Ac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 h1:MuYw1wJzT+ZkybKfaOXKp5hJiZDn2iHaXRw0mRYdHSc= +google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4/go.mod h1:px9SlOOZBg1wM1zdnr8jEL4CNGUBZ+ZKYtNPApNQc4c= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1997,8 +2002,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -2013,8 +2018,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/ignite/cmd/chain.go b/ignite/cmd/chain.go index 2d15fde589..e5c5f95699 100644 --- a/ignite/cmd/chain.go +++ b/ignite/cmd/chain.go @@ -19,6 +19,7 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/goanalysis" "github.com/ignite/cli/v28/ignite/pkg/gomodulepath" "github.com/ignite/cli/v28/ignite/pkg/xast" + "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/services/chain" "github.com/ignite/cli/v28/ignite/services/doctor" ) @@ -200,7 +201,8 @@ func bufMigrationPreRunHandler(cmd *cobra.Command, session *cliui.Session, appPa } } - sm, err := chain.BoxBufFiles(appPath) + runner := xgenny.NewRunner(cmd.Context(), appPath) + sm, err := chain.BoxBufFiles(runner, appPath) if err != nil { return err } diff --git a/ignite/cmd/chain_serve.go b/ignite/cmd/chain_serve.go index 0eebc0a7d2..e6f39660c7 100644 --- a/ignite/cmd/chain_serve.go +++ b/ignite/cmd/chain_serve.go @@ -134,10 +134,7 @@ func chainServe(cmd *cobra.Command, session *cliui.Session) error { } // check if custom config is defined - config, err := cmd.Flags().GetString(flagConfig) - if err != nil { - return err - } + config, _ := cmd.Flags().GetString(flagConfig) if config != "" { chainOption = append(chainOption, chain.ConfigFile(config)) } @@ -156,47 +153,27 @@ func chainServe(cmd *cobra.Command, session *cliui.Session) error { // serve the chain var serveOptions []chain.ServeOption - forceUpdate, err := cmd.Flags().GetBool(flagForceReset) - if err != nil { - return err - } - + forceUpdate, _ := cmd.Flags().GetBool(flagForceReset) if forceUpdate { serveOptions = append(serveOptions, chain.ServeForceReset()) } - resetOnce, err := cmd.Flags().GetBool(flagResetOnce) - if err != nil { - return err - } - + resetOnce, _ := cmd.Flags().GetBool(flagResetOnce) if resetOnce { serveOptions = append(serveOptions, chain.ServeResetOnce()) } - quitOnFail, err := cmd.Flags().GetBool(flagQuitOnFail) - if err != nil { - return err - } - + quitOnFail, _ := cmd.Flags().GetBool(flagQuitOnFail) if quitOnFail { serveOptions = append(serveOptions, chain.QuitOnFail()) } - generateClients, err := cmd.Flags().GetBool(flagGenerateClients) - if err != nil { - return err - } - + generateClients, _ := cmd.Flags().GetBool(flagGenerateClients) if generateClients { serveOptions = append(serveOptions, chain.GenerateClients()) } - buildTags, err := cmd.Flags().GetStringSlice(flagBuildTags) - if err != nil { - return err - } - + buildTags, _ := cmd.Flags().GetStringSlice(flagBuildTags) if len(buildTags) > 0 { serveOptions = append(serveOptions, chain.BuildTags(buildTags...)) } diff --git a/ignite/cmd/generate_composables.go b/ignite/cmd/generate_composables.go index 840b9b29b5..649384d9d8 100644 --- a/ignite/cmd/generate_composables.go +++ b/ignite/cmd/generate_composables.go @@ -39,10 +39,7 @@ func generateComposablesHandler(cmd *cobra.Command, _ []string) error { return err } - output, err := cmd.Flags().GetString(flagOutput) - if err != nil { - return err - } + output, _ := cmd.Flags().GetString(flagOutput) var opts []chain.GenerateTarget if flagGetEnableProtoVendor(cmd) { diff --git a/ignite/cmd/generate_hooks.go b/ignite/cmd/generate_hooks.go index 84f570faef..b1506dcae0 100644 --- a/ignite/cmd/generate_hooks.go +++ b/ignite/cmd/generate_hooks.go @@ -39,10 +39,7 @@ func generateHooksHandler(cmd *cobra.Command, _ []string) error { return err } - output, err := cmd.Flags().GetString(flagOutput) - if err != nil { - return err - } + output, _ := cmd.Flags().GetString(flagOutput) var opts []chain.GenerateTarget if flagGetEnableProtoVendor(cmd) { diff --git a/ignite/cmd/generate_typescript_client.go b/ignite/cmd/generate_typescript_client.go index f2ae66a980..62434eca74 100644 --- a/ignite/cmd/generate_typescript_client.go +++ b/ignite/cmd/generate_typescript_client.go @@ -63,15 +63,8 @@ func generateTSClientHandler(cmd *cobra.Command, _ []string) error { return err } - output, err := cmd.Flags().GetString(flagOutput) - if err != nil { - return err - } - - useCache, err := cmd.Flags().GetBool(flagUseCache) - if err != nil { - return err - } + output, _ := cmd.Flags().GetString(flagOutput) + useCache, _ := cmd.Flags().GetBool(flagUseCache) var opts []chain.GenerateTarget if flagGetEnableProtoVendor(cmd) { diff --git a/ignite/cmd/scaffold.go b/ignite/cmd/scaffold.go index 61e1ffc465..47a3325d2e 100644 --- a/ignite/cmd/scaffold.go +++ b/ignite/cmd/scaffold.go @@ -11,8 +11,6 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/cosmosver" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/gomodulepath" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/pkg/xgit" "github.com/ignite/cli/v28/ignite/services/scaffolder" "github.com/ignite/cli/v28/ignite/version" @@ -207,7 +205,7 @@ func scaffoldType( session := cliui.New(cliui.StartSpinnerWithText(statusScaffolding)) defer session.End() - sc, err := scaffolder.New(appPath) + sc, err := scaffolder.New(cmd.Context(), appPath) if err != nil { return err } @@ -217,12 +215,21 @@ func scaffoldType( return err } - sm, err := sc.AddType(cmd.Context(), cacheStorage, typeName, placeholder.New(), kind, options...) + err = sc.AddType(cmd.Context(), typeName, kind, options...) if err != nil { return err } - modificationsStr, err := xgenny.SourceModificationToString(sm) + sm, err := sc.ApplyModifications() + if err != nil { + return err + } + + if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil { + return err + } + + modificationsStr, err := sm.String() if err != nil { return err } diff --git a/ignite/cmd/scaffold_band.go b/ignite/cmd/scaffold_band.go index b69b91bdf1..3dafb3797b 100644 --- a/ignite/cmd/scaffold_band.go +++ b/ignite/cmd/scaffold_band.go @@ -6,7 +6,6 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/cliui" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/services/scaffolder" ) @@ -68,22 +67,26 @@ func createBandchainHandler(cmd *cobra.Command, args []string) error { options = append(options, scaffolder.OracleWithSigner(signer)) //nolint: staticcheck } - sc, err := scaffolder.New(appPath) + sc, err := scaffolder.New(cmd.Context(), appPath) if err != nil { return err } //nolint: staticcheck - sm, err := sc.AddOracle(cmd.Context(), cacheStorage, placeholder.New(), module, oracle, options...) + err = sc.AddOracle(cmd.Context(), cacheStorage, placeholder.New(), module, oracle, options...) if err != nil { return err } - modificationsStr, err := xgenny.SourceModificationToString(sm) + modificationsStr, err := sc.ApplyModifications() if err != nil { return err } + if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil { + return err + } + session.Println(modificationsStr) session.Printf(tplScaffoldBandSuccess, oracle, module) diff --git a/ignite/cmd/scaffold_chain.go b/ignite/cmd/scaffold_chain.go index 8b6df9853e..8550623775 100644 --- a/ignite/cmd/scaffold_chain.go +++ b/ignite/cmd/scaffold_chain.go @@ -5,8 +5,9 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/cliui" "github.com/ignite/cli/v28/ignite/pkg/errors" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" "github.com/ignite/cli/v28/ignite/pkg/xfilepath" + "github.com/ignite/cli/v28/ignite/pkg/xgenny" + "github.com/ignite/cli/v28/ignite/pkg/xgit" "github.com/ignite/cli/v28/ignite/services/scaffolder" ) @@ -97,9 +98,10 @@ func scaffoldChainHandler(cmd *cobra.Command, args []string) error { defer session.End() var ( - name = args[0] - addressPrefix = getAddressPrefix(cmd) - appPath = flagGetPath(cmd) + name = args[0] + addressPrefix = getAddressPrefix(cmd) + appPath = flagGetPath(cmd) + noDefaultModule, _ = cmd.Flags().GetBool(flagNoDefaultModule) skipGit, _ = cmd.Flags().GetBool(flagSkipGit) minimal, _ = cmd.Flags().GetBool(flagMinimal) @@ -108,8 +110,10 @@ func scaffoldChainHandler(cmd *cobra.Command, args []string) error { skipProto, _ = cmd.Flags().GetBool(flagSkipProto) ) - if noDefaultModule && len(params) > 0 { - return errors.New("params flag is only supported if the default module is enabled") + if noDefaultModule { + if len(params) > 0 { + return errors.New("params flag is only supported if the default module is enabled") + } } cacheStorage, err := newCache(cmd) @@ -117,16 +121,14 @@ func scaffoldChainHandler(cmd *cobra.Command, args []string) error { return err } - appDir, err := scaffolder.Init( + runner := xgenny.NewRunner(cmd.Context(), appPath) + appDir, goModule, err := scaffolder.Init( cmd.Context(), - cacheStorage, - placeholder.New(), + runner, appPath, name, addressPrefix, noDefaultModule, - skipGit, - skipProto, minimal, isConsumer, params, @@ -140,5 +142,20 @@ func scaffoldChainHandler(cmd *cobra.Command, args []string) error { return err } + if _, err := runner.ApplyModifications(); err != nil { + return err + } + + if err := scaffolder.PostScaffold(cmd.Context(), cacheStorage, appDir, goModule, skipProto); err != nil { + return err + } + + if !skipGit { + // Initialize git repository and perform the first commit + if err := xgit.InitAndCommit(path); err != nil { + return err + } + } + return session.Printf(tplScaffoldChainSuccess, path) } diff --git a/ignite/cmd/scaffold_map.go b/ignite/cmd/scaffold_map.go index 6e78833804..1181bebaf9 100644 --- a/ignite/cmd/scaffold_map.go +++ b/ignite/cmd/scaffold_map.go @@ -6,9 +6,7 @@ import ( "github.com/ignite/cli/v28/ignite/services/scaffolder" ) -const ( - FlagIndexes = "index" -) +const FlagIndexName = "index" // NewScaffoldMap returns a new command to scaffold a map. func NewScaffoldMap() *cobra.Command { @@ -67,16 +65,12 @@ For detailed type information use ignite scaffold type --help c.Flags().AddFlagSet(flagSetYes()) c.Flags().AddFlagSet(flagSetScaffoldType()) - c.Flags().StringSlice(FlagIndexes, []string{"index"}, "fields that index the value") + c.Flags().String(FlagIndexName, "index", "field that index the value") return c } func scaffoldMapHandler(cmd *cobra.Command, args []string) error { - indexes, err := cmd.Flags().GetStringSlice(FlagIndexes) - if err != nil { - return err - } - - return scaffoldType(cmd, args, scaffolder.MapType(indexes...)) + index, _ := cmd.Flags().GetString(FlagIndexName) + return scaffoldType(cmd, args, scaffolder.MapType(index)) } diff --git a/ignite/cmd/scaffold_message.go b/ignite/cmd/scaffold_message.go index 6fa0423984..af62d193d7 100644 --- a/ignite/cmd/scaffold_message.go +++ b/ignite/cmd/scaffold_message.go @@ -4,8 +4,6 @@ import ( "github.com/spf13/cobra" "github.com/ignite/cli/v28/ignite/pkg/cliui" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/services/scaffolder" ) @@ -115,17 +113,26 @@ func messageHandler(cmd *cobra.Command, args []string) error { options = append(options, scaffolder.WithoutSimulation()) } - sc, err := scaffolder.New(appPath) + sc, err := scaffolder.New(cmd.Context(), appPath) if err != nil { return err } - sm, err := sc.AddMessage(cmd.Context(), cacheStorage, placeholder.New(), module, args[0], args[1:], resFields, options...) + err = sc.AddMessage(cmd.Context(), module, args[0], args[1:], resFields, options...) if err != nil { return err } - modificationsStr, err := xgenny.SourceModificationToString(sm) + sm, err := sc.ApplyModifications() + if err != nil { + return err + } + + if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil { + return err + } + + modificationsStr, err := sm.String() if err != nil { return err } diff --git a/ignite/cmd/scaffold_module.go b/ignite/cmd/scaffold_module.go index c05ee991e7..3f42ceb497 100644 --- a/ignite/cmd/scaffold_module.go +++ b/ignite/cmd/scaffold_module.go @@ -10,9 +10,7 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/cliui" "github.com/ignite/cli/v28/ignite/pkg/errors" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" "github.com/ignite/cli/v28/ignite/pkg/validation" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/services/scaffolder" modulecreate "github.com/ignite/cli/v28/ignite/templates/module/create" ) @@ -28,14 +26,6 @@ const ( flagParams = "params" flagIBCOrdering = "ordering" flagRequireRegistration = "require-registration" - - govDependencyWarning = `⚠️ If your app has been scaffolded with Ignite CLI 0.16.x or below -Please make sure that your module keeper definition is defined after gov module keeper definition in app/app.go: - -app.GovKeeper = ... -... -[your module keeper definition] -` ) // NewScaffoldModule returns the command to scaffold a Cosmos SDK module. @@ -129,24 +119,10 @@ func scaffoldModuleHandler(cmd *cobra.Command, args []string) error { session := cliui.New(cliui.StartSpinnerWithText(statusScaffolding)) defer session.End() - ibcModule, err := cmd.Flags().GetBool(flagIBC) - if err != nil { - return err - } - - ibcOrdering, err := cmd.Flags().GetString(flagIBCOrdering) - if err != nil { - return err - } - requireRegistration, err := cmd.Flags().GetBool(flagRequireRegistration) - if err != nil { - return err - } - - params, err := cmd.Flags().GetStringSlice(flagParams) - if err != nil { - return err - } + ibcModule, _ := cmd.Flags().GetBool(flagIBC) + ibcOrdering, _ := cmd.Flags().GetString(flagIBCOrdering) + requireRegistration, _ := cmd.Flags().GetBool(flagRequireRegistration) + params, _ := cmd.Flags().GetStringSlice(flagParams) cacheStorage, err := newCache(cmd) if err != nil { @@ -163,10 +139,7 @@ func scaffoldModuleHandler(cmd *cobra.Command, args []string) error { } // Get module dependencies - dependencies, err := cmd.Flags().GetStringSlice(flagDep) - if err != nil { - return err - } + dependencies, _ := cmd.Flags().GetStringSlice(flagDep) if len(dependencies) > 0 { var deps []modulecreate.Dependency @@ -190,13 +163,12 @@ func scaffoldModuleHandler(cmd *cobra.Command, args []string) error { var msg bytes.Buffer fmt.Fprintf(&msg, "\n🎉 Module created %s.\n\n", name) - sc, err := scaffolder.New(appPath) + sc, err := scaffolder.New(cmd.Context(), appPath) if err != nil { return err } - sm, err := sc.CreateModule(cmd.Context(), cacheStorage, placeholder.New(), name, options...) - if err != nil { + if err := sc.CreateModule(name, options...); err != nil { var validationErr validation.Error if !requireRegistration && errors.As(err, &validationErr) { fmt.Fprintf(&msg, "Can't register module '%s'.\n", name) @@ -204,25 +176,23 @@ func scaffoldModuleHandler(cmd *cobra.Command, args []string) error { } else { return err } - } else { - modificationsStr, err := xgenny.SourceModificationToString(sm) - if err != nil { - return err - } + } - session.Println(modificationsStr) + sm, err := sc.ApplyModifications() + if err != nil { + return err } - // in previously scaffolded apps gov keeper is defined below the scaffolded module keeper definition - // therefore we must warn the user to manually move the definition if it's the case - // https://github.com/ignite/cli/issues/818#issuecomment-865736052 - for _, name := range dependencies { - if name == "Gov" { - session.Print(govDependencyWarning) + if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil { + return err + } - break - } + modificationsStr, err := sm.String() + if err != nil { + return err } + session.Println(modificationsStr) + return session.Print(msg.String()) } diff --git a/ignite/cmd/scaffold_package.go b/ignite/cmd/scaffold_packet.go similarity index 86% rename from ignite/cmd/scaffold_package.go rename to ignite/cmd/scaffold_packet.go index f8e5788462..f26842694a 100644 --- a/ignite/cmd/scaffold_package.go +++ b/ignite/cmd/scaffold_packet.go @@ -5,8 +5,6 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/cliui" "github.com/ignite/cli/v28/ignite/pkg/errors" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/services/scaffolder" ) @@ -78,17 +76,26 @@ func createPacketHandler(cmd *cobra.Command, args []string) error { options = append(options, scaffolder.PacketWithSigner(signer)) } - sc, err := scaffolder.New(appPath) + sc, err := scaffolder.New(cmd.Context(), appPath) if err != nil { return err } - sm, err := sc.AddPacket(cmd.Context(), cacheStorage, placeholder.New(), module, packet, packetFields, ackFields, options...) + err = sc.AddPacket(cmd.Context(), module, packet, packetFields, ackFields, options...) if err != nil { return err } - modificationsStr, err := xgenny.SourceModificationToString(sm) + sm, err := sc.ApplyModifications() + if err != nil { + return err + } + + if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil { + return err + } + + modificationsStr, err := sm.String() if err != nil { return err } diff --git a/ignite/cmd/scaffold_query.go b/ignite/cmd/scaffold_query.go index e97deff3ae..98311d4d85 100644 --- a/ignite/cmd/scaffold_query.go +++ b/ignite/cmd/scaffold_query.go @@ -6,8 +6,6 @@ import ( "github.com/spf13/cobra" "github.com/ignite/cli/v28/ignite/pkg/cliui" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/services/scaffolder" ) @@ -78,17 +76,26 @@ func queryHandler(cmd *cobra.Command, args []string) error { return err } - sc, err := scaffolder.New(appPath) + sc, err := scaffolder.New(cmd.Context(), appPath) if err != nil { return err } - sm, err := sc.AddQuery(cmd.Context(), cacheStorage, placeholder.New(), module, args[0], desc, args[1:], resFields, paginated) + err = sc.AddQuery(cmd.Context(), module, args[0], desc, args[1:], resFields, paginated) if err != nil { return err } - modificationsStr, err := xgenny.SourceModificationToString(sm) + sm, err := sc.ApplyModifications() + if err != nil { + return err + } + + if err := sc.PostScaffold(cmd.Context(), cacheStorage, false); err != nil { + return err + } + + modificationsStr, err := sm.String() if err != nil { return err } diff --git a/ignite/pkg/cosmosanalysis/app/app.go b/ignite/pkg/cosmosanalysis/app/app.go index 3501b4f327..444c0a662e 100644 --- a/ignite/pkg/cosmosanalysis/app/app.go +++ b/ignite/pkg/cosmosanalysis/app/app.go @@ -237,7 +237,6 @@ func discoverRuntimeAppModules(chainRoot string) ([]string, error) { } return nil }) - if err != nil { return nil, err } diff --git a/ignite/pkg/cosmosanalysis/cosmosanalysis.go b/ignite/pkg/cosmosanalysis/cosmosanalysis.go index 868d5aa63a..796ba0aef5 100644 --- a/ignite/pkg/cosmosanalysis/cosmosanalysis.go +++ b/ignite/pkg/cosmosanalysis/cosmosanalysis.go @@ -53,7 +53,6 @@ func DeepFindImplementation(modulePath string, interfaceList []string) (found [] found = append(found, currFound...) return nil }) - if err != nil { return nil, err } @@ -267,7 +266,6 @@ func FindAppFilePath(chainRoot string) (path string, err error) { return nil }) - if err != nil { return "", err } diff --git a/ignite/pkg/cosmosgen/generate_vuex.go b/ignite/pkg/cosmosgen/generate_vuex.go index bcb29f34db..a9c9f5d7db 100644 --- a/ignite/pkg/cosmosgen/generate_vuex.go +++ b/ignite/pkg/cosmosgen/generate_vuex.go @@ -69,7 +69,6 @@ func (g *generator) updateVueDependencies() error { tsClientName: fmt.Sprintf("file:%s", tsClientVueRelPath), }, }) - if err != nil { return errors.Errorf("failed to link ts-client dependency to the Vue app: %w", err) } @@ -136,7 +135,6 @@ func (g *generator) updateVuexDependencies() error { tsClientName: fmt.Sprintf("file:%s", tsClientVuexRelPath), }, }) - if err != nil { return errors.Errorf("failed to link ts-client dependency to the Vuex stores: %w", err) } diff --git a/ignite/pkg/protoanalysis/protoutil/helpers.go b/ignite/pkg/protoanalysis/protoutil/helpers.go index 8279098914..359af7eca5 100644 --- a/ignite/pkg/protoanalysis/protoutil/helpers.go +++ b/ignite/pkg/protoanalysis/protoutil/helpers.go @@ -42,7 +42,7 @@ func AddAfterPackage(f *proto.Proto, v proto.Visitee) error { if inserted { return nil } - return errors.New("could not find package statement") + return errors.New("could not find proto package statement") } // Fallback logic, try and use import after a package and if that fails @@ -118,7 +118,7 @@ func AddImports(f *proto.Proto, fallback bool, imports ...*proto.Import) (err er // recurse with the rest. (might be empty) return AddImports(f, false, imports[1:]...) } - return errors.New("unable to add import, no import statements found") + return errors.New("unable to add proto import, no import statements found") } // NextUniqueID goes through the fields of the given Message and returns @@ -179,11 +179,12 @@ func GetMessageByName(f *proto.Proto, name string) (node *proto.Message, err err return ok }, // return immediately iff found. - func(c *Cursor) bool { return !found }) + func(*Cursor) bool { return !found }) + if found { return } - return nil, errors.Errorf("message %s not found", name) + return nil, errors.Errorf("proto message %s not found", name) } // GetServiceByName returns the service with the given name or nil if not found. @@ -192,8 +193,12 @@ func GetMessageByName(f *proto.Proto, name string) (node *proto.Message, err err // f, _ := ParseProtoPath("foo.proto") // s := GetServiceByName(f, "FooSrv") // s.Name // "FooSrv" -func GetServiceByName(f *proto.Proto, name string) (node *proto.Service, err error) { - node, err = nil, nil +func GetServiceByName(f *proto.Proto, name string) (*proto.Service, error) { + var ( + node *proto.Service + err error + ) + found := false Apply(f, func(c *Cursor) bool { @@ -209,12 +214,15 @@ func GetServiceByName(f *proto.Proto, name string) (node *proto.Service, err err _, ok := c.Node().(*proto.Proto) return ok }, + // return immediately iff found. - func(c *Cursor) bool { return !found }) + func(*Cursor) bool { return !found }, + ) if found { - return + return node, err } - return nil, errors.Errorf("service %s not found", name) + + return nil, errors.Errorf("proto service %s not found", name) } // GetImportByPath returns the import with the given path or nil if not found. @@ -223,9 +231,13 @@ func GetServiceByName(f *proto.Proto, name string) (node *proto.Service, err err // f, _ := ParseProtoPath("foo.proto") // s := GetImportByPath(f, "other.proto") // s.FileName // "other.proto" -func GetImportByPath(f *proto.Proto, path string) (node *proto.Import, err error) { +func GetImportByPath(f *proto.Proto, path string) (*proto.Import, error) { + var ( + node *proto.Import + err error + ) + found := false - node, err = nil, nil Apply(f, func(c *Cursor) bool { if i, ok := c.Node().(*proto.Import); ok { @@ -240,12 +252,54 @@ func GetImportByPath(f *proto.Proto, path string) (node *proto.Import, err error _, ok := c.Node().(*proto.Proto) return ok }, + // return immediately iff found. - func(c *Cursor) bool { return !found }) + func(*Cursor) bool { return !found }, + ) if found { - return + return node, err } - return nil, errors.Errorf("import %s not found", path) + + return nil, errors.Errorf("proto import %s not found", path) +} + +// GetFieldByName returns the field with the given name or nil if not found within a message. +// Only traverses in proto.Message since they are the only nodes that contain fields: +// +// f, _ := ParseProtoPath("foo.proto") +// m := GetMessageByName(f, "Foo") +// f := GetFieldByName(m, "Bar") +// f.Name // "Bar" +func GetFieldByName(f *proto.Message, name string) (*proto.NormalField, error) { + var ( + node *proto.NormalField + err error + ) + + found := false + Apply(f, + func(c *Cursor) bool { + if m, ok := c.Node().(*proto.NormalField); ok { + if m.Name == name { + found = true + node = m + return false + } + // keep looking if we're in a Message + return true + } + // keep looking while we're in a proto.Message. + _, ok := c.Node().(*proto.Message) + return ok + }, + // return immediately iff found. + func(*Cursor) bool { return !found }, + ) + if found { + return node, err + } + + return nil, errors.Errorf("proto field %s not found", name) } // HasMessage returns true if the given message is found in the given file. @@ -277,3 +331,13 @@ func HasImport(f *proto.Proto, path string) bool { _, err := GetImportByPath(f, path) return err == nil } + +func HasField(f *proto.Proto, messageName, field string) bool { + msg, err := GetMessageByName(f, messageName) + if err != nil { + return false + } + + _, err = GetFieldByName(msg, field) + return err == nil +} diff --git a/ignite/pkg/repoversion/repoversion.go b/ignite/pkg/repoversion/repoversion.go index 4428a5d41b..f2f3e560ec 100644 --- a/ignite/pkg/repoversion/repoversion.go +++ b/ignite/pkg/repoversion/repoversion.go @@ -50,7 +50,6 @@ func Determine(path string) (v Version, err error) { return nil }) - if err != nil { return Version{}, err } @@ -94,7 +93,6 @@ func Determine(path string) (v Version, err error) { return nil }) - if err != nil { return Version{}, err } diff --git a/ignite/pkg/xgenny/run.go b/ignite/pkg/xgenny/run.go deleted file mode 100644 index 00133d6024..0000000000 --- a/ignite/pkg/xgenny/run.go +++ /dev/null @@ -1,104 +0,0 @@ -package xgenny - -import ( - "context" - "os" - "strings" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/logger" - "github.com/gobuffalo/packd" - - "github.com/ignite/cli/v28/ignite/pkg/errors" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/validation" -) - -var _ validation.Error = (*dryRunError)(nil) - -type dryRunError struct { - error -} - -// ValidationInfo returns validation info. -func (d *dryRunError) ValidationInfo() string { - return d.Error() -} - -// DryRunner is a genny DryRunner with a logger. -func DryRunner(ctx context.Context) *genny.Runner { - runner := genny.DryRunner(ctx) - runner.Logger = logger.New(genny.DefaultLogLvl) - return runner -} - -// RunWithValidation checks the generators with a dry run and then execute the wet runner to the generators. -func RunWithValidation( - tracer *placeholder.Tracer, - gens ...*genny.Generator, -) (sm SourceModification, err error) { - // run executes the provided runner with the provided generator - run := func(runner *genny.Runner, gen *genny.Generator) error { - err := runner.With(gen) - if err != nil { - return err - } - return runner.Run() - } - for _, gen := range gens { - // check with a dry runner the generators - dryRunner := DryRunner(context.Background()) - if err := run(dryRunner, gen); err != nil { - if errors.Is(err, os.ErrNotExist) { - return sm, &dryRunError{err} - } - return sm, err - } - if err := tracer.Err(); err != nil { - return sm, err - } - - // fetch the source modification - sm = NewSourceModification() - for _, file := range dryRunner.Results().Files { - fileName := file.Name() - _, err := os.Stat(fileName) - - //nolint:gocritic - if os.IsNotExist(err) { - // if the file doesn't exist in the source, it means it has been created by the runner - sm.AppendCreatedFiles(fileName) - } else if err != nil { - return sm, err - } else { - // the file has been modified by the runner - sm.AppendModifiedFiles(fileName) - } - } - - // execute the modification with a wet runner - if err := run(genny.WetRunner(context.Background()), gen); err != nil { - return sm, err - } - } - return sm, nil -} - -// Box will mount each file in the Box and wrap it, already existing files are ignored. -func Box(g *genny.Generator, box packd.Walker) error { - return box.Walk(func(path string, bf packd.File) error { - f := genny.NewFile(path, bf) - f, err := g.Transform(f) - if err != nil { - return err - } - filePath := strings.TrimSuffix(f.Name(), ".plush") - _, err = os.Stat(filePath) - if os.IsNotExist(err) { - // path doesn't exist. move on. - g.File(f) - return nil - } - return err - }) -} diff --git a/ignite/pkg/xgenny/runner.go b/ignite/pkg/xgenny/runner.go new file mode 100644 index 0000000000..40937b9481 --- /dev/null +++ b/ignite/pkg/xgenny/runner.go @@ -0,0 +1,144 @@ +package xgenny + +import ( + "context" + "io" + "os" + "path/filepath" + + "github.com/gobuffalo/genny/v2" + + "github.com/ignite/cli/v28/ignite/pkg/placeholder" + "github.com/ignite/cli/v28/ignite/pkg/randstr" + "github.com/ignite/cli/v28/ignite/pkg/xos" +) + +type Runner struct { + *genny.Runner + ctx context.Context + tracer *placeholder.Tracer + results []genny.File + tmpPath string +} + +// NewRunner is a xgenny Runner with a logger. +func NewRunner(ctx context.Context, appPath string) *Runner { + var ( + runner = genny.WetRunner(ctx) + tmpPath = filepath.Join(os.TempDir(), randstr.Runes(5)) + ) + runner.Root = appPath + r := &Runner{ + ctx: ctx, + Runner: runner, + tmpPath: tmpPath, + tracer: placeholder.New(), + results: make([]genny.File, 0), + } + runner.FileFn = func(f genny.File) (genny.File, error) { + return wetFileFn(r, f) + } + return r +} + +func (r *Runner) Tracer() *placeholder.Tracer { + return r.tracer +} + +// ApplyModifications copy all modifications from the temporary folder to the target path. +func (r *Runner) ApplyModifications() (SourceModification, error) { + // fetch the source modification + sm := NewSourceModification() + for _, file := range r.results { + fileName := file.Name() + _, err := os.Stat(fileName) + switch { + case os.IsNotExist(err): + sm.AppendCreatedFiles(fileName) // if the file doesn't exist in the source, it means it has been created by the runner + case err != nil: + return sm, err + default: + sm.AppendModifiedFiles(fileName) // the file has been modified by the runner + } + } + r.results = make([]genny.File, 0) + + if _, err := os.Stat(r.tmpPath); os.IsNotExist(err) { + return sm, nil + } + + // Create the target path and copy the content from the temporary folder. + if err := os.MkdirAll(r.Root, os.ModePerm); err != nil { + return sm, nil + } + err := xos.CopyFolder(r.tmpPath, r.Root) + if err != nil { + return sm, nil + } + + return sm, os.RemoveAll(r.tmpPath) +} + +// RunAndApply run the generators and apply the modifications to the target path. +func (r *Runner) RunAndApply(gens ...*genny.Generator) (SourceModification, error) { + if err := r.Run(gens...); err != nil { + return SourceModification{}, err + } + return r.ApplyModifications() +} + +// Run all generators into a temp folder for we can apply the modifications later. +func (r *Runner) Run(gens ...*genny.Generator) error { + // execute the modification with a wet runner + for _, gen := range gens { + if err := r.With(gen); err != nil { + return err + } + if err := r.Runner.Run(); err != nil { + return err + } + } + r.results = append(r.results, r.Results().Files...) + return r.tracer.Err() +} + +func wetFileFn(runner *Runner, f genny.File) (genny.File, error) { + if d, ok := f.(genny.Dir); ok { + if err := os.MkdirAll(d.Name(), d.Perm); err != nil { + return f, err + } + return d, nil + } + + var err error + if !filepath.IsAbs(runner.Root) { + runner.Root, err = filepath.Abs(runner.Root) + if err != nil { + return f, err + } + } + + name := f.Name() + if !filepath.IsAbs(name) { + name = filepath.Join(runner.Root, name) + } + relPath, err := filepath.Rel(runner.Root, name) + if err != nil { + return f, err + } + + dstPath := filepath.Join(runner.tmpPath, relPath) + dir := filepath.Dir(dstPath) + if err := os.MkdirAll(dir, 0o755); err != nil { + return f, err + } + ff, err := os.Create(dstPath) + if err != nil { + return f, err + } + defer ff.Close() + if _, err := io.Copy(ff, f); err != nil { + return f, err + } + return f, nil +} diff --git a/ignite/pkg/xgenny/sourcemodification.go b/ignite/pkg/xgenny/sourcemodification.go index e48a12f3d5..769dc28e09 100644 --- a/ignite/pkg/xgenny/sourcemodification.go +++ b/ignite/pkg/xgenny/sourcemodification.go @@ -73,9 +73,10 @@ func (sm *SourceModification) Merge(newSm SourceModification) { sm.AppendCreatedFiles(newSm.CreatedFiles()...) } -func SourceModificationToString(sm SourceModification) (string, error) { +// String convert to string value. +func (sm *SourceModification) String() (string, error) { // get file names and add prefix - var files []string + files := make([]string, 0) for _, modified := range sm.ModifiedFiles() { // get the relative app path from the current directory relativePath, err := xfilepath.RelativePath(modified) diff --git a/ignite/pkg/xgenny/xgenny.go b/ignite/pkg/xgenny/walker.go similarity index 78% rename from ignite/pkg/xgenny/xgenny.go rename to ignite/pkg/xgenny/walker.go index 7f4d36cf95..36379c54e2 100644 --- a/ignite/pkg/xgenny/xgenny.go +++ b/ignite/pkg/xgenny/walker.go @@ -3,13 +3,13 @@ package xgenny import ( "bytes" "embed" + "os" "path/filepath" "strings" "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/plush/v4" - "github.com/gobuffalo/packd" + "github.com/gobuffalo/plush/v4" "github.com/ignite/cli/v28/ignite/pkg/errors" ) @@ -69,6 +69,25 @@ func (w Walker) walkDir(wl packd.WalkFunc, path string) error { return nil } +// Box will mount each file in the Box and wrap it, already existing files are ignored. +func Box(g *genny.Generator, box packd.Walker) error { + return box.Walk(func(path string, bf packd.File) error { + f := genny.NewFile(path, bf) + f, err := g.Transform(f) + if err != nil { + return err + } + filePath := strings.TrimSuffix(f.Name(), ".plush") + _, err = os.Stat(filePath) + if os.IsNotExist(err) { + // Path doesn't exist. move on. + g.File(f) + return nil + } + return err + }) +} + // Transformer will plush-ify any file that has a ".plush" extension. func Transformer(ctx *plush.Context) genny.Transformer { t := genny.NewTransformer(".plush", func(f genny.File) (genny.File, error) { diff --git a/ignite/pkg/xgenny/xgenny_test.go b/ignite/pkg/xgenny/walker_test.go similarity index 100% rename from ignite/pkg/xgenny/xgenny_test.go rename to ignite/pkg/xgenny/walker_test.go diff --git a/ignite/services/chain/init.go b/ignite/services/chain/init.go index c681acc645..067acded3d 100644 --- a/ignite/services/chain/init.go +++ b/ignite/services/chain/init.go @@ -9,7 +9,7 @@ import ( "github.com/imdario/mergo" chainconfig "github.com/ignite/cli/v28/ignite/config/chain" - "github.com/ignite/cli/v28/ignite/internal/plugin" + plugininternal "github.com/ignite/cli/v28/ignite/internal/plugin" chaincmdrunner "github.com/ignite/cli/v28/ignite/pkg/chaincmd/runner" "github.com/ignite/cli/v28/ignite/pkg/cliui/view/accountview" "github.com/ignite/cli/v28/ignite/pkg/confile" diff --git a/ignite/services/chain/proto.go b/ignite/services/chain/proto.go index e82ee3b4bb..afd1c388fa 100644 --- a/ignite/services/chain/proto.go +++ b/ignite/services/chain/proto.go @@ -3,7 +3,6 @@ package chain import ( "path/filepath" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/pkg/xos" "github.com/ignite/cli/v28/ignite/templates/app" @@ -28,10 +27,10 @@ func CheckBufFiles(appPath string) bool { return true } -func BoxBufFiles(appPath string) (xgenny.SourceModification, error) { +func BoxBufFiles(runner *xgenny.Runner, appPath string) (xgenny.SourceModification, error) { g, err := app.NewBufGenerator(appPath) if err != nil { return xgenny.SourceModification{}, err } - return xgenny.RunWithValidation(placeholder.New(), g) + return runner.RunAndApply(g) } diff --git a/ignite/services/doctor/doctor.go b/ignite/services/doctor/doctor.go index 1cd8e64217..4e7051fdde 100644 --- a/ignite/services/doctor/doctor.go +++ b/ignite/services/doctor/doctor.go @@ -7,8 +7,6 @@ import ( "os" "path" - "github.com/gobuffalo/genny/v2" - chainconfig "github.com/ignite/cli/v28/ignite/config/chain" "github.com/ignite/cli/v28/ignite/pkg/cliui/colors" "github.com/ignite/cli/v28/ignite/pkg/cliui/icons" @@ -18,6 +16,7 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/goanalysis" "github.com/ignite/cli/v28/ignite/pkg/gomodulepath" "github.com/ignite/cli/v28/ignite/pkg/xast" + "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/app" ) @@ -161,7 +160,12 @@ func (d *Doctor) FixDependencyTools(ctx context.Context) error { } func (d Doctor) createToolsFile(ctx context.Context, toolsFilename string) error { - pathInfo, err := gomodulepath.ParseAt(".") + absPath, err := os.Getwd() + if err != nil { + return err + } + + pathInfo, err := gomodulepath.ParseAt(absPath) if err != nil { return err } @@ -176,12 +180,8 @@ func (d Doctor) createToolsFile(ctx context.Context, toolsFilename string) error return err } - runner := genny.WetRunner(ctx) - if err := runner.With(g); err != nil { - return err - } - - if err := runner.Run(); err != nil { + runner := xgenny.NewRunner(ctx, absPath) + if _, err := runner.RunAndApply(g); err != nil { return err } diff --git a/ignite/services/plugin/scaffold.go b/ignite/services/plugin/scaffold.go index 775272bdc5..e828e6ac92 100644 --- a/ignite/services/plugin/scaffold.go +++ b/ignite/services/plugin/scaffold.go @@ -51,14 +51,9 @@ func Scaffold(ctx context.Context, dir, appName string, sharedHost bool) (string pctx.Set("SharedHost", sharedHost) g.Transformer(xgenny.Transformer(pctx)) - r := genny.WetRunner(ctx) - err := r.With(g) - if err != nil { - return "", errors.WithStack(err) - } - - if err := r.Run(); err != nil { - return "", errors.WithStack(err) + r := xgenny.NewRunner(ctx, finalDir) + if _, err := r.RunAndApply(g); err != nil { + return "", err } if err := gocmd.ModTidy(ctx, finalDir); err != nil { diff --git a/ignite/services/scaffolder/init.go b/ignite/services/scaffolder/init.go index 096917512d..cfe59716af 100644 --- a/ignite/services/scaffolder/init.go +++ b/ignite/services/scaffolder/init.go @@ -6,13 +6,9 @@ import ( "path/filepath" "strings" - "github.com/gobuffalo/genny/v2" - - "github.com/ignite/cli/v28/ignite/pkg/cache" "github.com/ignite/cli/v28/ignite/pkg/cosmosgen" "github.com/ignite/cli/v28/ignite/pkg/gomodulepath" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgit" + "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/app" "github.com/ignite/cli/v28/ignite/templates/field" modulecreate "github.com/ignite/cli/v28/ignite/templates/module/create" @@ -22,15 +18,14 @@ import ( // Init initializes a new app with name and given options. func Init( ctx context.Context, - cacheStorage cache.Storage, - tracer *placeholder.Tracer, + runner *xgenny.Runner, root, name, addressPrefix string, - noDefaultModule, skipGit, skipProto, minimal, isConsumerChain bool, + noDefaultModule, minimal, isConsumerChain bool, params []string, -) (path string, err error) { +) (string, string, error) { pathInfo, err := gomodulepath.Parse(name) if err != nil { - return "", err + return "", "", err } // Create a new folder named as the blockchain when a custom path is not specified @@ -40,15 +35,17 @@ func Init( } if root, err = filepath.Abs(root); err != nil { - return "", err + return "", "", err } - path = filepath.Join(root, appFolder) - + var ( + path = filepath.Join(root, appFolder) + gomodule = pathInfo.RawPath + ) // create the project - if err := generate( + _, err = generate( ctx, - tracer, + runner, pathInfo, addressPrefix, path, @@ -56,43 +53,29 @@ func Init( minimal, isConsumerChain, params, - ); err != nil { - return "", err - } - - if err = finish(ctx, cacheStorage, path, pathInfo.RawPath, skipProto); err != nil { - return "", err - } - - if !skipGit { - // Initialize git repository and perform the first commit - if err := xgit.InitAndCommit(path); err != nil { - return "", err - } - } - - return path, nil + ) + return path, gomodule, err } //nolint:interfacer func generate( ctx context.Context, - tracer *placeholder.Tracer, + runner *xgenny.Runner, pathInfo gomodulepath.Path, addressPrefix, absRoot string, noDefaultModule, minimal, isConsumerChain bool, params []string, -) error { +) (xgenny.SourceModification, error) { // Parse params with the associated type paramsFields, err := field.ParseFields(params, checkForbiddenTypeIndex) if err != nil { - return err + return xgenny.SourceModification{}, err } githubPath := gomodulepath.ExtractAppPath(pathInfo.RawPath) if !strings.Contains(githubPath, "/") { - // A username must be added when the app module path has a single element + // A username must be added when the app module appPath has a single element githubPath = fmt.Sprintf("username/%s", githubPath) } @@ -108,29 +91,24 @@ func generate( IsConsumerChain: isConsumerChain, }) if err != nil { - return err + return xgenny.SourceModification{}, err } // Create the 'testutil' package with the test helpers if err := testutil.Register(g, absRoot); err != nil { - return err + return xgenny.SourceModification{}, err } - run := func(runner *genny.Runner, gen *genny.Generator) error { - if err := runner.With(gen); err != nil { - return err - } - runner.Root = absRoot - return runner.Run() - } - if err := run(genny.WetRunner(ctx), g); err != nil { - return err + // generate module template + runner.Root = absRoot + smc, err := runner.RunAndApply(g) + if err != nil { + return smc, err } if err := cosmosgen.InstallDepTools(ctx, absRoot); err != nil { - return err + return smc, err } - // generate module template if !noDefaultModule { opts := &modulecreate.CreateOptions{ ModuleName: pathInfo.Package, // App name @@ -142,21 +120,21 @@ func generate( } // Check if the module name is valid if err := checkModuleName(opts.AppPath, opts.ModuleName); err != nil { - return err + return smc, err } + g, err = modulecreate.NewGenerator(opts) if err != nil { - return err - } - if err := run(genny.WetRunner(ctx), g); err != nil { - return err - } - g = modulecreate.NewAppModify(tracer, opts) - if err := run(genny.WetRunner(ctx), g); err != nil { - return err + return smc, err } + // generate module template + smm, err := runner.RunAndApply(g, modulecreate.NewAppModify(runner.Tracer(), opts)) + if err != nil { + return smc, err + } + smc.Merge(smm) } - return nil + return smc, err } diff --git a/ignite/services/scaffolder/message.go b/ignite/services/scaffolder/message.go index 3d49028662..830c867f1b 100644 --- a/ignite/services/scaffolder/message.go +++ b/ignite/services/scaffolder/message.go @@ -6,11 +6,8 @@ import ( "github.com/gobuffalo/genny/v2" - "github.com/ignite/cli/v28/ignite/pkg/cache" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/multiformatname" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/field" "github.com/ignite/cli/v28/ignite/templates/field/datatype" "github.com/ignite/cli/v28/ignite/templates/message" @@ -59,14 +56,12 @@ func WithoutSimulation() MessageOption { // AddMessage adds a new message to scaffolded app. func (s Scaffolder) AddMessage( ctx context.Context, - cacheStorage cache.Storage, - tracer *placeholder.Tracer, moduleName, msgName string, fields, resFields []string, options ...MessageOption, -) (sm xgenny.SourceModification, err error) { +) error { // Create the options scaffoldingOpts := newMessageOptions(msgName) for _, apply := range options { @@ -79,40 +74,40 @@ func (s Scaffolder) AddMessage( } mfName, err := multiformatname.NewName(moduleName, multiformatname.NoNumber) if err != nil { - return sm, err + return err } moduleName = mfName.LowerCase name, err := multiformatname.NewName(msgName) if err != nil { - return sm, err + return err } if err := checkComponentValidity(s.path, moduleName, name, false); err != nil { - return sm, err + return err } // Check and parse provided fields if err := checkCustomTypes(ctx, s.path, s.modpath.Package, moduleName, fields); err != nil { - return sm, err + return err } parsedMsgFields, err := field.ParseFields(fields, checkForbiddenMessageField, scaffoldingOpts.signer) if err != nil { - return sm, err + return err } // Check and parse provided response fields if err := checkCustomTypes(ctx, s.path, s.modpath.Package, moduleName, resFields); err != nil { - return sm, err + return err } parsedResFields, err := field.ParseFields(resFields, checkGoReservedWord, scaffoldingOpts.signer) if err != nil { - return sm, err + return err } mfSigner, err := multiformatname.NewName(scaffoldingOpts.signer) if err != nil { - return sm, err + return err } var ( @@ -135,8 +130,7 @@ func (s Scaffolder) AddMessage( var gens []*genny.Generator gens, err = supportMsgServer( gens, - tracer, - s.path, + s.Tracer(), &modulecreate.MsgServerOptions{ ModuleName: opts.ModuleName, ModulePath: opts.ModulePath, @@ -145,20 +139,17 @@ func (s Scaffolder) AddMessage( }, ) if err != nil { - return sm, err + return err } // Scaffold - g, err = message.NewGenerator(tracer, opts) + g, err = message.NewGenerator(s.Tracer(), opts) if err != nil { - return sm, err + return err } gens = append(gens, g) - sm, err = xgenny.RunWithValidation(tracer, gens...) - if err != nil { - return sm, err - } - return sm, finish(ctx, cacheStorage, opts.AppPath, s.modpath.RawPath, false) + + return s.Run(gens...) } // checkForbiddenMessageField returns true if the name is forbidden as a message name. diff --git a/ignite/services/scaffolder/module.go b/ignite/services/scaffolder/module.go index 71b1f78862..7950693180 100644 --- a/ignite/services/scaffolder/module.go +++ b/ignite/services/scaffolder/module.go @@ -1,7 +1,6 @@ package scaffolder import ( - "context" "go/token" "os" "path/filepath" @@ -9,24 +8,18 @@ import ( "github.com/gobuffalo/genny/v2" - "github.com/ignite/cli/v28/ignite/pkg/cache" appanalysis "github.com/ignite/cli/v28/ignite/pkg/cosmosanalysis/app" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/multiformatname" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" "github.com/ignite/cli/v28/ignite/pkg/validation" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/field" "github.com/ignite/cli/v28/ignite/templates/module" modulecreate "github.com/ignite/cli/v28/ignite/templates/module/create" ) const ( - extrasImport = "github.com/tendermint/spm-extras" - extrasVersion = "v0.1.0" - appPkg = "app" - moduleDir = "x" - modulePkg = "module" + moduleDir = "x" + modulePkg = "module" ) var ( @@ -99,16 +92,16 @@ var ( // moduleCreationOptions holds options for creating a new module. type moduleCreationOptions struct { - // ibc true if the module is an ibc module + // ibc true if the module is an ibc module. ibc bool - // params list of parameters + // params list of parameters. params []string - // ibcChannelOrdering ibc channel ordering + // ibcChannelOrdering ibc channel ordering. ibcChannelOrdering string - // dependencies list of module dependencies + // dependencies list of module dependencies. dependencies []modulecreate.Dependency } @@ -152,30 +145,27 @@ func WithDependencies(dependencies []modulecreate.Dependency) ModuleCreationOpti // CreateModule creates a new empty module in the scaffolded app. func (s Scaffolder) CreateModule( - ctx context.Context, - cacheStorage cache.Storage, - tracer *placeholder.Tracer, moduleName string, options ...ModuleCreationOption, -) (sm xgenny.SourceModification, err error) { +) error { mfName, err := multiformatname.NewName(moduleName, multiformatname.NoNumber) if err != nil { - return sm, err + return err } moduleName = mfName.LowerCase // Check if the module name is valid if err := checkModuleName(s.path, moduleName); err != nil { - return sm, err + return err } // Check if the module already exist ok, err := moduleExists(s.path, moduleName) if err != nil { - return sm, err + return err } if ok { - return sm, errors.Errorf("the module %v already exists", moduleName) + return errors.Errorf("the module %v already exists", moduleName) } // Apply the options @@ -187,12 +177,12 @@ func (s Scaffolder) CreateModule( // Parse params with the associated type params, err := field.ParseFields(creationOpts.params, checkForbiddenTypeIndex) if err != nil { - return sm, err + return err } // Check dependencies if err := checkDependencies(creationOpts.dependencies, s.path); err != nil { - return sm, err + return err } opts := &modulecreate.CreateOptions{ @@ -208,32 +198,26 @@ func (s Scaffolder) CreateModule( g, err := modulecreate.NewGenerator(opts) if err != nil { - return sm, err + return err } gens := []*genny.Generator{g} // Scaffold IBC module if opts.IsIBC { - g, err = modulecreate.NewIBC(tracer, opts) + g, err = modulecreate.NewIBC(s.Tracer(), opts) if err != nil { - return sm, err + return err } gens = append(gens, g) } - sm, err = xgenny.RunWithValidation(tracer, gens...) - if err != nil { - return sm, err - } + gens = append(gens, modulecreate.NewAppModify(s.Tracer(), opts)) - // Modify app.go to register the module - newSourceModification, runErr := xgenny.RunWithValidation(tracer, modulecreate.NewAppModify(tracer, opts)) - sm.Merge(newSourceModification) + err = s.Run(gens...) var validationErr validation.Error - if runErr != nil && !errors.As(runErr, &validationErr) { - return sm, runErr + if err != nil && !errors.As(err, &validationErr) { + return err } - - return sm, finish(ctx, cacheStorage, opts.AppPath, s.modpath.RawPath, false) + return nil } // moduleExists checks if the module exists in the app. diff --git a/ignite/services/scaffolder/oracle.go b/ignite/services/scaffolder/oracle.go index 491e72809e..7ba4767388 100644 --- a/ignite/services/scaffolder/oracle.go +++ b/ignite/services/scaffolder/oracle.go @@ -12,7 +12,6 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/gocmd" "github.com/ignite/cli/v28/ignite/pkg/multiformatname" "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/ibc" ) @@ -56,9 +55,9 @@ func (s *Scaffolder) AddOracle( moduleName, queryName string, options ...OracleOption, -) (sm xgenny.SourceModification, err error) { +) error { if err := s.installBandPacket(); err != nil { - return sm, err + return err } o := newOracleOptions() @@ -68,31 +67,31 @@ func (s *Scaffolder) AddOracle( mfName, err := multiformatname.NewName(moduleName, multiformatname.NoNumber) if err != nil { - return sm, err + return err } moduleName = mfName.LowerCase name, err := multiformatname.NewName(queryName) if err != nil { - return sm, err + return err } if err := checkComponentValidity(s.path, moduleName, name, false); err != nil { - return sm, err + return err } mfSigner, err := multiformatname.NewName(o.signer, checkForbiddenOracleFieldName) if err != nil { - return sm, err + return err } // Module must implement IBC ok, err := isIBCModule(s.path, moduleName) if err != nil { - return sm, err + return err } if !ok { - return sm, errors.Errorf("the module %s doesn't implement IBC module interface", moduleName) + return errors.Errorf("the module %s doesn't implement IBC module interface", moduleName) } // Generate the packet @@ -109,13 +108,9 @@ func (s *Scaffolder) AddOracle( ) g, err = ibc.NewOracle(tracer, opts) if err != nil { - return sm, err + return err } - sm, err = xgenny.RunWithValidation(tracer, g) - if err != nil { - return sm, err - } - return sm, finish(ctx, cacheStorage, opts.AppPath, s.modpath.RawPath, false) + return s.runner.Run(g) } // Deprecated: This function is no longer maintained. diff --git a/ignite/services/scaffolder/packet.go b/ignite/services/scaffolder/packet.go index 87088e7c80..e48da918c4 100644 --- a/ignite/services/scaffolder/packet.go +++ b/ignite/services/scaffolder/packet.go @@ -7,11 +7,8 @@ import ( "github.com/gobuffalo/genny/v2" - "github.com/ignite/cli/v28/ignite/pkg/cache" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/multiformatname" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/field" "github.com/ignite/cli/v28/ignite/templates/field/datatype" "github.com/ignite/cli/v28/ignite/templates/ibc" @@ -54,14 +51,12 @@ func PacketWithSigner(signer string) PacketOption { // AddPacket adds a new type stype to scaffolded app by using optional type fields. func (s Scaffolder) AddPacket( ctx context.Context, - cacheStorage cache.Storage, - tracer *placeholder.Tracer, moduleName, packetName string, packetFields, ackFields []string, options ...PacketOption, -) (sm xgenny.SourceModification, err error) { +) error { // apply options. o := newPacketOptions() for _, apply := range options { @@ -70,31 +65,31 @@ func (s Scaffolder) AddPacket( mfName, err := multiformatname.NewName(moduleName, multiformatname.NoNumber) if err != nil { - return sm, err + return err } moduleName = mfName.LowerCase name, err := multiformatname.NewName(packetName) if err != nil { - return sm, err + return err } if err := checkComponentValidity(s.path, moduleName, name, o.withoutMessage); err != nil { - return sm, err + return err } mfSigner, err := multiformatname.NewName(o.signer) if err != nil { - return sm, err + return err } // Module must implement IBC ok, err := isIBCModule(s.path, moduleName) if err != nil { - return sm, err + return err } if !ok { - return sm, errors.Errorf("the module %s doesn't implement IBC module interface", moduleName) + return errors.Errorf("the module %s doesn't implement IBC module interface", moduleName) } signer := "" @@ -104,20 +99,20 @@ func (s Scaffolder) AddPacket( // Check and parse packet fields if err := checkCustomTypes(ctx, s.path, s.modpath.Package, moduleName, packetFields); err != nil { - return sm, err + return err } parsedPacketFields, err := field.ParseFields(packetFields, checkForbiddenPacketField, signer) if err != nil { - return sm, err + return err } // check and parse acknowledgment fields if err := checkCustomTypes(ctx, s.path, s.modpath.Package, moduleName, ackFields); err != nil { - return sm, err + return err } parsedAcksFields, err := field.ParseFields(ackFields, checkGoReservedWord, signer) if err != nil { - return sm, err + return err } // Generate the packet @@ -135,15 +130,11 @@ func (s Scaffolder) AddPacket( MsgSigner: mfSigner, } ) - g, err = ibc.NewPacket(tracer, opts) + g, err = ibc.NewPacket(s.Tracer(), opts) if err != nil { - return sm, err - } - sm, err = xgenny.RunWithValidation(tracer, g) - if err != nil { - return sm, err + return err } - return sm, finish(ctx, cacheStorage, opts.AppPath, s.modpath.RawPath, false) + return s.Run(g) } // isIBCModule returns true if the provided module implements the IBC module interface @@ -162,7 +153,7 @@ func isIBCModule(appPath string, moduleName string) (bool, error) { return true, err } - // check the legacy path + // check the legacy Path absPathLegacy, err := filepath.Abs(filepath.Join(appPath, moduleDir, moduleName, ibcModuleImplementation)) if err != nil { return false, err diff --git a/ignite/services/scaffolder/patch.go b/ignite/services/scaffolder/patch.go index 2080cd30d8..4a4219b579 100644 --- a/ignite/services/scaffolder/patch.go +++ b/ignite/services/scaffolder/patch.go @@ -16,11 +16,10 @@ import ( func supportMsgServer( gens []*genny.Generator, replacer placeholder.Replacer, - appPath string, opts *modulecreate.MsgServerOptions, ) ([]*genny.Generator, error) { // Check if convention used - msgServerDefined, err := isMsgServerDefined(appPath, opts.AppName, opts.ModuleName) + msgServerDefined, err := isMsgServerDefined(opts) if err != nil { return nil, err } @@ -37,8 +36,8 @@ func supportMsgServer( // isMsgServerDefined checks if the module uses the MsgServer convention for transactions // this is checked by verifying the existence of the tx.proto file. -func isMsgServerDefined(appPath, appName, moduleName string) (bool, error) { - txProto, err := filepath.Abs(filepath.Join(appPath, "proto", appName, moduleName, "tx.proto")) +func isMsgServerDefined(opts *modulecreate.MsgServerOptions) (bool, error) { + txProto, err := filepath.Abs(opts.ProtoFile("tx.proto")) if err != nil { return false, err } diff --git a/ignite/services/scaffolder/query.go b/ignite/services/scaffolder/query.go index 610f72a486..1d2e766b27 100644 --- a/ignite/services/scaffolder/query.go +++ b/ignite/services/scaffolder/query.go @@ -5,11 +5,8 @@ import ( "github.com/gobuffalo/genny/v2" - "github.com/ignite/cli/v28/ignite/pkg/cache" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/multiformatname" - "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/field" "github.com/ignite/cli/v28/ignite/templates/query" ) @@ -17,50 +14,48 @@ import ( // AddQuery adds a new query to scaffolded app. func (s Scaffolder) AddQuery( ctx context.Context, - cacheStorage cache.Storage, - tracer *placeholder.Tracer, moduleName, queryName, description string, reqFields, resFields []string, paginated bool, -) (sm xgenny.SourceModification, err error) { +) error { // If no module is provided, we add the type to the app's module if moduleName == "" { moduleName = s.modpath.Package } mfName, err := multiformatname.NewName(moduleName, multiformatname.NoNumber) if err != nil { - return sm, err + return err } moduleName = mfName.LowerCase name, err := multiformatname.NewName(queryName) if err != nil { - return sm, err + return err } if err := checkComponentValidity(s.path, moduleName, name, true); err != nil { - return sm, err + return err } // Check and parse provided request fields if ok := containsCustomTypes(reqFields); ok { - return sm, errors.New("query request params can't contain custom type") + return errors.New("query request params can't contain custom type") } parsedReqFields, err := field.ParseFields(reqFields, checkGoReservedWord) if err != nil { - return sm, err + return err } // Check and parse provided response fields if err := checkCustomTypes(ctx, s.path, s.modpath.Package, moduleName, resFields); err != nil { - return sm, err + return err } parsedResFields, err := field.ParseFields(resFields, checkGoReservedWord) if err != nil { - return sm, err + return err } var ( @@ -79,13 +74,10 @@ func (s Scaffolder) AddQuery( ) // Scaffold - g, err = query.NewGenerator(tracer, opts) + g, err = query.NewGenerator(s.Tracer(), opts) if err != nil { - return sm, err + return err } - sm, err = xgenny.RunWithValidation(tracer, g) - if err != nil { - return sm, err - } - return sm, finish(ctx, cacheStorage, opts.AppPath, s.modpath.RawPath, false) + + return s.Run(g) } diff --git a/ignite/services/scaffolder/scaffolder.go b/ignite/services/scaffolder/scaffolder.go index 3d765de913..5e843ddc23 100644 --- a/ignite/services/scaffolder/scaffolder.go +++ b/ignite/services/scaffolder/scaffolder.go @@ -6,6 +6,8 @@ import ( "context" "path/filepath" + "github.com/gobuffalo/genny/v2" + chainconfig "github.com/ignite/cli/v28/ignite/config/chain" "github.com/ignite/cli/v28/ignite/pkg/cache" "github.com/ignite/cli/v28/ignite/pkg/cosmosanalysis" @@ -13,6 +15,8 @@ import ( "github.com/ignite/cli/v28/ignite/pkg/cosmosver" "github.com/ignite/cli/v28/ignite/pkg/gocmd" "github.com/ignite/cli/v28/ignite/pkg/gomodulepath" + "github.com/ignite/cli/v28/ignite/pkg/placeholder" + "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/version" ) @@ -24,12 +28,15 @@ type Scaffolder struct { // path of the app. path string - // modpath represents the go module path of the app. + // modpath represents the go module Path of the app. modpath gomodulepath.Path + + // runner represents the scaffold xgenny runner. + runner *xgenny.Runner } // New creates a new scaffold app. -func New(appPath string) (Scaffolder, error) { +func New(context context.Context, appPath string) (Scaffolder, error) { path, err := filepath.Abs(appPath) if err != nil { return Scaffolder{}, err @@ -58,25 +65,46 @@ func New(appPath string) (Scaffolder, error) { Version: ver, path: path, modpath: modpath, + runner: xgenny.NewRunner(context, path), } return s, nil } -func finish(ctx context.Context, cacheStorage cache.Storage, path, gomodPath string, skipProto bool) error { +func (s Scaffolder) ApplyModifications() (xgenny.SourceModification, error) { + return s.runner.ApplyModifications() +} + +func (s Scaffolder) Tracer() *placeholder.Tracer { + return s.runner.Tracer() +} + +func (s Scaffolder) Run(gens ...*genny.Generator) error { + return s.runner.Run(gens...) +} + +func (s Scaffolder) PostScaffold(ctx context.Context, cacheStorage cache.Storage, skipProto bool) error { + return PostScaffold(ctx, cacheStorage, s.path, s.modpath.RawPath, skipProto) +} + +func PostScaffold(ctx context.Context, cacheStorage cache.Storage, path, gomodPath string, skipProto bool) error { if !skipProto { if err := protoc(ctx, cacheStorage, path, gomodPath); err != nil { return err } } + if err := gocmd.ModTidy(ctx, path); err != nil { + return err + } + if err := gocmd.Fmt(ctx, path); err != nil { return err } _ = gocmd.GoImports(ctx, path) // goimports installation could fail, so ignore the error - return gocmd.ModTidy(ctx, path) + return nil } func protoc(ctx context.Context, cacheStorage cache.Storage, projectPath, gomodPath string) error { @@ -92,7 +120,6 @@ func protoc(ctx context.Context, cacheStorage cache.Storage, projectPath, gomodP options := []cosmosgen.Option{ cosmosgen.UpdateBufModule(), cosmosgen.WithGoGeneration(), - cosmosgen.IncludeDirs(conf.Build.Proto.ThirdPartyPaths), } // Generate Typescript client code if it's enabled or when Vuex stores are generated diff --git a/ignite/services/scaffolder/type.go b/ignite/services/scaffolder/type.go index d806b8d92c..199eb33474 100644 --- a/ignite/services/scaffolder/type.go +++ b/ignite/services/scaffolder/type.go @@ -6,11 +6,9 @@ import ( "github.com/gobuffalo/genny/v2" - "github.com/ignite/cli/v28/ignite/pkg/cache" "github.com/ignite/cli/v28/ignite/pkg/errors" "github.com/ignite/cli/v28/ignite/pkg/multiformatname" "github.com/ignite/cli/v28/ignite/pkg/placeholder" - "github.com/ignite/cli/v28/ignite/pkg/xgenny" "github.com/ignite/cli/v28/ignite/templates/field" "github.com/ignite/cli/v28/ignite/templates/field/datatype" modulecreate "github.com/ignite/cli/v28/ignite/templates/module/create" @@ -119,12 +117,10 @@ func TypeWithSigner(signer string) AddTypeOption { // if no module is given, the type will be scaffolded inside the app's default module. func (s Scaffolder) AddType( ctx context.Context, - cacheStorage cache.Storage, typeName string, - tracer *placeholder.Tracer, kind AddTypeKind, options ...AddTypeOption, -) (sm xgenny.SourceModification, err error) { +) error { // apply options. o := newAddTypeOptions(s.modpath.Package) for _, apply := range append(options, AddTypeOption(kind)) { @@ -133,36 +129,36 @@ func (s Scaffolder) AddType( mfName, err := multiformatname.NewName(o.moduleName, multiformatname.NoNumber) if err != nil { - return sm, err + return err } moduleName := mfName.LowerCase name, err := multiformatname.NewName(typeName) if err != nil { - return sm, err + return err } if err := checkComponentValidity(s.path, moduleName, name, o.withoutMessage); err != nil { - return sm, err + return err } // Check and parse provided fields if err := checkCustomTypes(ctx, s.path, s.modpath.Package, moduleName, o.fields); err != nil { - return sm, err + return err } tFields, err := parseTypeFields(o) if err != nil { - return sm, err + return err } mfSigner, err := multiformatname.NewName(o.signer) if err != nil { - return sm, err + return err } isIBC, err := isIBCModule(s.path, moduleName) if err != nil { - return sm, err + return err } var ( @@ -184,8 +180,7 @@ func (s Scaffolder) AddType( // Check and support MsgServer convention gens, err = supportMsgServer( gens, - tracer, - s.path, + s.runner.Tracer(), &modulecreate.MsgServerOptions{ ModuleName: opts.ModuleName, ModulePath: opts.ModulePath, @@ -194,32 +189,26 @@ func (s Scaffolder) AddType( }, ) if err != nil { - return sm, err + return err } // create the type generator depending on the model switch { case o.isList: - g, err = list.NewGenerator(tracer, opts) + g, err = list.NewGenerator(s.Tracer(), opts) case o.isMap: - g, err = mapGenerator(tracer, opts, o.indexes) + g, err = mapGenerator(s.Tracer(), opts, o.indexes) case o.isSingleton: - g, err = singleton.NewGenerator(tracer, opts) + g, err = singleton.NewGenerator(s.Tracer(), opts) default: g, err = dry.NewGenerator(opts) } if err != nil { - return sm, err + return err } // run the generation - gens = append(gens, g) - sm, err = xgenny.RunWithValidation(tracer, gens...) - if err != nil { - return sm, err - } - - return sm, finish(ctx, cacheStorage, opts.AppPath, s.modpath.RawPath, false) + return s.Run(append(gens, g)...) } // checkForbiddenTypeIndex returns true if the name is forbidden as a index name. diff --git a/ignite/templates/app/files/go.mod.plush b/ignite/templates/app/files/go.mod.plush index 61e6a32310..65fe7baff6 100644 --- a/ignite/templates/app/files/go.mod.plush +++ b/ignite/templates/app/files/go.mod.plush @@ -27,7 +27,7 @@ require ( <%= if (IsConsumerChain) { %> github.com/cosmos/interchain-security/v5 v5.0.0 <% } %> - github.com/bufbuild/buf v1.30.1 + github.com/bufbuild/buf v1.34.0 github.com/cometbft/cometbft v0.38.8 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 diff --git a/ignite/templates/module/create/options.go b/ignite/templates/module/create/options.go index d74dbeab77..5c23cd5975 100644 --- a/ignite/templates/module/create/options.go +++ b/ignite/templates/module/create/options.go @@ -2,47 +2,74 @@ package modulecreate import ( "fmt" + "path/filepath" "github.com/iancoleman/strcase" "github.com/ignite/cli/v28/ignite/templates/field" ) -type ( - // CreateOptions represents the options to scaffold a Cosmos SDK module. - CreateOptions struct { - ModuleName string - ModulePath string - AppName string - AppPath string - Params field.Fields +// ConfigsOptions represents the options to scaffold a Cosmos SDK module configs. +type ConfigsOptions struct { + ModuleName string + AppName string + AppPath string + ProtoDir string + ProtoVer string +} - // True if the module should implement the IBC module interface - IsIBC bool +// ProtoFile returns the path to the proto folder. +func (opts *ConfigsOptions) ProtoFile(fname string) string { + return filepath.Join(opts.AppPath, opts.ProtoDir, opts.AppName, opts.ModuleName, opts.ProtoVer, fname) +} - // Channel ordering of the IBC module: ordered, unordered or none - IBCOrdering string +// MsgServerOptions defines options to add MsgServer. +type MsgServerOptions struct { + ModuleName string + ModulePath string + AppName string + AppPath string + ProtoDir string + ProtoVer string +} - // Dependencies of the module - Dependencies Dependencies - } +// ProtoFile returns the path to the proto folder. +func (opts *MsgServerOptions) ProtoFile(fname string) string { + return filepath.Join(opts.AppPath, opts.ProtoDir, opts.AppName, opts.ModuleName, opts.ProtoVer, fname) +} - // Dependency represents a module dependency of a module. - Dependency struct { - Name string - } +// CreateOptions represents the options to scaffold a Cosmos SDK module. +type CreateOptions struct { + ModuleName string + ModulePath string + AppName string + AppPath string + ProtoDir string + ProtoVer string + Params field.Fields - // Dependencies represents a list of module dependency. - Dependencies []Dependency + // True if the module should implement the IBC module interface + IsIBC bool - // MsgServerOptions defines options to add MsgServer. - MsgServerOptions struct { - ModuleName string - ModulePath string - AppName string - AppPath string - } -) + // Channel ordering of the IBC module: ordered, unordered or none + IBCOrdering string + + // Dependencies of the module + Dependencies Dependencies +} + +// ProtoFile returns the path to the proto folder. +func (opts *CreateOptions) ProtoFile(fname string) string { + return filepath.Join(opts.AppPath, opts.ProtoDir, opts.AppName, opts.ModuleName, opts.ProtoVer, fname) +} + +// Dependency represents a module dependency of a module. +type Dependency struct { + Name string +} + +// Dependencies represents a list of module dependency. +type Dependencies []Dependency // NewDependency returns a new dependency. func NewDependency(name string) Dependency { @@ -68,8 +95,3 @@ func (d Dependencies) Len() int { func (d Dependency) KeeperName() string { return fmt.Sprint(d.Name, "Keeper") } - -// Validate that options are usable. -func (opts *CreateOptions) Validate() error { - return nil -} diff --git a/integration/app/proto_test.go b/integration/app/proto_test.go index 5c0eb04b44..4b3c03921a 100644 --- a/integration/app/proto_test.go +++ b/integration/app/proto_test.go @@ -8,8 +8,9 @@ import ( "strings" "testing" - envtest "github.com/ignite/cli/v28/integration" "github.com/stretchr/testify/require" + + envtest "github.com/ignite/cli/v28/integration" ) // TestGenerateAppCheckBufPulsarPath tests scaffolding a new chain and checks if the buf.gen.pulsar.yaml file is correct diff --git a/integration/doctor/testdata/config-need-migrate.txt b/integration/doctor/testdata/config-need-migrate.txt index e63ad504c4..8d3aae591d 100644 --- a/integration/doctor/testdata/config-need-migrate.txt +++ b/integration/doctor/testdata/config-need-migrate.txt @@ -1,7 +1,7 @@ # Test fix config # old config should be migrated exec $IGNITE doctor -cmp config.yml config.yml.golden +cmp config.yml.golden config.yml -- config.yml -- accounts: diff --git a/integration/doctor/testdata/existing-tools.go.txt b/integration/doctor/testdata/existing-tools.go.txt index c4c9dd3cff..5685cd7743 100644 --- a/integration/doctor/testdata/existing-tools.go.txt +++ b/integration/doctor/testdata/existing-tools.go.txt @@ -3,7 +3,7 @@ exec $IGNITE doctor stdout 'tools/tools.go exists' # assert tools.go has not changed -cmp tools/tools.go tools.go.golden +cmp tools.go.golden tools/tools.go -- config.yml -- version: 1 diff --git a/integration/doctor/testdata/missing-tools.go.txt b/integration/doctor/testdata/missing-tools.go.txt index 766163d9b8..60efcec339 100644 --- a/integration/doctor/testdata/missing-tools.go.txt +++ b/integration/doctor/testdata/missing-tools.go.txt @@ -2,7 +2,7 @@ # if no tools.go it should populate a new one exec $IGNITE doctor # assert generated tools.go -cmp tools/tools.go tools.go.golden +cmp tools.go.golden tools/tools.go # assert go.sum has been generated (go mod tidy has run) exists go.sum # assert tools have been installed @@ -17,7 +17,7 @@ version: 1 module github.com/ignite/cli require ( - github.com/bufbuild/buf v1.30.1 + github.com/bufbuild/buf v1.34.0 ) go 1.20