From 0f5c995359ae8c5273fd9d3e22d18bc9ba02f46f Mon Sep 17 00:00:00 2001
From: Sean Madsen <sean@seanmadsen.com>
Date: Thu, 16 Feb 2017 17:42:54 -0700
Subject: [PATCH] extension lifecycle - add formal review process content from:
 https://docs.google.com/document/d/1nUfSqIpMQplrj6cv4Nvkxf-dR3NClghhKdB_Xw3MpYY/edit
 No substantive content changes, but quite a bit of content clean up during
 import

---
 docs/extend-stages.md | 130 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 124 insertions(+), 6 deletions(-)

diff --git a/docs/extend-stages.md b/docs/extend-stages.md
index 158cfa00..417e4d69 100644
--- a/docs/extend-stages.md
+++ b/docs/extend-stages.md
@@ -150,19 +150,100 @@ Based on these rules, we can fill out a full table of the workflow:
 | Deprecated	| Official	| Informal Discussion	| The author announces intent to deprecate in a high-visibility medium. If discussion is persuasive and no alternative maintainer comes forward, a senior member of core team flags the project as official.	| Locate the extension on the website. View a block which says, "Install Instructions", which includes drush/wp-cli commands.
 
 
-## Formal Review
+## Formal Review Process {:#formal-review}
 
-To designate an extension as *Stable*, someone must conduct a *Formal Review*
-and assess several criteria. As a rule of thumb, *Contributed* extensions are
-subject to a gentler review (fewer criteria), and *Official* extensions are
-subject to more stringent review (more criteria).
+Extensions must pass a *Formal Review* to become designated as *Stable* and made available for automated distribution through CiviCRM's in-app Extension management screen.
+
+The review process assess several criteria, and as a rule of thumb, *Contributed* extensions are subject to a gentler review (fewer criteria), and *Official* extensions are subject to more stringent review (more criteria).
 
 ### Who can review?
 
 * Contributed extensions must be reviewed by at least one peer/contributor.
 * Official extensions must be reviewed by at least one senior member of core team
 
