whimsical-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@apache.org
Subject [whimsy] branch master updated: Add more detail to project/icla application
Date Sun, 12 Nov 2017 04:29:33 GMT
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f42752  Add more detail to project/icla application
     new e6ecd4a  Merge branch 'master' of github.com:apache/whimsy
7f42752 is described below

commit 7f427528a099ce450d036b4ec9b2936399f3d62e
Author: Craig L Russell <craig.russell@oracle.com>
AuthorDate: Sat Nov 11 20:28:56 2017 -0800

    Add more detail to project/icla application
---
 www/project/icla/main.rb                        | 19 ++++----
 www/project/icla/views/actions/validate.json.rb | 58 ++++++++++++++++++++-----
 www/project/icla/views/app.html.rb              |  2 +-
 www/project/icla/views/pages/invite.js.rb       | 37 +++++++++++-----
 4 files changed, 85 insertions(+), 31 deletions(-)

diff --git a/www/project/icla/main.rb b/www/project/icla/main.rb
index 679bb65..bd710ac 100755
--- a/www/project/icla/main.rb
+++ b/www/project/icla/main.rb
@@ -1,5 +1,5 @@
 #
-# Server side setup
+# Server side setup for whimsy/project
 #
 
 require 'whimsy/asf'
@@ -23,16 +23,19 @@ end
 get '/invite' do
   @view = 'invite'
 
-  # get a complete list of PMCs
+  # get a complete list of PMC and PPMC names
   @pmcs = ASF::Committee.pmcs.map(&:name).sort
+  @ppmcs = ASF::Podling.list
+    .select {|podling| podling.status == 'current'}
+    .map(&:name).sort
 
-  # for non ASF members, limit PMCs to ones for which the user is a
-  # member of the PMC.
+  # allow user to invite contributors for PMCs of which the user is a member,
+  # or for podlings if the user is a member of the IPMC.
   user = ASF::Person.find(env.user)
-  unless user.asf_member?
-    committees = user.committees.map(&:name)
-    @pmcs.select! {|pmc| committees.include?(pmc)}
-  end
+  committees = user.committees.map(&:name)
+  ipmc = committees.include?('incubator')
+  @pmcs.select! {|pmc| committees.include?(pmc)}
+  @ppmcs.select! {|ppmc| committees.include?('incubator') | committees.include?(ppmc)}
 
   # render the HTML for the application
   _html :app
diff --git a/www/project/icla/views/actions/validate.json.rb b/www/project/icla/views/actions/validate.json.rb
index d6bf07b..d91116a 100644
--- a/www/project/icla/views/actions/validate.json.rb
+++ b/www/project/icla/views/actions/validate.json.rb
@@ -3,9 +3,50 @@ require 'net/http'
 require 'pathname'
 
 # find pmc and user information
+# all ppmcs are also pmcs but not all pmcs are ppmcs
+
 pmc = ASF::Committee.find(@pmc)
+ppmc = ASF::Podling.find(@pmc)
+pmc_type = if ppmc then 'PPMC' else 'PMC' end
+
 user = ASF::Person.find(env.user)
 
+# prototype mail text
+prototype_contributor =
+"Based on your contributions to #{pmc.name}, you are invited to submit an ICLA
+to The Apache Software Foundation, using the following form. Please see
+http://apache.org/licenses for details.
+"
+
+prototype_committer =
+"Congratulations! The #{pmc.name} #{pmc_type} hereby offers you committer privileges
+to the #{pmc.name} project.
+
+These privileges are offered on the understanding that you'll use them
+reasonably and with common sense. We like to work on trust rather than
+unnecessary constraints.
+
+Being a committer enables you to more easily make changes without needing to
+go through the patch submission process.
+
+Being a committer does not require you to participate any more than you already
+do. It does tend to make one even more committed ;-) You willprobably find that
+you spend more time here.
+
+Of course, you can decline and instead remain as a contributor, participating
+as you do now.
+
+This personal invitation is a chance for you to accept or decline in private.
+Either way, please let us know in reply to the private@#{pmc.name}.apache.org
+address only.
+"
+
+prototype_pmc =
+"You are also invited to become a member of the #{pmc.name} #{pmc_type}.
+Being a #{pmc_type} member enables you to help guide the direction of the project.
+If you accept, you will have binding votes on releases and new committers.
+"
+
 # validate email address
 begin
   Socket.getaddrinfo(@iclaemail[/@(.*)/, 1].untaint, 'smtp')
@@ -40,12 +81,6 @@ if @votelink and not @votelink.empty?
     _focus :votelink
   end
 
-  # verify that the user submitting the form is on the PMC in question
-  unless pmc and pmc.owners.include? user
-    _error "You must be on the #@pmc PMC to submit a vote link"
-    _focus :pmc
-  end
-
 end
 
 # add user and pmc emails to the response
