[Release 3.4 Contracts 2.8] Release Management Checklist

[Release 3.4 Contracts 2.8] Release Management Checklist

This document is intended to assist release managers in tracking the progress of required work items for a given release. Lead developers can use this checklist to understand how they might assist the release manager in achieving a release of the FIO protocol.

Release Stakeholders

Whenever checklist items are initiated or completed, communications should be posted to the interested stakeholders so they can remain in the loop with respect to the progress of a release.

Marketing – marketing/marketing discord channel (tag ash).

Account management – internal/account management (Emily)

QA – core team private on discord (Eric and Ben)

BPs – Fio main net and fio test net telegram channel, Block-producers under discussion groups.

Core team – core team private channel

Community developers – FIO developers telegram channel

Product managers – product discord channel

 

Please refer to the field descriptions below the checklist for more information on each item.

Task

Check Status

Tasks

Status / Deliverables

Task

Check Status

Tasks

Status / Deliverables

Release planning

 

 

 

Rollout planning

 

Create rollout/release plan for this effort (added actions, removed actions, table migrations, order dependent detailed instructions on how to roll out these changes successfully. include all necessary MSIGs)
Refer to release script for rollout/plan for this effort
Detailed instructions on how to verify that the rollout was performed successfully
Review the rollout plan and verification with architecture and QA/Integration teams

Refer to https://fioprotocol.atlassian.net/wiki/spaces/FD/pages/46596098 for release details

[fio 3.4 fio.contracts 2.8] Release Script

Stories and scoping

Excluded
Included
Create release management stories and subtasks for release
Estimate stories

 

Notes

 

Release branches come in two flavors;

  • Dev facing: Branch name has “-dev” appended

  • BP facing: Branch name does not have “-dev” appended.

BP-facing files to update

LocalNet

 

 

 

Local release rollout test

Included
Excluded
Validate release script, updated by developers for each feature, detailing all addaction, createfee, and new and existing contract updates
Perform local (single machine) test to validate release script

See: https://developers.fioprotocol.io/docs/developers/devnet#local-testing

https://fioprotocol.atlassian.net/browse/BD-3779

LocalNet Performance and Scaling

Included
Excluded
Verify performance and scalability tests run on LocalNet (and results added to Dev Spec)
Identify performance and scalability tests to run on DevNet

 

Devnet

 

 

 

DevNet Contract Testing

Included
Excluded
Perform DevNet test to validate release script
Create story to update the DevNet launch script

See: https://developers.fioprotocol.io/docs/developers/devnet#contract-testing-fiocontracts

https://fioprotocol.atlassian.net/browse/BD-3925

DevNet Fork Testing

Included
Excluded
Full devnet fio fork testing

See: https://developers.fioprotocol.io/docs/developers/devnet

This task has two flavors:

  • To test a forking change, and that processing executes as normal before and after the (DevNet customized) timestamp

  • To verify that no forking occurs in any BP node (standard DevNet testing)

While not necessary for this release fork testing performed.

DevNet Performance/Scalability testing

Included
Excluded
Perform DevNet performance and scalability tests

Performance and Scalability testing is a responsibility of the Developer and QA, however, it may be necessary to identify release level performance and scaling requirements

QA regression testing

Included
Excluded
fio.test regression tests completed and run cleanly on Devnet

Smoke test only

erc20

Included
Excluded
Deploy devnet contract
Test wrap / unwrap
Update dashboard with devnet contract
Dashboard testing

https://fioprotocol.atlassian.net/browse/DASH-320

erc721

Included
Excluded
Deploy devnet contract
Test wrap / unwrap
Update dashboard with devnet contract
Dashboard testing

https://fioprotocol.atlassian.net/browse/DASH-320

TestNet

 

 

 

fiosdk_typescript repo

Included
Excluded
Create release/n.n.x branch (where n=contract release number)
Create pre-release (Release Candidate - FIO Typescript SDK vx.x.x-rc1)

 

fio.test repo