-### Criteria for passing a review
+### Becoming an extensions reviewer
+
+To become an extensions reviewer, please take the following steps:
+
+1. Set up accounts on these sites *(if you need help, reach out through the [community resources](/basics/community))*
+    1.  [civicrm.org](https://civicrm.org/user/)
+    1.  [issues.civicrm.org](https://issues.civicrm.org/jira/login.jsp) - log in using your civicrm.org account
+1.  Contact the [CiviCRM Extension Ecosystem Working
+    Group](https://civicrm.org/working-groups/extension-ecosystem) and
+    ask to become an extension reviewer.  You'll be notified when the
+    necessary administrative steps have been completed.
+
+### Selecting an Extension for Review
+
+1. Choose one of these [unassigned extension review requests](https://issues.civicrm.org/jira/issues/?filter=28711).
+
+    Consider the following criteria while choosing:
+
+    -   Readiness: The issue should contain a link to an extension node on
+        civicrm.org. If no such link is provided, please request one in a
+        comment on the issue, and move on to another issue.
+    -   Age of request: All else being equal, older review requests should
+        be reviewed first.
+    -   Affinity/interest: Reviewers may wish to select an extension which
+        relates to functionality in which they have an interest or with
+        which they're especially familiar. On the other hand, there's no
+        requirement to have any special knowledge of the extension's
+        functionality if one is prepared to invest a little extra effort in
+        the review.
+    -   Neutrality: Reviewers should not have been involved in the
+        development of the extension. Employment or contracting
+        relationships can introduce conflicts of interest. Reviews should be
+        conducted by a neutral third party.
+
+1.  To claim a review, assign the relevant "Extension Review Request"
+    issue to yourself so that others know you're beginning the review.
+    When you are ready to begin the review, update the issue status to
+    "In Progress."
+
+!!! tip
+    You can also browse [*all* extension  review requests](https://issues.civicrm.org/jira/issues/?filter=28710), including assigned ones.
+
+### Conducting a Review
+
+Reviewers should follow these steps to conduct an extension review for
+automated distribution:
+
+1. Review the extension on at least one [supported CMS](https://docs.civicrm.org/user/en/latest/website-integration/choosing-your-cms/). (You don't need to test that it works on every CMS.)
+
+    !!! tip
+        Use [Buildkit](https://github.com/civicrm/civicrm-buildkit) to create the CMS environment on-demand.
+
+
+1. Download and install the most recent release of the extension.
+
+    !!! attention "Important"
+        If you clone the git repository of the extension, be sure to check out the *tag* for the most recent release. (Don't assume that the master branch is ready for review.)
+
+1.  Observe that the extensions meets relevant [criteria](#review-criteria) listed below.
+
+    1.  All criteria marked as "Required" must be met.
+    1.  At least some of the criteria marked as "Suggested" must be met.
+
+1.  Try to make the extension misbehave in any potential edge cases that occur to you. Note any significant failures.
+
+1.  Create a document to show the details of your review. It can be a google doc or `.odt` file or something similar.
+
+    * Copy/paste the [criteria](#review-criteria) table into your review document.
+
+    * Add an additional column to the table for your comments.
+
+    * Summarize all your tests and findings, positive or negative.
+
+    * Attach or link to your review document in the "Extension Review Request" issue that you assigned to yourself.
+
+    * Here is an [example review document](https://issues.civicrm.org/jira/secure/attachment/57472/ExtensionreviewUnsubscribeEmailDataEntryScreenEXT-27.odt) &mdash; *but don't copy-paste from this example document (use the criteria table below for the most up-to-date criteria).*
+
+
+1. Use all of the information gained in the review to decide whether to approve the extension.
+
+
+
+### Criteria for passing a review {:#review-criteria}
 
 | Category	| Criterion | Required for<br>*contributed*<br>extensions? | Required for<br>*official*<br>extensions? |
 |------ | ----- | :-----------------------------: | :---------------------: |
@@ -189,6 +270,43 @@ subject to more stringent review (more criteria).
 | Support	| Documentation is published	| *Suggested*	| **Required**
 | Support	| Issues are tracked in an open, public issue management system	| *Suggested*	| **Required**
 
+### Acting on review results
+
+#### If the extension needs work
+
+If a review indicates that the extension needs further improvement
+before it can be approved, the reviewer should take these steps:
+
+1.  Edit the extension's node on civicrm.org to set the field "Reviewed
+    and ready for automated distribution?" to "Needs work: This
+    Extension Release has been reviewed and needs work from the
+    developer before the review can continue"
+1.  Add a comment to the issue to notify the issue reporter that the
+    extension needs work; specifically mention the issues that prevent
+    approval as well as other items which the developer may want to
+    improve at their discretion.
+
+Continue monitoring the issue for updates from the developer, and respond in a timely way to answer questions or to conduct a follow-up review after changes have been made.
+
+#### If the extension is approved
+
+If a review indicates that the extension should be approved, the
+reviewer should take these steps:
+
+1.  Edit the extension's node on civicrm.org to set the field "Reviewed
+    and ready for automated distribution?" to "Yes: This Extension
+    Release has been reviewed and is ready for automated distribution."
+1.  Add a comment to the issue to notify the issue reporter that the
+    extension has been approved for automated distribution.  Also
+    mention any items which the developer may want to improve, even
+    though they did not prevent the extension from being approved.
+1.  Close the issue.
+1.  Optionally: Mention the extension approval on Twitter or in the
+    extensions channel at chat.civicrm.org.
+1.  Congratulate yourself on your contribution to CiviCRM. Thank you!
+
+
+
 ## Benefits
 
 Based on a project's maturity and stewardship, it may be eligible to use
-- 
GitLab