members: convert to yaml

The static file format that we've held for a while fails to scale
at some point, as run out of ways to split data.  This patch
converts it all into a YAML file.

Change-Id: I4264c663d82077940873e2d3a1564b4e232daa9e
This commit is contained in:
Mohammed Naser 2019-03-07 10:46:29 -05:00
parent 587055d021
commit b441be89f0
6 changed files with 82 additions and 34 deletions

View File

@ -20,7 +20,7 @@ Current Members
===============
.. memberstable::
:datafile: ../../reference/members
:datafile: ../../reference/members.yaml
Reference documents and Resolutions
===================================

View File

@ -10,26 +10,11 @@
# License for the specific language governing permissions and limitations
# under the License.
import logging
import re
LOG = logging.getLogger(__name__)
# Full name (IRC) <E-mail> [expires in] {role}
_PATTERN = re.compile('(?P<name>.*)\s+\((?P<irc>.*)\)\s+\<(?P<email>.*)\>\s+\[(?P<date>.*)\](\s+\{(?P<role>.*)\})?')
import yaml
def parse_members_file(filename):
"""Load the members file and return each row as a dictionary.
"""
with open(filename, 'r') as f:
for linum, line in enumerate(f, 1):
line = line.strip()
if not line or line.startswith('#'):
continue
m = _PATTERN.match(line)
if not m:
LOG.warning('Could not parse line %d of %s: %r' %
(linum, filename, line))
continue
yield m.groupdict()
return yaml.load(f)

View File

@ -1,14 +0,0 @@
# Full name (IRC) <E-mail> [expires in] {role}
Alexandra Settle (asettle) <asettle@suse.com> [March 2020]
Doug Hellmann (dhellmann) <doug@doughellmann.com> [October 2019]
Ghanshyam Mann (gmann) <gmann@ghanshyammann.com> [October 2019]
Graham Hayes (mugsie) <gr@ham.ie> [March 2020]
Jean-Philippe Evrard (evrardjp) <jean-philippe@evrard.me> [October 2019]
Jeremy Stanley (fungi) <fungi@yuggoth.org> [October 2019]
Jim Rollenhagen (jroll) <jim@jimrollenhagen.com> [March 2020]
Julia Kreger (TheJulia) <juliaashleykreger@gmail.com> [October 2019]
Lance Bragstad (lbragstad) <lbragstad@gmail.com> [October 2019]
Mohammed Naser (mnaser) <mnaser@vexxhost.com> [March 2020] {chair}
Rico Lin (ricolin) <rico.lin.guanyu@gmail.com> [March 2020]
Thierry Carrez (ttx) <thierry@openstack.org> [March 2020]
Zane Bitter (zaneb) <zbitter@redhat.com> [March 2020]

77
reference/members.yaml Normal file
View File

@ -0,0 +1,77 @@
- name: Alexandra Settle
irc: asettle
email: asettle@suse.com
date: March 2020
role: null
- name: Doug Hellmann
irc: dhellmann
email: doug@doughellmann.com
date: October 2019
role: null
- name: Ghanshyam Mann
irc: gmann
email: gmann@ghanshyammann.com
date: October 2019
role: null
- name: Graham Hayes
irc: mugsie
email: gr@ham.ie
date: March 2020
role: null
- name: Jean-Philippe Evrard
irc: evrardjp
email: jean-philippe@evrard.me
date: October 2019
role: null
- name: Jeremy Stanley
irc: fungi
email: fungi@yuggoth.org
date: October 2019
role: null
- name: Jim Rollenhagen
irc: jroll
email: jim@jimrollenhagen.com
date: March 2020
role: null
- name: Julia Kreger
irc: TheJulia
email: juliaashleykreger@gmail.com
date: October 2019
role: null
- name: Lance Bragstad
irc: lbragstad
email: lbragstad@gmail.com
date: October 2019
role: null
- name: Mohammed Naser
irc: mnaser
email: mnaser@vexxhost.com
date: March 2020
role: chair
- name: Rico Lin
irc: ricolin
email: rico.lin.guanyu@gmail.com
date: March 2020
role: null
- name: Thierry Carrez
irc: ttx
email: thierry@openstack.org
date: March 2020
role: null
- name: Zane Bitter
irc: zaneb
email: zbitter@redhat.com
date: March 2020
role: null

View File

@ -26,7 +26,7 @@ def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'--member-file',
default='reference/members',
default='reference/members.yaml',
help='location of members file, (%(default)s)',
)
parser.add_argument(

View File

@ -428,7 +428,7 @@ def main():
tc_members = [
m.get('name')
for m in members.parse_members_file('./reference/members')
for m in members.parse_members_file('./reference/members.yaml')
]
gov = governance.Governance.from_local_repo()