Skip to content

v10.0.0: Release Checklist #600

@spoo-bar

Description

@spoo-bar

Archwayd Release Checklist

This checklist is to be used for tracking the final things to do to wrap up a new release of the Archway protocol binary as well as all the post upgrade maintenance work.

Before Release

  • Ensure all the Github workflows are passing on main
  • Rename the latest upgrade handlers to the v10.0.0. This includes:
    • Rename the package name in app/upgrades/latest/upgrades.go from upgradelatest to upgrades10_0_0
    • Set the name of the upgrade handler by setting the Name to the new version name v10.0.0
    • Set the NameAsciiArt to match what the version is expected to be. You can generate the art from here and using the font 3x5
    • In app/app_upgrades change the import path from upgradelatest "github.com/archway-network/archway/app/upgrades/latest" to upgrade10_0_0 "github.com/archway-network/archway/app/upgrades/10_0_0"
    • In app/app_upgrades change the new Upgrade Handler reference from upgradelatest.Upgrade to upgrade10_0_0.Upgrade
  • Update the upgradeName value to v10.0.0 in the interchaintest/setup.go. This is used in the Chain Upgrade test and modifying this ensures that we simulate the upgrade accurately.
  • Update the CHANEGLOG. This includes
    • Renaming the ## [Unreleased] header to [v10.0.0](https://github.com/archway-network/archway/releases/tag/v10.0.0)
    • Removed any unused headers
    • Fix any typos or duplicates
  • Create a PR with the above changes titled chore: v10 release changes

Release

  • Once above PR is merged, create a new release here. Name the release and the tag as vX.X.X and the contents are copy pasted from CHANGELOG.md
  • At the end add a version compare link as so **Full Changelog**: https://github.com/archway-network/archway/compare/v(X-1).00...vX.0.0
  • Ensure all release artifacts are successfully built

Post Release

  • Update CHANGELOG by adding the following to the top of the file
## [Unreleased]

### Added

### Changed

### Deprecated

### Removed

### Fixed

### Improvements
  • Add a placeholder upgrade handler as follows
    • Add new file at path upgrades/latest/upgrades.go with the following contents
package upgradelatest

import (
	storetypes "cosmossdk.io/store/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/types/module"
	"github.com/cosmos/cosmos-sdk/x/auth/keeper"
	upgradetypes "cosmossdk.io/x/upgrade/types"

        "github.com/archway-network/archway/app/keepers"
	"github.com/archway-network/archway/app/upgrades"
)

// This upgrade handler is used for all the current changes to the protocol

const Name = "latest"
const NameAsciiArt = ""

var Upgrade = upgrades.Upgrade{
	UpgradeName: Name,
	CreateUpgradeHandler: func(mm *module.Manager, cfg module.Configurator, keepers keepers.ArchwayKeepers) upgradetypes.UpgradeHandler {
		return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
			migrations, err := mm.RunMigrations(ctx, cfg, fromVM)
			if err != nil {
				return nil, err
			}

			ctx.Logger().Info(upgrades.ArchwayLogo + NameAsciiArt)
			return migrations, nil
		}
	},
	StoreUpgrades: storetypes.StoreUpgrades{},
} 
  • Add the latest upgrade handler reference to app/app_upgrades.go as the following package import upgradelatest "github.com/archway-network/archway/app/upgrades/latest" and the upgrade name as upgradelatest.Upgrade, // latest - This upgrade handler is used for all the current changes to the protocol
  • Update the initialVersion value in the interchaintest/setup.go to "vX.X.X" and upgradeName to latest. This is used in the Chain Upgrade test and modifying this ensures that we always have an upgrade handler test for each PR
  • Create a PR for the above with the title chore: Post vX.X.X release maintenance

Metadata

Metadata

Assignees

Labels

releaseIndicates if the issues and PRs are related to release of new version of the protocol

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions