Skip to content

v8.0.0: Release Checklist #579

@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 v8.0.0. This includes:
    • Rename the package name in app/upgrades/latest/upgrades.go from upgradelatest to upgrades8_0_0
    • Set the name of the upgrade handler by setting the Name to the new version name v8.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 upgrade8_0_0 "github.com/archway-network/archway/app/upgrades/8_0_0"
    • In app/app_upgrades change the new Upgrade Handler reference from upgradelatest.Upgrade to upgrade8_0_0.Upgrade
  • Update the upgradeName value to v8.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 [v8.0.0](https://github.com/archway-network/archway/releases/tag/v8.0.0)
    • Removed any unused headers
    • Fix any typos or duplicates
  • Create a PR with the above changes titled chore: vX release changes

Release

  • Once above PR is merged, create a new release here. Name the release and the tag as v8.0.0 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/v7.0.0...v8.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 "v8.0.0" 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 v8.0.0 release maintenance

Metadata

Metadata

Assignees

No one assigned

    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