@@ -62,12 +97,13 @@ link = "#{scheme}://#{env['HTTP_HOST']}#{path}"
 _token token
 _invitation %{Dear #{@iclaname},
 
-Based on your contributions, you are invited to submit an ICLA to The Apache
-Software Foundation, using the following form. Please see
-http://apache.org/licenses for details.
-
+#{prototype_contributor if @votelink.empty?}
+#{prototype_committer if not @votelink.empty?}
+#{prototype_pmc if @noticelink}
+Click on this link to accept:
 #{link}
 
-Thanks,
+Regards,
 #{user.public_name if user}
+On behalf of the #{pmc.name} project
 }
diff --git a/www/project/icla/views/app.html.rb b/www/project/icla/views/app.html.rb
index c606522..b357df9 100755
--- a/www/project/icla/views/app.html.rb
+++ b/www/project/icla/views/app.html.rb
@@ -373,7 +373,7 @@ _html lang: 'en', _width: '80' do
     _script src: 'app.js'
 
     _.render '#main' do
-      _Main data: {pmcs: @pmcs}, view: @view
+      _Main data: {pmcs: @pmcs, ppmcs: @ppmcs}, view: @view
     end
   end
 end
diff --git a/www/project/icla/views/pages/invite.js.rb b/www/project/icla/views/pages/invite.js.rb
index b39adc1..6c38fb3 100644
--- a/www/project/icla/views/pages/invite.js.rb
+++ b/www/project/icla/views/pages/invite.js.rb
@@ -8,6 +8,7 @@ class Invite < Vue
     @iclaemail = ''
     @pmc = ''
     @votelink = ''
+    @noticelink = ''
   end
 
   def render
@@ -43,22 +44,31 @@ class Invite < Vue
     end
 
     _div.form_group do
-      _label "PMC", for: 'pmc'
+      _label "PMC/PPMC", for: 'pmc'
       _select.form_control.pmc! required: true, onChange: self.setPMC, value: @pmc do
         _option ''
         Server.data.pmcs.each do |pmc|
           _option pmc
         end
+        _option '---'
+        Server.data.ppmcs.each do |ppmc|
+          _option ppmc
+        end
       end
     end
 
     _p %{
-      Fill the following field only if the person was voted by the PMC to become
-      a committer, or the person is an initial committer on a new project
-      accepted for incubation, or the person has been voted as a committer
-      on a podling.  For new incubator projects use the
-      http://wiki.apache.org/incubator/XXXProposal link; for existing projects
-      link to the [RESULT][VOTE] message in the mail archives.
+      For PMCs: Fill the following field only if the person was voted by the PMC
+      to become a committer.
+      Link to the [RESULT][VOTE] message in the mail archives.
+    }
+    _p %{
+      For PPMCs: Fill the following field only if the person is an initial
+      committer on a new project accepted for incubation, or the person
+      has been voted as a committer on a podling.
+      For new incubator projects use the
+      http://wiki.apache.org/incubator/XXXProposal link; for existing
+      podlings link to the [RESULT][VOTE] message in the mail archives.
     }
     _ 'Navigate to '
     _a "ponymail", href: "https://lists.apache.org"
@@ -73,10 +83,13 @@ class Invite < Vue
     end
 
     _p %{
-      Fill the following field only if the person was voted by the PMC to become
-      a PMC member, or voted by the PPMC to be a PPMC member. For existing
-      projects, link to the [NOTICE] message sent to the board.
-      For PPMCs, link to the [NOTICE] message sent to the incubator PMC.
+      For PMCs: Fill the following field only if the person was voted by the PMC
+      to become a PMC member. Link to the [NOTICE] message sent to the board.
+      The message must have been in the archives for at least 72 hours.
+    }
+    _p %{
+      For PPMCs: Fill the following field only if the person was voted by the
+      PPMC to be a PPMC member. Link to the [NOTICE] message sent to the incubator PMC.
       The message must have been in the archives for at least 72 hours.
     }
 
@@ -197,6 +210,7 @@ class Invite < Vue
       iclaemail: @iclaemail,
       pmc: @pmc,
       votelink: @votelink
+      #noticelink: @noticelink
     }
 
     @disabled = true
@@ -224,6 +238,7 @@ class Invite < Vue
     FormData.email = @iclaemail
     FormData.pmc = @pmc
     FormData.votelink = @votelink
+    FormData.noticelink = @noticelink
 
     # for demo purposes advance to the interview.  Note: the below line
     # updates the URL in a way that breaks the back button.

-- 
To stop receiving notification emails like this one, please contact
['"commits@whimsical.apache.org" <commits@whimsical.apache.org>'].

Mime
View raw message