Included
Excluded
Create release/n.n.x_m.m.x branch (where n=contract release number and m=chain release number)
Confirm that the package.json references the new fiosdk_typescript branch

https://fioprotocol.atlassian.net/browse/BD-3928

fio.devtools repo

Included
Excluded
Create release/n.n.x_m.m.x branch (where n=contract release number and m=chain release number)

https://fioprotocol.atlassian.net/browse/BD-3929

fio.contracts repo

Included
Excluded
Create release/n.n.x branch (where n=contract release number)
Create pre-release (Testnet Release Candidate - FIO Contracts vx.x.x-rc1)
Update release notes and Tag branch
Package release (Note: update local release branch (git fetch --all --tags))
Create PR to update hashes in fio.mainnet repo (releases-testnet.md)

https://fioprotocol.atlassian.net/browse/BD-3930

Release msigs

Included
Excluded
BP to create msig to set addaction and createfee for new actions
BP to create msig to create accounts, set perms and RAM limits
BP to create msigs for updated and new contracts
Review msigs
BP to post msigs to Testnet

https://fioprotocol.atlassian.net/wiki/spaces/FD/pages/498237502

https://fioprotocol.atlassian.net/browse/BD-3813

https://fioprotocol.atlassian.net/browse/BD-3861

https://fioprotocol.atlassian.net/browse/BD-3862

Communication

Included
Excluded
Socialize changes with all BPs on TestNet and the community and marketing
Monitor and coordinate the rollout with BPs

 

fio repo

Included
Excluded
Create release/m.m.x branch (where m=chain release number)
Create pre-release (TestNet Release Candidate - FIO vx.x.x-rc1)
Update release notes and Tag branch
Package release (Note: update local release branch (git fetch --all --tags))
Replay test by BP - Get w/Todd/Eric to review
Track chain upgrade of BPs

https://fioprotocol.atlassian.net/browse/BD-3931

TestNet validation

Included
Excluded
Run fio.test TestNet smoketest, confirm FIO Request getters still work
Confirm hashes in TestNet
Confirm ABIs deployed correctly (using ./clio get abi)
Confirm createfee added fees with correct endpoint and type
Confirm addaction added correct actions with correct contracts

Story to track development of fio.devtools so it automatically checks some of these: https://fioprotocol.atlassian.net/browse/BD-3056

TestNet Launch for Michael

Included
Excluded
Build & Launch TestNet node (replays, etc)

https://developers.fioprotocol.io/docs/chain/node-build

fio.erc20

Included
Excluded
Create pre-release (TestNet Release Candidate - FIO vx.x.x-rc1)
Update release notes and Tag branch
Update Dashboard with latest

https://fioprotocol.atlassian.net/browse/BD-4126

https://fioprotocol.atlassian.net/browse/BD-4136

fio.erc721

Included
Excluded
Create pre-release (TestNet Release Candidate - FIO vx.x.x-rc1)
Update release notes and Tag branch
Update Dashboard with latest

https://fioprotocol.atlassian.net/browse/BD-4127

https://fioprotocol.atlassian.net/browse/BD-4136

fio.oracle

Included
Excluded
Create pre-release (TestNet Release Candidate - FIO vx.x.x-rc1)
Update release notes and Tag branch
Get BP ETH and MATIC Testnet Addresses
Deploy release to oracles
Manual test of wrap/unwrap
Update dashboard and UAT

https://fioprotocol.atlassian.net/browse/BD-4141

https://fioprotocol.atlassian.net/browse/BD-4134

https://fioprotocol.atlassian.net/browse/BD-4135

https://fioprotocol.atlassian.net/browse/BD-4136

fit-wrap-status-page

Included
Excluded
Update to point to Testnet and UAT

https://fioprotocol.atlassian.net/browse/BD-4142

MainNet

 

 

 

Mainnet prep

