Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • Prod = Product Manager or whoever is leading the FIP

  • PM = Project Manager

  • Dev = Lead Developer

  • QA = Lead QA

Subject

Owner

Description

Jira Links and Notes

Definition

Create FIP

Prod

Follow FIP process to create and get to accepted

  • Include section on what will be done to ensure the feature is deployed as expected in Mainnet

https://github.com/fioprotocol/fips/blob/master/fip-0040.md

Create initial Epic or Story

PM

Create initial Epic or Story

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

Create FIP Dev Wiki Directory

PM

Create directory for FIP docs under Development Documents wiki

Done

Create stories and subtasks

PM

Subtasks/stories created for items in the Development Milestone Checklist

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

Requirements and Scoping

FIP-40 Requirements - Project kickoff

PM

Kickoff meeting held with Product Manager to review requirements

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

FIP-40 Requirements - Complete FIP

PM

FIP reviewed and moved to Accepted status

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

FIP-40 Master release schedule

PM

Update master release schedule with feature actions and endpoints

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

Design and Scoping

FIP-40 Requirements - Functional / Technical design

Dev

Complete technical design and save to wiki. Design draft should include a first draft of all elements outlined in the Development Spec.

Template: [FIP-nn] Development - Spec

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

FIP-40 Estimate stories

Dev

Each story should be unit of work that is deliverable in a 2 week sprint. An initial estimate should be included with every development story.

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

FIP-40 Design review

Dev

Functional spec approved by architecture champions and team

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

FIP-40 Design - Update FIP

Dev

Update FIP with any changes resulting from design review

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

Development

FIP-40 Complete development

Dev

Complete all development for feature. This may include multiple stories and subtasks for larger features. Include link to PR in story.

Includes

  • Create bug/feature branch and draft PR for new feature (e.g., feature/fip-16-lock-tokens, See: https://developers.fioprotocol.io/docs/developers/git )

  • Create fio.devtools branch and draft PR for new feature (e.g., feature/fip-16-lock-tokens). Add new fees and actions, etc.

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

FIP-40 Ram bump analysis

Dev

Determine RAM allocation for new actions and set RAM bump accordingly. This information should be added to the FIP.

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

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

FIP-40 Fee analysis

Dev

Estimate initial fees for all actions.

In cases where the action requires additional RAM, the fees should be correlated with the RAM estimates. This informationshould be added to the FIP

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

FIP-40 ABI Validation

Dev

Validate json for any new ABIs or ABIs that have been updated. If deploying new contract, make sure ABI copy command is in fio.devtools contracts/build.sh

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

FIP-40 History Plugin

Dev

For transactions that automatically create accounts (e.g., regdomain) if the public key used is new, we need to make sure that the correct entries are added to the the history_plugin.cpp. See for example: https://github.com/fioprotocol/fio/pull/363/files

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

FIP-40 Dev - Update FIP and development spec

Dev

Update the FIP and development spec to make sure they are aligned with the latest code. This includes:

  • Ensure the error messages are the same between the code and the FIP.

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

FIP-40 Code review

Dev

Code review of PR from all core devs, release management, and QA

FIO does DAC-style code reviews wherein the following core team members are required to review all major PRs:

  • Core developers - Full review

  • Security - Full review. TBD on how this will be handled.

  • QA and Release Management- Summary review to acknowledge understanding that the feature is in development

If a developer approves a PR, it is assumed that they have taken the time to do a thorough review. Just checking the box is inadequate and puts the chain at risk. If a bug or structural issue escapes, we will be taking joint responsibility for not finding it during our reviews. If a developer wants to dig deeper and has questions for the main developer, they should initiate a discussion with the developer.

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

FIP-40 Deployment release guide

Dev

Create deployment release guide. This is used by release management to define needed msigs during testnet and mainnet deployments

Includes:

  • New actions (addaction)

  • New fees (createfee)

  • List of contracts modified

Template: [FIP-nn] Deployment and rollout guide

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

Unit Testing

FIP-40 Unit testing - Action and getter unit tests

Dev

Includes initial development of unit tests for handoff to QA:

  • Create fio.test branch and draft PR for initial unit tests created on fio.test (e.g., feature/fip-16-lock-tokens)

  • Development of initial action and getter unit tests

  • Tests run cleanly

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

FIP-40 Unit testing - Performance tests

Dev

Create first level performance testing results reviewed with architecture champions (can be performed on dev machine, try to uncover any obvious perf limits)

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

FIP-40 Dev - Test guide

Dev

Add testing info to this story for QA. This is a brainstorming list of items from the developer to make sure specific items are tested. Includes:

  • Note any areas of existing code that are impacted by the new feature and should be tested as part of this feature testing

  • Any use cases that need to be included

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

FIP-40 Dev - QA handoff

Dev

Review code and unit tests with QA and Release Management.

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

SDKs

FIP-40 SDK updates

PM

Create epic/stories to track SDK Release (if changes are needed for new features)

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

QA

FIP-40 QA - Feature Testing

QA

Complete feature testing, including:

  • Create test cases / test plan

  • Review test plan with lead developer

  • Create tests in fio.test

Deliverables include:

  • fio.test enhanced with functional tests

  • Tests run cleanly

  • Functional tests well documented (in fio.test) and reviewed with team

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

FIP-40 QA - Performance testing

QA

Complete performance testing, including:

  • Work with Dev Lead to create performance test plan

  • fio.test enhanced with performance tests

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

FIP-40 QA - History node testing

QA

Test against node with V1 History and confirm no errors in log file (add results to Dev Spec)

For transactions that automatically create accounts (e.g., regdomain) if the public key used is new, we need to make sure that the correct entries are added to the the history_plugin.cpp. See for example: https://github.com/fioprotocol/fio/pull/363/files

To test, the transaction should be run, and a history get_actions for the target account should show the (regdomain, etc.) action.

When released to testnet, it should be confirmed that http://bloks.io shows the appropriate transaction history.

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

FIP-40 Testnet smoketest

QA

Add new actions and getters to testnet-smoketest.js script.

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

FIP-40 QA - Test review

QA

System and performance tests and results reviewed with Dev team

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

UAT

FIP-40 UAT - Install Merge to develop and install release on DEV server

PM

Merge feature to develop (if not already done).

Install release on DEV server. DEV1 server (http://18.237.87.177:8889)

This is a task to ensure that their feature or fix is on a publicly accessible DEV server so it can be reviewed by Product Management. This should be done after system testing is complete.

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

FIP-40 UAT - System testing

QA

Complete system testing, including:

  • All bugs and outstanding items completed

  • JS tests completed and run cleanly against DEV server

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

FIP-40 UAT - Confirm feature and QA complete

PM

Confirm all bugs and outstanding items completed

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

FIP-40 UAT - Product Management signoff

PM

Get signoff from Product Management

  • Include copy of the fio.test output for the FIP Epic

  • Move Epic to Ready for UAT

  • Notify Pawel on Discord

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

...