From 035661bfbee1d8cc5d6e648f29d24fa18f507b21 Mon Sep 17 00:00:00 2001 From: Jared Bass <118767796+jbass-oz@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:01:58 -0300 Subject: [PATCH 1/4] Create cip-protocol-contribution-policy.md --- drafts/cip-protocol-contribution-policy.md | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 drafts/cip-protocol-contribution-policy.md diff --git a/drafts/cip-protocol-contribution-policy.md b/drafts/cip-protocol-contribution-policy.md new file mode 100644 index 0000000..88930f0 --- /dev/null +++ b/drafts/cip-protocol-contribution-policy.md @@ -0,0 +1,99 @@ +--- +CIP: Unassigned +Title: Protocol Contribution Policy +Discussions: https://www.comp.xyz/t/cip-xx-protocol-contribution-policy +Status: Draft +Type: Meta Process +Author: Jared Bass (jbass-oz), Michael Lewellen (@cylon) +Contributors: +Created: 2023-1-19 +--- + +## Abstract + +This CIP describes process improvements to facilitate the development and evaluation of protocol contributions that ensures community feedback and quality assurance measures are achieved before adoption. This proposal defines a set of steps that each contribution should satisfy, organized into five phases, which capture the lifecycle of a contribution from ideation to final review before being submitted as an on-chain governance proposal. + +## Motivation + +The purpose of this proposal is to bring clarity to the process of contributing to the Compound protocol. The proposed details describe a very generalized approach that can be applied to most contributions. The described process intends to facilitate contributions by new contributors with minimal burden on continuing contributors. This proposal attempts to minimize prescribing the use of specific tools while maximizing traceability, transparency, and accessibility of evaluation criteria for the Compound community by offering multiple stages where feedback can be provided early and quality assurance steps satisfied. + +## Proposal Details + +A 5-phase process from idea to adoption to iteratively refine proposals. + +![alt text](../assets/cip-2/5-phases.png) + +Each phase may have multiple iterations of code refinements and opportunities to incorporate feedback. Efforts are organized into these phases to prepare contributions for review by each audience. Communication is encouraged throughout the phases. + +## Idea Review + +The goal of the first phase is to share an idea and incorporate community feedback. If applying for a grant, the refined idea should be formalized by the end of the phase and ready to submit. + +1. Provide enough detail to start a discussion as a post in the Compound Forum. +2. Determine the level of interest of the community before investing effort in a contribution. +3. Refine the idea and incorporate feedback from the community. +4. Determine scope and high-level technical details around the solution. +5. Optional: Draft a CIP-style proposal to receive additional feedback from CIP Editors. A CIP may not be necessary for every contribution but could be useful for soliciting community input in a formal manner, especially for contributions that require complex design decisions. + +## Development Review + +The goal of the second phase is to deliver feature-complete code with community developer feedback incorporated. This phase is appropriate for contributions that require new contracts or updates to existing contracts. + +1. Develop a draft of the contribution, complete with tests, to submit to community developers for review. +2. Announce the proposal in the Compound Forum, and optionally the #development Discord channel, with a detailed description of the contribution, expected behavior, and location of repository to solicit feedback. Use the keyword: “CIP-X: Development Review” in your forum post to indicate the status of your contribution. +3. If contract code is involved, request to be scheduled for an external audit. + +## Community Review + +The goal of the third phase is to finalize configuration and parameter values with community feedback incorporated. + +1. Submit a pull request and continue to add commits as needed. +2. Post revised contribution details, complete with testing and simulation results, to the Compound Forum for review. Use the keyword: “CIP-X: Community Review” in your forum post to indicate the status of your contribution. +3. If contract code is involved, provide a repository location and expected code freeze date to request a final estimate for an external audit. +4. Generate reports of testing and simulation results. + +## External Review + +The goal of the fourth phase is to remedy any audit issues. The contract version to deploy in the final phase should be the contract version audited. The only changes to code in this phase should be to remedy audit issues. Any remediation should be reviewed by the auditor. + +1. Submit the pull request and source control commit ID url of the latest contract version to the auditor. +2. Share latest testing and simulation results with audit status to the community on the Compound Forum and Discord. Use the keyword: “CIP-X: External Review” in your forum post to indicate the status of your contribution. +3. Share audit results and any other security recommendations to the Community on the Compound Forum and Discord. + +## Final Review + +The final phase proposes the changes on-chain. + +1. Generate reports of testing and simulation results following the audit based on the final code commit. Use the keyword: “CIP-X: Final Review” in your forum post to indicate the status of your contribution. +2. Generate simulation results of the migration and proposal. +3. Submit a pull request against the official protocol repository to incorporate changes. +4. Sign and execute the migration to submit the proposal on-chain. +5. Share the pull request with commit ID details and test and simulation results in an announcement to the community on the Compound Forum and Discord that the proposal is pending a vote. +6. Following a successful vote and execution of the proposal, test that the upgrade works as expected and merge the pull request, + +## Rationale + +This CIP is intended to formalize the process of contributing to the protocol. These phases resemble current best practices for contributions although generalized to apply to as many scenarios as possible. + +The necessity of a clear contribution process is supported by the experiences of past protocol upgrades that resulted in security issues. Despite attempts to test for bugs and provide early notice to community members for feedback, these security issues were not caught until too late. By utilizing a 5-step contribution process, there are now multiple opportunities for quality assurance measures to be verified and for security issues to be caught early. + +This process also provides contributors a formal path to completion that does not require them to make decisions about how and when to communicate their development progress and quality assurance efforts to the community. Given the decentralized nature of Compound development and governance, it’s all the more important that contribution expectations be clearly communicated to both contributors and DAO voters. + +## Expected Impact + +Adopting the proposal is expected to: + +* Facilitate contribution by new contributors with minimal burden on continuing contributors. +* Expedite Compound Governor proposal evaluation with early and regular communication of evaluation criteria. +* Increase participation in contributions and evaluation, +* Improve predictability of process duration especially for grant proposals. +* Bolster confidence of protocol changes with transparency and accessibility. +* Provide improved guidance for grant recipients to achieve milestones for payment in the Compound grants program. + +## Security Considerations + +By formalizing contribution policies for on-chain upgrades and deployments, a higher level of quality assurance can be achieved for each contribution and therefore improve overall protocol security. While this CIP does not describe specific tools to achieve each requirement, we expect that many of the existing testing and security tooling in Compound repositories will be utilized. Additional testing and security tooling may also be developed for Compound repositories to further align and automate this contribution process. + +# Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). From 8ab4d0d7b72264f1bbd6f7c8d3d6902b550b2d63 Mon Sep 17 00:00:00 2001 From: Jared Bass <118767796+jbass-oz@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:09:45 -0300 Subject: [PATCH 2/4] Create 5-phases.png --- assets/cip-2/5-phases.png | Bin 0 -> 2720 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/cip-2/5-phases.png diff --git a/assets/cip-2/5-phases.png b/assets/cip-2/5-phases.png new file mode 100644 index 0000000000000000000000000000000000000000..132f35dea9b184b5c225d19440a99797e1c33ce7 GIT binary patch literal 2720 zcmYM02{aViAIB$IhtWhCq>_=Ir4jFqUY0@_lMEW3ZLBqDERki#Rxx&uOhPC^ni-L0 zD1))@LTT*El4Ty|30a2l#(U@d|DWHv-}}Ay+Q2b-IlD=RB(HhcN7xE#vt?CjXs*y!l!$mqz(zpcN& zzq7NmwT)X`4yCcNsj;zb3 zYn#K_*-3P$Uj+b!%#a3pmV~k8^iMuxmrlf(q7vI<)P<6S%5P_T+1vs2M+n^Fl`DZZi;mR&c~yx@2%8!$|VGn;L!5Z16Ny2 z-%Fb|W;y{sSfB^*cnJD0*Td=t$=5uspEkYz?(4VGJlVNr`PCjcQ5$4l84=21ij+}L zoPLSFOPg!zWm3!_J6q%iQ+Njgf}2t20l3cSUwrFH5=OYQvb(=a?^i)pAPFJ-S;90N zE-`vL+cP#Nw&$VHLg*r^9GZ-wkm)~|mN;LmDKI883qT zVISI~wO%L~V4T#xyj{vrLZeFXu4b!?kH;-fbp!)RS^9n$8?2QZrEryEJyx>%XEEkW z4fO7LgLS8gsYO$;9mpR7-&eBox5kR%Wmoi4U-zP04gzPGF}Ran?nU*~Ys0-lOQWlQ z|MiL*T}PY=L1+4*=j4LvxRqP$Ro!XWKY8UtKyLH-?W$@%IEBwWtNfI&hG`Y%Wj>2V zC$MQ<3x-#l=+8xytVliUa;XB(AOni2$54*Ozh3$M!`LdPXP5k%8auaS(tW>sa0zQY zXCbfrka?kD#lUg-v8eP?Nf`3Y*hblahK~K+70U+e{Vc1y-VfRg@2iZyF>%)-<(@9t zuf%KAd5`N#28sQ4J>tWNdO(k6f@OlKtyYzNeBY@B`ens(Micj0_!B`Y^hPRp4^`gT zebhQxhge}~lJ+0PJ*tdq~*Yz81NZPKjV2#fvDI&F@=VtPpHB`KEkg9d==85J$RN8F|POQY>2E_To z4gDi85$-j*Baa9iSrfI$;?D2|T_;ru3Nf$%)%LW>H_I!Cb^y*D+E;7xQzn z(@Lk=QP)qIl#s`mL%E))xgjcVHMsR`OPt~Fzi<4M|5rs}^`7vP_@fho*;ZY8K_IC)LqZM}ngJ@b}oioaf$ zZPA2hOH2B*PQLz>hl1KDc>COkv^s2Hos`i0UwDAj-mr$&}e(aZWk z02(gZLh)uGT|xU@2+M%+EIYZIY3>4i4vy=#?}j(HdRiMN_{LT>RNr+UHLE@=r;wykw({&qIXEL&;6pP9F*+ENl&s8K-b4fgbdqI zoPLY{$zL%C<rbWx3M%Xop>qq?Untu!LIR>f}#f2_x5-acbqtB**>B z&tjeOg96$|)I))3!G?`3#pH} z5WI@FEY3#h(40Sl$##Hisn7IK2WZ|u3pL%r-{k&#fm0(8=gN}={k{A*dS0`b| zX_v&5Csh7sol9&%bw<9Km`1E+5^H|HDq5OV&{u&dsJ4xSUNxzx!l=ZZH)5plz1Z<0 zgqk(C4~Wy+j`Z_L3@AC#fDCzx_CZ6AOzz-=SN`U z!Q3RN(P9XhL|E4mTaQ{85tsEdY}@tt1xJxwr}v7!ZdYiP6+e%0&WWD305uvPe!Y-} LD1*29&XNBBJxnTL literal 0 HcmV?d00001 From 0dba0fb299551669d93dac1a22eebf8ab5ab1ebf Mon Sep 17 00:00:00 2001 From: Jared Bass <118767796+jbass-oz@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:10:55 -0300 Subject: [PATCH 3/4] Update cip-protocol-contribution-policy.md --- drafts/cip-protocol-contribution-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drafts/cip-protocol-contribution-policy.md b/drafts/cip-protocol-contribution-policy.md index 88930f0..24dba28 100644 --- a/drafts/cip-protocol-contribution-policy.md +++ b/drafts/cip-protocol-contribution-policy.md @@ -21,7 +21,7 @@ The purpose of this proposal is to bring clarity to the process of contributing A 5-phase process from idea to adoption to iteratively refine proposals. -![alt text](../assets/cip-2/5-phases.png) +![alt text](../assets/cip-protocol-contribution-policy/5-phases.png) Each phase may have multiple iterations of code refinements and opportunities to incorporate feedback. Efforts are organized into these phases to prepare contributions for review by each audience. Communication is encouraged throughout the phases. From 00e4ee6c7d80bb1eeaefef9b908961eaa2f37353 Mon Sep 17 00:00:00 2001 From: Jared Bass <118767796+jbass-oz@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:11:59 -0300 Subject: [PATCH 4/4] cip number unassigned --- .../5-phases.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename assets/{cip-2 => cip-protocol-contribution-policy}/5-phases.png (100%) diff --git a/assets/cip-2/5-phases.png b/assets/cip-protocol-contribution-policy/5-phases.png similarity index 100% rename from assets/cip-2/5-phases.png rename to assets/cip-protocol-contribution-policy/5-phases.png