This topic has come up a few times lately, and I find interesting, so I jumped to drafting something that I felt might work fairly well. Note that I’ve had no input into this, feel free to comment, use it as inspiration, work from it directly, disregard it, etc.
Possible RP Release Processes
General goals are:
- Transparency - Everyone should know what is happening in a given release, and why.
- Autonomy - Release teams must be free to make informed selections of what to work on, and include in a given release.
- Expansibility - Processes must scale to additional options and release teams.
To achieve this, we adopt several independent processes.
Process #1 - Technical Design Generation
This is a continuous process, with no date cut-offs or consideration of the release schedule.
- Both the team and the DAO produce bounties rewarding technical designs of functionality for the Rocket Pool protocol.
- Both the team and the DAO produce RPIPs containing technical designs of functionality that Rocket Pool protocol should have.
- Technical Design RPIPs are given both a priority score and a cost score.
- Priority Score - Technical Design RPIP ratification outputs a score rather than a binary.
- Poll options are: Strong yes, yes, abstain, no, strong no.
- Priority Score is yes - no, with some weighting for strong yes+no.
- Where a binary is required, positive priority scores are considered ratified.
- Cost Score - Release teams assign a cost score post-ratification of a Technical Design RPIP.
- Release cost units tbc, possibly dev-hours, possibly some abstraction.
- Costs are recorded for each release team if more than one.
- Priority Score - Technical Design RPIP ratification outputs a score rather than a binary.
- Ratified Technical Design RPIPs are listed in a living informational RPIP alongside their priority and cost scores.
PROCESS OUTPUT
A continuously updated Living RPIP including a list of possible inclusions for upcoming releases with
- Full technical specifications in the form of design RPIPs.
- A priority score generated by the pDAO.
- A cost generated by each release team.
Process #2 - Release Content
This is a repeating process that takes place prior to implementation work beginning for a given release.
- Releases can be scheduled well in advance or can be ad-hoc.
- Releases made by other release teams trigger another instance of this process that can happen in parallel.
Releases should be planned and communicated to have a certain amount of capacity for inclusions, based on the technical resources available to the release team.
- The release team examines the list of ratified Technical Design RPIPs and makes selections for the release.
- Items must be present in the list of ratified Technical Designs to be eligible for inclusion.
- Inclusions must be determined by the Release team on the basis of priority score, cost, judged benefit and interest.
- The release team produces a draft Informational RPIP containing
- A list of items proposed for inclusion in a given release.
- A justification for each item included.
- A list of any further input or decision-making that needs to take place prior to release, and how this will take place.
- A list of any conditions that may trigger changes to inclusions.
- Draft RPIP is discussed with the DAO, any edits are made by the Release team as they feel are appropriate.
- Informational Release RPIP is finalized without a vote.
PROCESS OUTPUT
A Final Informational RPIP summarizing plans for a given release with:
- A description of what is being included in a given release.
- A justification for each item included.
- A list of any further input or decision-making that needs to take place prior to release.
- A list of any conditions that will trigger changes to inclusions.
Process #3 Release Ratification
This is a process that takes place once for each release at the point where the technical work and audits have reached a stage where no significant changes to release content are expected.
- The release team drafts an RPIP containing the following information:
- The technical design RPIPs that have been implemented in the release.
- Any other minor changes/bug-fixes that have been included in the release.
- A brief report on the work done, the costs, and any issues that arose.
- Links to newly deployed contracts.
- Links to audits.
- Post-release plan for updates to documentation, any metrics to watch, etc.
- RPIP is discussed by the community, and any feedback on the post-release plan is implemented.
- Information in the RPIP is finalized: Links, Changes, etc.
- RPIP is voted on by the pDAO - This should be a formality at this point, all significant changes were already ratified individually.
- On-chain upgrade is voted on by the oDAO if the pDAO vote is successful.
- Change is live.
PROCESS OUTPUT
A set of agreed-upon changes has been implemented in the Rocket Pool protocol.