Skip to content

Commit 1e929eb

Browse files
control default latest version for avago and subnetevm (#2724)
* control default latest version for avago and subnetevm * add rpc to json * get latest cli version * update json model * update evm prompts * update evm prompt * update avalanchego latest * add e2e test * remove unncessary file * lint * try with lower versions * update how we get newest avago version * fix lint * address comments * fix ci * fix ci * fix lint * lint * move to dependencies pkg * lint --------- Signed-off-by: sukantoraymond <[email protected]>
1 parent e192b90 commit 1e929eb

26 files changed

+629
-401
lines changed

cmd/blockchaincmd/add_validator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ func CallAddValidator(
511511
if err != nil {
512512
return err
513513
}
514-
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLoggerNewLogger(
514+
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLogger(
515515
addValidatorFlags.SigAggFlags.AggregatorLogLevel,
516516
addValidatorFlags.SigAggFlags.AggregatorLogToStdout,
517517
app.GetAggregatorLogDir(clusterNameFlagValue),

cmd/blockchaincmd/change_weight.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ func changeWeightACP99(
363363
if err != nil {
364364
return err
365365
}
366-
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLoggerNewLogger(
366+
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLogger(
367367
changeWeightFlags.SigAggFlags.AggregatorLogLevel,
368368
changeWeightFlags.SigAggFlags.AggregatorLogToStdout,
369369
app.GetAggregatorLogDir(clusterName),

cmd/blockchaincmd/convert.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import (
1010
"strings"
1111
"time"
1212

13+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
14+
1315
"github.com/ava-labs/avalanche-cli/cmd/flags"
1416
"github.com/ava-labs/avalanche-cli/pkg/blockchain"
1517
"github.com/ava-labs/avalanche-cli/pkg/cobrautils"
@@ -27,7 +29,6 @@ import (
2729
"github.com/ava-labs/avalanche-cli/pkg/utils"
2830
"github.com/ava-labs/avalanche-cli/pkg/ux"
2931
"github.com/ava-labs/avalanche-cli/pkg/validatormanager"
30-
"github.com/ava-labs/avalanche-cli/pkg/vm"
3132
blockchainSDK "github.com/ava-labs/avalanche-cli/sdk/blockchain"
3233
"github.com/ava-labs/avalanche-cli/sdk/evm"
3334
sdkutils "github.com/ava-labs/avalanche-cli/sdk/utils"
@@ -189,18 +190,15 @@ func StartLocalMachine(
189190
availableBalance,
190191
)
191192
}
192-
avagoVersionSettings := node.AvalancheGoVersionSettings{}
193+
avagoVersionSettings := dependencies.AvalancheGoVersionSettings{}
193194
// setup (install if needed) avalanchego binary
194195
avagoVersion := userProvidedAvagoVersion
195196
if userProvidedAvagoVersion == constants.DefaultAvalancheGoVersion && avagoBinaryPath == "" {
196-
// nothing given: get avago version from RPC compat
197-
avagoVersion, err = vm.GetLatestAvalancheGoByProtocolVersion(
198-
app,
199-
sidecar.RPCVersion,
200-
constants.AvalancheGoCompatibilityURL,
201-
)
197+
// nothing given: get avago version from RPC compat using latest.json defined in
198+
// https://raw.githubusercontent.com/ava-labs/avalanche-cli/control-default-version/versions/latest.json
199+
avagoVersion, err = dependencies.GetLatestCLISupportedDependencyVersion(app, constants.AvalancheGoRepoName, network, &sidecar.RPCVersion)
202200
if err != nil {
203-
if err != vm.ErrNoAvagoVersion {
201+
if err != dependencies.ErrNoAvagoVersion {
204202
return false, err
205203
}
206204
avagoVersion = constants.LatestPreReleaseVersionTag
@@ -379,7 +377,7 @@ func InitializeValidatorManager(
379377
RPC: rpcURL,
380378
BootstrapValidators: avaGoBootstrapValidators,
381379
}
382-
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLoggerNewLogger(
380+
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLogger(
383381
signatureAggregatorFlags.AggregatorLogLevel,
384382
signatureAggregatorFlags.AggregatorLogToStdout,
385383
app.GetAggregatorLogDir(clusterName),

cmd/blockchaincmd/create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ func createBlockchainConfig(cmd *cobra.Command, args []string) error {
286286
if vmVersion != latest && vmVersion != preRelease && vmVersion != "" && !semver.IsValid(vmVersion) {
287287
return fmt.Errorf("invalid version string, should be semantic version (ex: v1.1.1): %s", vmVersion)
288288
}
289-
vmVersion, err = vm.PromptVMVersion(app, constants.SubnetEVMRepoName, vmVersion)
289+
vmVersion, err = vm.PromptSubnetEVMVersion(app, vmVersion)
290290
if err != nil {
291291
return err
292292
}

cmd/blockchaincmd/deploy.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import (
1010
"os"
1111
"path/filepath"
1212

13+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
14+
1315
"github.com/ava-labs/avalanche-cli/cmd/flags"
1416
"github.com/ava-labs/avalanche-cli/cmd/interchaincmd/messengercmd"
1517
"github.com/ava-labs/avalanche-cli/cmd/interchaincmd/relayercmd"
@@ -485,14 +487,9 @@ func deployBlockchain(cmd *cobra.Command, args []string) error {
485487
avagoVersion := userProvidedAvagoVersion
486488

487489
if avagoVersion == constants.DefaultAvalancheGoVersion && avagoBinaryPath == "" {
488-
// nothing given: get avago version from RPC compat
489-
avagoVersion, err = vm.GetLatestAvalancheGoByProtocolVersion(
490-
app,
491-
sidecar.RPCVersion,
492-
constants.AvalancheGoCompatibilityURL,
493-
)
490+
avagoVersion, err = dependencies.GetLatestCLISupportedDependencyVersion(app, constants.AvalancheGoRepoName, network, &sidecar.RPCVersion)
494491
if err != nil {
495-
if err != vm.ErrNoAvagoVersion {
492+
if err != dependencies.ErrNoAvagoVersion {
496493
return err
497494
}
498495
avagoVersion = constants.LatestPreReleaseVersionTag

cmd/blockchaincmd/remove_validator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ func removeValidatorSOV(
317317
if err != nil {
318318
return err
319319
}
320-
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLoggerNewLogger(
320+
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLogger(
321321
removeValidatorFlags.SigAggFlags.AggregatorLogLevel,
322322
removeValidatorFlags.SigAggFlags.AggregatorLogToStdout,
323323
app.GetAggregatorLogDir(clusterName),

cmd/contractcmd/init_validator_manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func initValidatorManager(_ *cobra.Command, args []string) error {
155155
if err != nil {
156156
return err
157157
}
158-
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLoggerNewLogger(
158+
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLogger(
159159
initValidatorManagerFlags.SigAggFlags.AggregatorLogLevel,
160160
initValidatorManagerFlags.SigAggFlags.AggregatorLogToStdout,
161161
app.GetAggregatorLogDir(clusterName),

cmd/networkcmd/start.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import (
1010
"path/filepath"
1111
"time"
1212

13+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
14+
1315
"github.com/ava-labs/avalanche-cli/pkg/cobrautils"
1416
"github.com/ava-labs/avalanche-cli/pkg/constants"
1517
"github.com/ava-labs/avalanche-cli/pkg/interchain/relayer"
@@ -274,7 +276,7 @@ func startLocalClusters(avalancheGoBinPath string) error {
274276
nil,
275277
localnet.ConnectionSettings{},
276278
nil,
277-
node.AvalancheGoVersionSettings{},
279+
dependencies.AvalancheGoVersionSettings{},
278280
models.NewLocalNetwork(),
279281
); err != nil {
280282
return err

cmd/nodecmd/create.go

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"sync"
1515
"time"
1616

17+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
18+
1719
"github.com/ava-labs/avalanche-cli/cmd/flags"
1820
"github.com/ava-labs/avalanche-cli/pkg/ansible"
1921
awsAPI "github.com/ava-labs/avalanche-cli/pkg/cloud/aws"
@@ -27,7 +29,6 @@ import (
2729
"github.com/ava-labs/avalanche-cli/pkg/ssh"
2830
"github.com/ava-labs/avalanche-cli/pkg/utils"
2931
"github.com/ava-labs/avalanche-cli/pkg/ux"
30-
"github.com/ava-labs/avalanche-cli/pkg/vm"
3132
sdkutils "github.com/ava-labs/avalanche-cli/sdk/utils"
3233
"github.com/ava-labs/avalanchego/ids"
3334
"github.com/ava-labs/avalanchego/staking"
@@ -309,13 +310,13 @@ func createNodes(cmd *cobra.Command, args []string) error {
309310
}
310311
network = models.NewNetworkFromCluster(network, clusterName)
311312
globalNetworkFlags.UseDevnet = network.Kind == models.Devnet // set globalNetworkFlags.UseDevnet to true if network is devnet for further use
312-
avaGoVersionSetting := node.AvalancheGoVersionSettings{
313+
avaGoVersionSetting := dependencies.AvalancheGoVersionSettings{
313314
UseAvalanchegoVersionFromSubnet: useAvalanchegoVersionFromSubnet,
314315
UseLatestAvalanchegoReleaseVersion: useLatestAvalanchegoReleaseVersion,
315316
UseLatestAvalanchegoPreReleaseVersion: useLatestAvalanchegoPreReleaseVersion,
316317
UseCustomAvalanchegoVersion: useCustomAvalanchegoVersion,
317318
}
318-
avalancheGoVersion, err := node.GetAvalancheGoVersion(app, avaGoVersionSetting)
319+
avalancheGoVersion, err := dependencies.GetAvalancheGoVersion(app, avaGoVersionSetting, network)
319320
if err != nil {
320321
return err
321322
}
@@ -1043,19 +1044,6 @@ func provideStakingCertAndKey(host *models.Host) error {
10431044
return ssh.RunSSHUploadStakingFiles(host, keyPath)
10441045
}
10451046

1046-
func GetLatestAvagoVersionForRPC(configuredRPCVersion int, latestPreReleaseVersion string) (string, error) {
1047-
desiredAvagoVersion, err := vm.GetLatestAvalancheGoByProtocolVersion(
1048-
app, configuredRPCVersion, constants.AvalancheGoCompatibilityURL)
1049-
if err == vm.ErrNoAvagoVersion {
1050-
ux.Logger.PrintToUser("No Avago version found for subnet. Defaulting to latest pre-release version")
1051-
return latestPreReleaseVersion, nil
1052-
}
1053-
if err != nil {
1054-
return "", err
1055-
}
1056-
return desiredAvagoVersion, nil
1057-
}
1058-
10591047
func setCloudService() (string, error) {
10601048
if utils.IsE2E() {
10611049
if !utils.E2EDocker() {

cmd/nodecmd/local.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"strings"
99
"time"
1010

11+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
12+
1113
"github.com/ava-labs/avalanche-cli/cmd/flags"
1214
"github.com/ava-labs/avalanche-cli/pkg/blockchain"
1315
"github.com/ava-labs/avalanche-cli/pkg/cobrautils"
@@ -248,7 +250,7 @@ func localStartNode(_ *cobra.Command, args []string) error {
248250
latestAvagoPreReleaseVersion = false
249251
latestAvagoReleaseVersion = false
250252
}
251-
avaGoVersionSetting := node.AvalancheGoVersionSettings{
253+
avaGoVersionSetting := dependencies.AvalancheGoVersionSettings{
252254
UseCustomAvalanchegoVersion: useCustomAvalanchegoVersion,
253255
UseLatestAvalanchegoPreReleaseVersion: latestAvagoPreReleaseVersion,
254256
UseLatestAvalanchegoReleaseVersion: latestAvagoReleaseVersion,
@@ -535,7 +537,7 @@ func localValidate(_ *cobra.Command, args []string) error {
535537
if err != nil {
536538
return err
537539
}
538-
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLoggerNewLogger(
540+
aggregatorLogger, err := signatureaggregator.NewSignatureAggregatorLogger(
539541
localValidateFlags.SigAggFlags.AggregatorLogLevel,
540542
localValidateFlags.SigAggFlags.AggregatorLogToStdout,
541543
app.GetAggregatorLogDir(clusterName),

cmd/nodecmd/setup.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88
"path/filepath"
99
"sync"
1010

11-
"github.com/ava-labs/avalanche-cli/pkg/prompts"
11+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
1212

13-
"github.com/ava-labs/avalanche-cli/pkg/node"
13+
"github.com/ava-labs/avalanche-cli/pkg/prompts"
1414

1515
"github.com/ava-labs/avalanche-cli/pkg/docker"
1616

@@ -141,13 +141,13 @@ func setupNode(_ *cobra.Command, _ []string) error {
141141
if err != nil {
142142
return err
143143
}
144-
avaGoVersionSetting := node.AvalancheGoVersionSettings{
144+
avaGoVersionSetting := dependencies.AvalancheGoVersionSettings{
145145
UseAvalanchegoVersionFromSubnet: useAvalanchegoVersionFromSubnet,
146146
UseLatestAvalanchegoReleaseVersion: useLatestAvalanchegoReleaseVersion,
147147
UseLatestAvalanchegoPreReleaseVersion: useLatestAvalanchegoPreReleaseVersion,
148148
UseCustomAvalanchegoVersion: useCustomAvalanchegoVersion,
149149
}
150-
avalancheGoVersion, err := node.GetAvalancheGoVersion(app, avaGoVersionSetting)
150+
avalancheGoVersion, err := dependencies.GetAvalancheGoVersion(app, avaGoVersionSetting, network)
151151
if err != nil {
152152
return err
153153
}

cmd/nodecmd/upgrade.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"strings"
99
"sync"
1010

11+
"github.com/ava-labs/avalanche-cli/pkg/dependencies"
12+
1113
"github.com/ava-labs/avalanche-cli/pkg/node"
1214

1315
"github.com/ava-labs/avalanche-cli/pkg/ansible"
@@ -185,7 +187,7 @@ func getNodesUpgradeInfo(hosts []*models.Host) (map[*models.Host]nodeUpgradeInfo
185187
nodeUpgradeInfo.SubnetEVMIDsToUpgrade = append(nodeUpgradeInfo.SubnetEVMIDsToUpgrade, vmName)
186188
}
187189
// find the highest version of avalanche go that is still compatible with current highest rpc
188-
avalancheGoVersionToUpdateTo, err = GetLatestAvagoVersionForRPC(rpcVersion, latestAvagoVersion)
190+
avalancheGoVersionToUpdateTo, err = dependencies.GetLatestAvalancheGoByProtocolVersion(app, rpcVersion)
189191
if err != nil {
190192
nodeErrors[hostID] = err
191193
continue

pkg/application/app.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,10 +363,6 @@ func (app *Avalanche) GetDownloader() Downloader {
363363
return app.Downloader
364364
}
365365

366-
func (*Avalanche) GetAvalanchegoCompatibilityURL() string {
367-
return constants.AvalancheGoCompatibilityURL
368-
}
369-
370366
func (app *Avalanche) ReadUpgradeFile(blockchainName string) ([]byte, error) {
371367
upgradeBytesFilePath := app.GetUpgradeBytesFilePath(blockchainName)
372368

pkg/constants/constants.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ const (
296296
FujiAvalancheGoV113 = "v1.13.0-fuji"
297297
AvalancheGoCompatibilityURL = "https://raw.githubusercontent.com/ava-labs/avalanchego/master/version/compatibility.json"
298298
SubnetEVMRPCCompatibilityURL = "https://raw.githubusercontent.com/ava-labs/subnet-evm/master/compatibility.json"
299+
CLILatestDependencyURL = "https://raw.githubusercontent.com/ava-labs/avalanche-cli/control-default-version/versions/latest.json"
299300

300301
YesLabel = "Yes"
301302
NoLabel = "No"

0 commit comments

Comments
 (0)