From 3c34f73983a0a73c4620f6ed457ad8b3b861b663 Mon Sep 17 00:00:00 2001
From: Victor Poughon <victor.poughon@cnes.fr>
Date: Fri, 2 Feb 2018 09:32:45 +0000
Subject: [PATCH] DOC: Update CONTRIBUTING and PSC with Julien's review

---
 CONTRIBUTING.md | 35 +++++++++++++++++------------------
 PSC.md          | 20 ++++++++------------
 2 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fbc7511e69..5f8a409abb 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -33,16 +33,9 @@ help fixing the bug quicker. Remember to add as much information as possible!
 ## Feature requests and discussions
 
 Feature requests are welcome! Generally you are welcome to simply [open an issue](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/issues)
-and discuss your idea there.
+and discuss your idea there. For more complex requests there is an issue
+template for in depth description called 'Request for Comments'.
 
-For complex and potentially controvertial ideas, we use Request for Comments.
-RFCs are normal issues but which will need more discussion from the community
-and usually a formal PSC vote. For this, use the 'Request for Comments' issue
-template on gitlab. Older RFCs live on the [wiki](https://wiki.orfeo-toolbox.org/index.php/Requests_for_Comments).
-More long term ideas are collected on the wiki [Wishlist](https://wiki.orfeo-toolbox.org/index.php/Wishlist).
-
-For more peripheral contributions which do not belong in the main OTB
-repository [Remote Modules](#remote-modules) are also a great option.
 
 ## Documentation improvements
 
@@ -62,7 +55,8 @@ Clone the repository, create a feature branch, commit your changes, push the
 feature branch to a fork (or the main repository if you are a core developer),
 then send a merge request.
 
-Note that we also accept PRs on our [GitHub mirror](https://github.com/orfeotoolbox/OTB).
+Note that we also accept PRs on our [GitHub mirror](https://github.com/orfeotoolbox/OTB)
+which we will manually merge.
 
 ### Commit message
 
@@ -70,7 +64,7 @@ On your feature branch, write a good [commit message](https://xkcd.com/1296/):
 short and descriptive. If fixing an issue or bug, put the issue number in the
 commit message so that GitLab can [crosslink it](https://docs.gitlab.com/ce/user/project/issues/crosslinking_issues.html).
 You can prefix your commit message with an indicating flag (DOC, BUG, PKG,
-TEST, SuperBuild, etc.) or the name of the module you are changing.
+TEST, SuperBuild, etc.).
 
 Standard prefixes for OTB commit messages:
 
@@ -87,7 +81,6 @@ For example, here are some good commit messages:
     BUG: #1701 Warn users if parameter string is unset
     DOC: Fix typo in Monteverdi French translation
     COMP: Allow GeoTIFF and TIFF to be disabled when no 3rd party drags them
-    Learning/Unsupervised: Add KMeans Shark implementation
 
 ### Merge request
 
@@ -98,12 +91,18 @@ template.
 The merge request will then be discussed by the community and the core OTB
 team. Larger contributions will require code review and a formal PSC vote.
 
+* Merge requests can not be merged until all discussions have been resolved (this is enforced by GitLab).
+* Merge requests **must receive at least 2 positives votes from PSC members** before being merged.
+* The merger is responsible for checking that the branch is up-to-date with develop and that the dashboard is ok.
+* Merge requests can be merged by anyone (not just PSC or RM) with push access to develop
+
 ## Remote modules
 
-[Remote Modules](https://wiki.orfeo-toolbox.org/index.php/Remote_Modules) are the prefered way if your contribution is about adding new classes or
-application to bring new features to OTB. Remote modules are just like regular
-modules, except they are not distributed inside OTB source code. Under some
-conditions (dependencies, official acceptance process, etc.), we are also able
-to distribute your remote module in the official standalone binaries. See [the wiki](https://wiki.orfeo-toolbox.org/index.php/Remote_Modules)
+[Remote Modules](https://wiki.orfeo-toolbox.org/index.php/Remote_Modules) are
+the prefered way if you wish to make your apps and filters available to the
+community while keeping control and maintenance of their sources. Remote
+modules are just like regular modules, except they are not distributed inside
+OTB source code. Under some conditions (dependencies, official acceptance
+process, etc.), we are also able to distribute your remote module in the
+official standalone binaries. See [the wiki](https://wiki.orfeo-toolbox.org/index.php/Remote_Modules)
 for more information.
-
diff --git a/PSC.md b/PSC.md
index 2e47504e74..c798cec66e 100644
--- a/PSC.md
+++ b/PSC.md
@@ -175,12 +175,11 @@ submits to vote the following release decisions:
 
 ### Process
 
--   Proposals are written up and submitted on the otb-developers mailing
-    list for discussion and voting, by any interested party, not just
-    committee members. Proposals are available for review for at least
-    three days before a vote can be closed. It is acknowledged that some
-    more complex issues may require more time for discussion and
-    deliberation.
+-   Proposals are written up and submitted as GitLab merge requests or on the
+    otb-developers mailing list for discussion and voting, by any interested
+    party, not just committee members. Proposals are available for review for at
+    least three days before a vote can be closed. It is acknowledged that some
+    more complex issues may require more time for discussion and deliberation.
 -   Respondents may vote “+1” to indicate support for the proposal and a
     willingness to support implementation.
 -   Respondents may vote “-1” to veto a proposal, but must provide
@@ -189,9 +188,9 @@ submits to vote the following release decisions:
 -   A vote of -0 indicates mild disagreement, but has no effect. A 0
     indicates no opinion. A +0 indicates mild support, but has no
     effect.
--   Anyone may comment and vote on proposals on the list, but only
-    members of the PSC's votes (including the Chair) will be counted
-    (“eligible voters”).
+-   Anyone may comment and vote on proposals on the list or on the merge request
+    thread, but only members of the PSC's votes (including the Chair) will be
+    counted (“eligible voters”).
 -   A proposal will be accepted if it receives at least +2 (including
     the proponent) and no vetos (-1)
 -   If a proposal is vetoed, and it cannot be revised to satisfy all
@@ -199,9 +198,6 @@ submits to vote the following release decisions:
     majority of all eligible voters indicating +1 is sufficient to pass
     it. Note that this is a majority of all committee members, not just
     those who actively vote.
--   Upon completion of discussion and voting the proposers should
-    announce whether they are proceeding (proposal accepted) or are
-    withdrawing their proposal (vetoed).
 -   The Chair adjudicates in cases of disputes about voting.
 
 A summary of discussions is published in a dedicated section of the wiki
-- 
GitLab