[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 |
|---|---|---|---|
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 | |
Stories and scoping | Excluded Included | Create release management stories and subtasks for release Estimate stories |
|
Notes |
| Release branches come in two flavors;
| 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 | |
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 | |
DevNet Fork Testing | Included Excluded | Full devnet fio fork testing See: https://developers.fioprotocol.io/docs/developers/devnet This task has two flavors:
| 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 | |
erc721 | Included Excluded | Deploy devnet contract Test wrap / unwrap Update dashboard with devnet contract Dashboard testing | |
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 | |
fio.devtools repo | Included Excluded | Create release/n.n.x_m.m.x branch (where n=contract release number and m=chain release number) | |
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) | |
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 |
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 | |
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) | |
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 | |
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 | |
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 |
fit-wrap-status-page | Included Excluded | Update to point to Testnet and UAT | |
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:
|
|
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) | |
fio.erc721 | Included Excluded | Move pre-release to release (Release - FIO vx.x.x) | |
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 |
fio-wrap-status-page | Included Excluded | Update dashboard and UAT | |
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) |
|