This is an automated email from the ASF dual-hosted git repository.
curcuru 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 9d87f0d8 Fixup to reflect single IRC meeting style (post-2022)
9d87f0d8 is described below
commit 9d87f0d80e87dc9af6bdee5564595563d5b77692
Author: Shane Curcuru <[email protected]>
AuthorDate: Fri Jan 20 15:36:05 2023 -0500
Fixup to reflect single IRC meeting style (post-2022)
---
www/members/meeting.cgi | 95 ++++++++++++++-----------------------------------
1 file changed, 26 insertions(+), 69 deletions(-)
diff --git a/www/members/meeting.cgi b/www/members/meeting.cgi
index 80317380..2c777096 100755
--- a/www/members/meeting.cgi
+++ b/www/members/meeting.cgi
@@ -10,6 +10,7 @@ require 'wunderbar/jquery/stupidtable'
require 'whimsy/asf/meeting-util'
DTFORMAT = '%A, %d %B %Y at %H:%M %z'
TADFORMAT = '%Y%m%dT%H%M%S'
+ICS_FILE = 'ASF-members-meeting.ics.erb' # see Meetings/meeting-template/
ERROR_DATE = DateTime.new(1970, 1, 1) # An obvious error value 8-)
# Return DateTime from DTSTART in an .ics file
@@ -80,10 +81,8 @@ _html do
today = Date.today
# Calculate quorum
num_members, quorum_need, num_proxies, attend_irc =
ASF::MeetingUtil.calculate_quorum(cur_mtg_dir)
- # Use ics files for accurate times; see create-meeting.rb
- nom_date = ics2dtstart(File.join(cur_mtg_dir,
"ASF-members-#{mtg_date.strftime('%Y')}-nominations-close.ics"))
- m1_date = ics2dtstart(File.join(cur_mtg_dir,
"ASF-members-#{mtg_date.strftime('%Y')}.ics"))
- m2_date = ics2dtstart(File.join(cur_mtg_dir,
"ASF-members-#{mtg_date.strftime('%Y')}-reconvene.ics"))
+ # Use ics files for accurate times; see create-meeting.rb; note change in
process 2022/2023
+ ics_date = ics2dtstart(File.join(cur_mtg_dir, ICS_FILE))
ROSTER = "/roster/committer"
_whimsy_body(
title: PAGETITLE,
@@ -101,40 +100,38 @@ _html do
'https://lists.apache.org/[email protected]' => 'Read
members@ List Archives'
},
helpblock: -> {
- if m2_date == ERROR_DATE or m1_date == ERROR_DATE or nom_date ==
ERROR_DATE
+ if ics_date == ERROR_DATE
_p do
_center do
- _strong 'One or more .ics files are missing!'
+ _strong 'Note: .ics file seems to be missing!'
_br
_ 'Expecting to find:'
_br
_ul do
- _li "ASF-members-#{mtg_date.strftime('%Y')}.ics"
- _li "ASF-members-#{mtg_date.strftime('%Y')}-reconvene.ics"
- _li
"ASF-members-#{mtg_date.strftime('%Y')}-nominations-close.ics"
+ _li ICS_FILE
end
end
end
end
- if today > m2_date # Based on the reconvene date
+ if today > ics_date # Based on the reconvene date
_p do
_ %{
The last Annual Member's Meeting was held
#{last_mtg_date.strftime('%A, %d %B %Y')}. Expect the
next Member's meeting to be scheduled between 12 - 13 months
after the previous meeting, as per
}
_a 'https://www.apache.org/foundation/bylaws.html#3.2', 'the
bylaws 3.2.'
- _ 'Stay tuned for a [NOTICE] email on members@ announcing the next
meeting. The below information is about the '
+ _ 'Stay tuned for a [NOTICE] email on members-notify@ announcing
the next meeting. The below information is about the '
_strong 'LAST'
_ " Member's meeting."
end
else
_p do
_ "The Member's Meeting starts at "
- _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{m1_date.strftime(TADFORMAT)}"
do
+ _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{ics_date.strftime(TADFORMAT)}"
do
_span.glyphicon.glyphicon_time ''
- _ " #{m1_date.strftime(DTFORMAT)} "
+ _ " #{ics_date.strftime(DTFORMAT)} "
end
- _ "as an online IRC meeting for about an hour. We then recess for
48 hours while ballots are sent via email for voting. Results will be announced
when we reconvene (at the same time of day) for about half an hour."
+ _ "as an online IRC meeting for about an hour. REMEMBER: all
voting is done by email the week BEFORE the IRC meeting"
end
_p do
_ 'Please read below for a Timeline of Meeting activities and
links to how you can take action, or see additional links to the right. '
@@ -152,12 +149,12 @@ _html do
}
) do
# if there is a new meeting in the offing, use its date
- m1_date = mtg_date if m1_date == ERROR_DATE && cur_mtg_dir > last_mtg_dir
+ # Old logic for two half meeting m1_date = mtg_date if m1_date ==
ERROR_DATE && cur_mtg_dir > last_mtg_dir
help, copypasta = ASF::MeetingUtil.is_user_proxied(cur_mtg_dir, $USER)
# attendance = JSON.parse(IO.read(File.join(MEETINGS,
'attendance.json')))
user = ASF::Person.find($USER)
_div id: 'personal'
- _whimsy_panel("#{user.public_name} - Personal Details For Meeting
#{m1_date.strftime(DTFORMAT)}", style: 'panel-primary') do
+ _whimsy_panel("#{user.public_name} - Personal Details For Meeting
#{ics_date.strftime(DTFORMAT)}", style: 'panel-primary') do
_p do
if help
_p help
@@ -181,16 +178,12 @@ _html do
end
_div id: 'nominations'
- _whimsy_panel("Timeline: Nomination Period (now until
#{nom_date.strftime(DTFORMAT)})", style: 'panel-default') do
+ _whimsy_panel("Timeline: Nomination Period (until 10 days BEFORE
meeting)", style: 'panel-default') do
_p do
- _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{nom_date.strftime(TADFORMAT)}"
do
- _span.glyphicon.glyphicon_time ''
- _em '(time)'
- end
_ 'Before the meeting, any Member may nominate people either for the
Board, or as a New Member Candidate. Much of this discussion happens on
members@ mailing list. Remember, all new nominated names must be checked into
SVN 10 days before the meeting.'
- _ 'Also, you should submit a proxy if you might not attend the first
half of the meeting.'
+ _ 'Also, you should submit a proxy if you might not attend the the
meeting.'
_ul do
- ['nomination_of_board.txt', 'nomination_of_members.txt',
'/members/proxy.cgi'].each do |f|
+ ['board_ballot.txt', 'nominated-members.txt',
'/members/proxy.cgi'].each do |f|
_li do
emit_link(svn_mtg_dir, f, ASF::MeetingUtil::MEETING_FILES[f])
end
@@ -202,12 +195,8 @@ _html do
_div id: 'seconds'
_whimsy_panel("Timeline: Seconds Period (last ten days before meeting)",
style: 'panel-default') do
_p do
- _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{nom_date.strftime(TADFORMAT)}"
do
- _span.glyphicon.glyphicon_time ''
- _em '(time)'
- end
- _ 'The last 10 days before the meeting, you may add seconds to
existing nomination files, but no new nominations are allowed.'
- _ 'Also, you can still submit a proxy if you might not attend the
first half of the meeting.'
+ _ 'The last 10 days before the meeting, you may add seconds
(comments of support) to existing nomination files, but no new nominations are
allowed.'
+ _ 'Also, you can still submit a proxy if you might not attend the
the meeting.'
_ul do
['nominated-members.txt', '/members/proxy.cgi'].each do |f|
_li do
@@ -218,49 +207,17 @@ _html do
end
end
- _div id: 'firsthalf'
- _whimsy_panel("Timeline: First Half Of Meeting on IRC (at
#{m1_date.strftime(DTFORMAT)})", style: 'panel-primary') do
- _p do
- _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{m1_date.strftime(TADFORMAT)}"
do
- _span.glyphicon.glyphicon_time ''
- _em '(time)'
- end
- _ 'UPDATE 2022! The Meeting itself starts on IRC (use any client) on
the '
- _a 'Libera Chat network', href: 'https://web.libera.chat/'
- _ 'on channel '
- _b '#asfmembers'
- _ ' - please be sure your client is setup ahead of time, and sign in
with your Apache ID as nick if at all possible. Cloaks for Libera Chat are
available in committers/docs/libera-cloaks.txt'
- _br
- _ 'The '
- _code '#asfmembers'
- _ ' channel is for the official meeting itself; please raise your
hand if you have a formal question there. '
- _ 'Backchannel (jokes, comments, etc.) is the '
- _code '#asf'
- _ ' channel.'
- _br
- _ 'During the First Half of Meeting, the Board Chair will do Roll
call - please see instructions on how to mark present: '
- emit_link(svn_mtg_dir, 'README.txt',
ASF::MeetingUtil::MEETING_FILES['README.txt'])
- _ 'Once a quorum is reached, the Board Chair will lead the meeting,
with various officers presenting their reports in the Agenda.txt, which you can
read ahead of time.'
- _ 'Expect the First Half to last about an hour; then the Board Chair
will call for a recess. Remember: there is no voting in IRC.'
- _ul do
- ['agenda.txt', 'README.txt',
'https://www.apache.org/foundation/governance/meetings'].each do |f|
- _li do
- emit_link(svn_mtg_dir, f, ASF::MeetingUtil::MEETING_FILES[f])
- end
- end
- end
- end
- end
+ _div id: 'firsthalf' # Pre-2022 meeting anchor
_div id: 'recess'
- _whimsy_panel("Timeline: Meeting Recess - Time To Vote Via Email (approx
40+ hours)", style: 'panel-info') do
+ _whimsy_panel("Timeline: Voting By Email (week before meeting)", style:
'panel-info') do
_p do
- _ 'Shortly after the Board Chair calls the recess, the STeVe vote
monitors will send you an email '
+ _ 'One week before the meeting, the STeVe vote monitors will send
you an email '
_code 'From: [email protected]'
_ ' with your voting key URL.'
_ 'All voting is done via a simple web interface at vote.apache.org
after you login with your Apache ID.'
_b 'REMEMBER:'
- _ "Ballots close TWO HOURS BEFORE the meeting reconvenes - don't
wait to vote!"
+ _ "Ballots close ONE FULL DAY (24 hours) BEFORE the meeting starts -
don't wait to vote!"
_ul do
_li do
_a 'New Members Elected By Majority Yes/No/Abstain vote', href:
'https://www.apache.org/foundation/governance/meetings#how-member-votes-are-tallied'
@@ -273,13 +230,13 @@ _html do
end
_div id: 'secondhalf'
- _whimsy_panel("Timeline: Second Half Of Meeting (at
#{m2_date.strftime(DTFORMAT)})", style: 'panel-primary') do
+ _whimsy_panel("Timeline: Meeting (at #{ics_date.strftime(DTFORMAT)})",
style: 'panel-primary') do
_p do
- _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{m2_date.strftime(TADFORMAT)}"
do
+ _a href:
"http://www.timeanddate.com/worldclock/fixedtime.html?iso=#{ics_date.strftime(TADFORMAT)}"
do
_span.glyphicon.glyphicon_time ''
_em '(time)'
end
- _ 'The Second Half Meeting is short - it\'s primarily announcing
vote results and any last-minute announcements. Members do not need to attend
the second half; all results will be emailed or checked into SVN.'
+ _ 'The meeting is typically short - it\'s primarily briefly
reporting from officers, announcing vote results and any last-minute
announcements. Members do not need to attend the meeting if you proxied or
voted; all results will be emailed or checked into SVN.'
_ 'Various data files about the meeting (raw-irc-log, board voting
tally) will be checked in within a day after the meeting for historical
records.'
_ 'Votes for the Omnibus resolution are included in raw-irc-log. We
do not currently publish vote results for new member nominees.'
_ul do
@@ -315,7 +272,7 @@ _html do
end
# Most/all of these links should already be included above
- emit_meeting(cur_mtg_dir, svn_mtg_dir, m1_date, num_members,
quorum_need, num_proxies, attend_irc)
+ emit_meeting(cur_mtg_dir, svn_mtg_dir, ics_date, num_members,
quorum_need, num_proxies, attend_irc)
_div id: 'meeting-history'
_whimsy_panel("Member Meeting History", style: 'panel-info') do