Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Msig deployment

  •  Create wiki page in Releases directory to track any msigs needed to deploy the feature

Example: [fio 3.3 fio.contracts 2.7] Release script

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 Master Release Plan for release details

See example: [fio 3.3 fio.contracts 2.7] Release script

Stories and scoping

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

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

Jira Legacy
serverSystem JIRA
serverId5f0d8161-d4cf-3d17-96b1-53b2b2b5013d
keyBD-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

What is the DevNet launch script?

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)

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

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 kiosk_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
  •  Create PR for hashes on fio.mainnet > releases-testnet.md

Release msigs

  •  Included
  •  Excluded
  •  BP to create msig to set addaction and createfee for new actions
  •  BP to create msigs for updated and new contracts
  •  Review msigs
  •  BP to post msigs to Testnet

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
  •  Replay test by BP (needs to be defined and documented
  •  Track chain upgrade of BPs

Testnet validation

  •  Included
  •  Excluded
  •  Run fio.test Testnet smoketest, confirm FIO Request getters still work
  •  Confirm hashes of 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:

Jira Legacy
serverSystem JIRA
serverId5f0d8161-d4cf-3d17-96b1-53b2b2b5013d
keyBD-3056

Testnet Launch*

  •  Included
  •  Excluded
  •  Build & Launch Testnet node (replays, etc)

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

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), creating the GitHub Release with new functionality, fixes, etc. documented.
  •  Build the FIO repo (use -P option) and Generate .deb and .tgz build files using fio.package
  •  Upload .deb and .tgz build files to;
    •  FIO Releases page for this release
    •  AWS > S3 > fioprotocol > Mainnet
  •  Update the FIO.docker repo (package release links in dockerfile) and create pull request notifying Todd of the new release artifacts
  •  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

FIO API Nodes

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

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

Post-deployment

Mainnet validation - fio chain

  •  Included
  •  Excluded

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)

SDK

Typescript SDK Release

  •  Included
  •  Excluded
  •  Create fiosdk_typescript release candidate tag from develop
  •  Test SDK release tag version against latest production releases (master branches) of fio, fio.contracts, fio.devtools, fio.test (If updates to test are needed, confirm fixes are put into the fio.test release/vn.n.n release branch and the develop branch (i.e., merge fixes from release branch))
  •  Merge develop to master and create production release tag from master
  •  Typescript: Publish new SDK release on NPM
  •  QA: Test published SDK release tag version against latest production releases (master branches) of fio, fio.contracts, fio.devtools, fio.test