FIO Development Guide
This document outlines the FIO development process and artifacts at a summary level. See individual artifacts for more detail.
Community dev hub
Several development artifacts are kept on the FIO Developers section of the Dev Hub. These artifacts support developers who are working in FIO repositories.
These include:
The versioning guide for fio, fio.contracts, the API, and the SDKs
The Git Branching and Release strategy used by FIO
The FIO Contract Development process overview
The Calculating RAM guidelines
Overview of Developer Tools
Feature Development
This section describes the FIP/Feature development process. The goal is to clearly define the areas of responsibility and the tasks required to get a FIP to development complete.
This process assumes several roles:
Product Manager (Prod) - This role is responsible for defining the FIP and acting as the end user for acceptance testing.
Project Manager (PM) - This role is responsible for setting up the development artifacts and monitoring the progress of the FIP through the different stages of development and QA.
Developer (Dev) - This role is responsible for all development related tasks.
Quality Assurance (QA) - This role is responsible for all QA related tasks.
The general process for FIP development is defined by several artifacts and proceeds as follows.
A FIP is proposed and accepted by the community and the development team has accepted the FIP into its queue
The PM copies the FIP Milestone Checklist into a new directory in the Development Documents wiki
The PM creates epics, stories, and subtasks for all tasks in the checklist. See the FIP-39 Epic for what this might look like.
The development and QA process proceeds in the general order of the checklist, though exact order is up to the PM, Dev, and QA.
There are several artifacts described in the checklist that are used to collect information during the development lifecycle. These include:
Development Spec
RAM Usage analysis
Testing guide
Performance and scaling tests
Deployment and rollout Guide
Once is the product manager has completed UAT, the FIP is ready to be bundled into a release (see next section).
Release
This section describes the release process. A release may consist of one or more bugs, FIPs, or hot fixes depending on the circumstance.
This process assumes several roles. Note that one individual may serve multiple roles. For example, the Release Manager may take on the release Project Management tasks.
Project Manager (PM) - This role is responsible for setting up the release artifacts and monitoring the progress of the release through the various stages.
Release Manager (Release) - This role is responsible for all release tasks.
Quality Assurance (QA) - This role is responsible for all QA related release tasks.
Block Producers - The custodians of the chain.
The general process for FIP releases is defined by several artifacts and proceeds as follows.
A Release is proposed and accepted by the block producers and the technology team
The PM copies the Release Checklist into a new directory in the Releases wiki
The PM creates epics, stories, and subtasks for all tasks in the checklist.
The release process proceeds in the general order of the checklist, though exact order is up to the Release Manager.