Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v8.0.0: Release Checklist #579

Open
13 of 22 tasks
spoo-bar opened this issue Jul 4, 2024 · 0 comments
Open
13 of 22 tasks

v8.0.0: Release Checklist #579

spoo-bar opened this issue Jul 4, 2024 · 0 comments
Labels
release Indicates if the issues and PRs are related to release of new version of the protocol

Comments

@spoo-bar
Copy link
Contributor

spoo-bar commented Jul 4, 2024

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
@spoo-bar spoo-bar added the release Indicates if the issues and PRs are related to release of new version of the protocol label Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Indicates if the issues and PRs are related to release of new version of the protocol
Projects
None yet
Development

No branches or pull requests

1 participant