Included
Excluded
Create upgrade checklist of BPs and integration partners
Work with account management to coordinate Mainnet rollout plan with the BP, wallet, and exchange community, watch over the execution and help to ensure rollout is completed in full.
Socialize release changes with all BPs and the community and marketing

 

fio.test repo

Included
Excluded
Merge release/n.n.x_m.m.x branch to master, create vn.n.n_m.m.m tag
Run test tag against new release

 

fio.devtools repo

Included
Excluded
Merge release/n.n.x_m.m.x branch to master, create vn.n.n_m.m.m tag
Update base contracts to current mainnet contracts
Update readme to show new version changes on fio
Merge to master and cut a new tag/release

 

fio.contract repo

Included
Excluded
Merge release/n.n.x branch to master, create vn.n.n tag
Move pre-release to release (Release - FIO Contracts vx.x.x)
Create PR for hashes on fio.mainnet
Encourage BPs to vote on new endpoint fee
msig fio.contracts release
Perform the rollout verification and report findings
Post msig links to main FIO Telegram channel so member can track progress

 

addaction and createfee msigs

Included
Excluded
msig to set addaction and createfee for new actions
Encourage BPs to vote on new endpoint fee

Example:

createfee '{"end_point":"transfer_tokens_fio_add","type":"1","suf_amount":"958695652"}'

addaction '{"action":"trnsloctoks","contract":"fio.token","actor":"eosio"}'

 

Contract msigs

Included
Excluded
BP to create msigs for updated and new contracts
Review msigs
BP to post msigs to Mainnet

 

fio repo

Included
Excluded
Merge release/m.m.x branch to master, create vm.m.m tag
Move pre-release to release (Release - FIO vx.x.x)
Generate .deb and .tgz build files using fio.package
Upload .deb and .tgz build files to AWS > S3 > fioprotocol > Mainnet for use with fio-docker
BP mainnet node upgrade checklist is complete (BP spreadsheet, or create one in Jira)
Perform the rollout verification and report findings
Confirm BP upgrade: https://health.fioprotocol.io

 

Mainnet validation

Included
Excluded
Confirm hashes of mainnet
Confirm versions of mainnet nodes (chain)
Confirm ABIs deployed correctly (using ./clio get abi)
Confirm createfee added fees with correct endpoint and type
Confirm addaction added correct actions with correct contracts

 

SDK and Wallet Testing

Included
Excluded
Run Typescript SDK regression tests against latest build, confirm new actions and getters are included in the tests
Run Kotlin SDK regression tests against latest build, confirm new actions and getters are included in the tests
Run GO SDK regression tests against latest build, confirm new actions and getters are included in the tests

 

fio.erc20

Included
Excluded
Move pre-release to release (Release - FIO vx.x.x)

https://fioprotocol.atlassian.net/browse/BD-4124

fio.erc721

Included
Excluded
Move pre-release to release (Release - FIO vx.x.x)

https://fioprotocol.atlassian.net/browse/BD-4125

fio.oracle

Included
Excluded
Get Mainnet ETH and MATIC addresses
Move pre-release to release (Release - FIO vx.x.x)
Deploy release to oracles
Manual test of wrap/unwrap
Update dashboard and UAT

https://fioprotocol.atlassian.net/browse/BD-4123

https://fioprotocol.atlassian.net/browse/BD-4130

https://fioprotocol.atlassian.net/browse/BD-4131

https://fioprotocol.atlassian.net/browse/BD-4132

https://fioprotocol.atlassian.net/browse/BD-4133

fio-wrap-status-page

Included
Excluded
Update dashboard and UAT

https://fioprotocol.atlassian.net/browse/BD-4143

Post-deployment

 

 

Mainnet validation - fio chain

Included
Excluded
Confirm versions of mainnet nodes (chain)
Create tracking spreadsheet
Confirm BP upgrade: https://health.fioprotocol.io

 

Update FIO Hosted API Nodes

Included
Excluded
Upgrade Registration site API nodes (2 load balanced nodes)
Notify Todd to upgrade Analytics API node (single State History node)