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
[x] Ensure all the Github workflows are passing on main
[x] Rename the latest upgrade handlers to the v6.0.0. This includes:
[x] Rename the package name in app/upgrades/latest/upgrades.go from upgradelatest to upgrades6_0_0
[x] Set the name of the upgrade handler by setting the Name to the new version name v6.0.0
[x] Set the NameAsciiArt to match what the version is expected to be. You can generate the art from here and using the font 3x5
[x] In app/app_upgrades change the import path from upgradelatest "github.com/archway-network/archway/app/upgrades/latest" to upgrade6_0_0 "github.com/archway-network/archway/app/upgrades/6_0_0"
[x] In app/app_upgrades change the new Upgrade Handler reference from upgradelatest.Upgrade to upgrade6_0_0.Upgrade
[x] Update the upgradeName value to v6.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.
[x] Update the CHANEGLOG. This includes
[x] Renaming the ## [Unreleased] header to [v6.0.0](https://github.com/archway-network/archway/releases/tag/v6.0.0)
[x] Removed any unused headers
[x] Fix any typos or duplicates
[x] Create a PR with the above changes titled chore: v6 release changes
Release
[x] Once above PR is merged, create a new release here. Name the release and the tag as v6.0.0 and the contents are copy pasted from CHANGELOG.md
[x] At the end add a version compare link as so **Full Changelog**: https://github.com/archway-network/archway/compare/v4.0.2...v6.0.0
[x] Ensure all release artifacts are successfully built
Post Release
[x] Update CHANGELOG by adding the following to the top of the file
## [Unreleased]
Added
Changed
Deprecated
Removed
Fixed
Improvements
- [x] Add a placeholder upgrade handler as follows
- [x] Add new file at path `upgrades/latest/upgrades.go` with the following contents
```go
package upgradelatest
import (
storetypes "github.com/cosmos/cosmos-sdk/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 "github.com/cosmos/cosmos-sdk/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{},
}
[x] 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
[x] Update the initialVersion value in the interchaintest/setup.go to "v6.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
[x] Create a PR for the above with the title chore: Post v6.0.0 release maintenance
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
main
latest
upgrade handlers to thev6.0.0
. This includes:app/upgrades/latest/upgrades.go
fromupgradelatest
toupgrades6_0_0
Name
to the new version namev6.0.0
NameAsciiArt
to match what the version is expected to be. You can generate the art from here and using the font3x5
app/app_upgrades
change the import path fromupgradelatest "github.com/archway-network/archway/app/upgrades/latest"
toupgrade6_0_0 "github.com/archway-network/archway/app/upgrades/6_0_0"
app/app_upgrades
change the new Upgrade Handler reference fromupgradelatest.Upgrade
toupgrade6_0_0.Upgrade
upgradeName
value tov6.0.0
in theinterchaintest/setup.go
. This is used in the Chain Upgrade test and modifying this ensures that we simulate the upgrade accurately.## [Unreleased]
header to[v6.0.0](https://github.com/archway-network/archway/releases/tag/v6.0.0)
chore: v6 release changes
Release
v6.0.0
and the contents are copy pasted from CHANGELOG.md**Full Changelog**: https://github.com/archway-network/archway/compare/v4.0.2...v6.0.0
Post Release
Added
Changed
Deprecated
Removed
Fixed
Improvements
app/app_upgrades.go
as the following package importupgradelatest "github.com/archway-network/archway/app/upgrades/latest"
and the upgrade name asupgradelatest.Upgrade, // latest - This upgrade handler is used for all the current changes to the protocol
initialVersion
value in theinterchaintest/setup.go
to "v6.0.0" andupgradeName
tolatest
. This is used in the Chain Upgrade test and modifying this ensures that we always have an upgrade handler test for each PRchore: Post v6.0.0 release maintenance