-
Notifications
You must be signed in to change notification settings - Fork 325
21. Suggestions for CIP review
For reviewers: Subject matter experts of any field are eagerly sought by CIP editors to submit reviews on CIP/CPS pull requests in their fields of expertise. Spontaneous feedback is welcome but please also consider reviewing according to the stringent criteria below.
For authors: Especially when authoring a CIP for the first time, write as if a reviewer were working with you... expecting answers to the questions below.
CIP editors (rather than community reviewers) will generally scan a CIP / CPS submission as part of a "Triage" process which will check for:
- a sensible PR title, generally matching the title in the header,
beginning with
CIP-???? |
orCPS-???? |
before a candidate number is assigned - a complete & syntactically correct header, with all information
required by CIP-0001 or CIP-9999, including:
- at least one
Discussions:
link (since it should always include the current PR URL)
- at least one
- correct top-level (H2 or
##
) sections matching the document template files (with HTML comments removed from that template scaffolding) - a link in the Original Posting (OP) of the pull request pointing to
the
README.md
in the submitter's branch, to allow easy reading of the document - appropriate choice of open-source License (CC for mainly text, and Apache if it contains code sections)
Third party reviewers might also spot CIP/CPS format, grammar, spelling, and syntax mistakes and are also welcome to post these as GitHub corrections rather than waiting for authors or editors.
Here also can be applied some common-sense criteria, such as not making the Abstract too long (or including detail more properly contained in the latter sections).
Once a submission is free from glaring problems and confirmed readable, editors and those familiar with CIP subject matter should begin tagging authorities in that field: after first checking if they haven't already been tagged.
Often this will happen naturally in a review conversation… though in the original posting and/or early postings, authors & reviewers are also welcome to "cc" others by GitHub ID if they have done work in that field or have the potential to submit a qualified review themselves.
CIP editors will provide technical reviews whenever possible, but with the current number of active editors (3 at the time of this writing) we will generally not be able to cover enough topics in enough detail: so a fan-out of links to interested parties, stakeholders, and working groups should begin early in the review process. Afterward, CIP editors will monitor all these posted comments & conversations to ensure progress is being made and/or try to recruit additional review help.
Feel free to use the checklists in the following sections when getting ready to post your CIP or CPS draft or reviewing someone else's work, even if only in an attempt to confirm its readiness for progressing through the CIP process:
Motivation
- Does it provide the context of why a CIP is needed?
- Does it identify who/what will be affected if the CIP is not implemented?
- If it changes an established design, does it identify specific problems with that design?
- Does it identify use cases for the new method(s)?
Specification
- Does it cover the new method(s) in sufficient, unambiguous technical detail?
- Does the CIP stand alone (in addition to any resources externally linked, such as libraries or external repositories) to explain how to implement the new design?
- (if not a separate Versioning section) Does it cover how CIP versioning will be handled?
- If it characterises on-chain data, does it include a CDDL schema?
Rationale
- Does it identify previous and contemporary approaches to solving the same identified problem (or prove that there are no approaches yet)?
- Does it explain why the proposed method was chosen over other possible alternatives?
- Does it link to any such alternatives and/or quote enough detail from them for readers to understand the differences & validate the chosen method?
- Does it document any community consensus over these choices (or state/prove that the community has had not such opportunity)?
- Does it address issues of backward compatibility?
- If claiming to solve any CPS, does it address that CPS's Use cases, Goals, or Open Questions?
- Does it include the two vital sections Acceptance Criteria and Implementation Plan?
- Does the Acceptance Criteria read like a list of items to
confirm that a CIP is of
Active
status (i.e. confirmed, standardised implementation)? - Does the Implementation Plan indicate a list of steps taken (or to be taken) to confirm that a CIP is valid by those who will be implementing it?
- Are lists of to-do items (generally not done when a CIP is
formulated, to be done before a CIP is declared
Active
) formatted as markdown Task lists (checkboxes / tickboxes)?
Problem
- Does it explain why the CPS was written?
- If extended from a CIP, does it refer to that CIP explicitly & the background discussion from which the Problem Statement evolved?
Use cases
- Does it indicate to what designs potential solutions for this problem would be applied?
- Does it illustrate any current alternative methods and explain why they are unsuitable according to the problem definition?
Goals
- What criteria would any proposed solutions (CIPs) for this problem have for success?
- (if any) What projects have attempted to implement these goals, and what progress (if any) have they made?
- Does it rank these goals by relative importance (most significant goals first)?
- What metrics (if any) might be used to indicate whether the goals above are successful?
Open Questions
- Is the list of proposed questions useful to continue identifying possible solutions to the problem?
- Does the list of questions reflect knowledge & experience of possible vulnerabilities or design flaws?
Content of this page — according to authorship established by each "Page history" and site-wide Changelog — is licensed under CC-BY-4.0. Please create an issue or discussion to submit content suggestions or corrections.
Click Pages ⬆️ to see the Wiki section titles (if they're not already expanded).