move extra-atcs into projects.yaml

Having multiple file formats for data related to projects is resulting
in duplicated tooling. Having the extra ATC members listed outside of
projects.yaml is also allowing us to have different team names in the 2
files, which leads to other errors. Move the extra-atcs into
projects.yaml and update the rendering code to use the data from the new
location.

Change-Id: I9857af4caf23c18ff7e39cdfbf27330f53f31135
This commit is contained in:
Doug Hellmann 2016-01-13 20:16:24 +00:00 committed by Mike Perez
parent f46baecebd
commit 7fe63ce54d
3 changed files with 268 additions and 135 deletions

View File

@ -13,6 +13,7 @@
"""Show information about extra ATCs managed in this repo.
"""
import operator
import os
import re
@ -23,7 +24,7 @@ from docutils.parsers.rst.directives.tables import Table
from docutils.statemachine import ViewList
from sphinx.util.nodes import nested_parse_with_titles
_atcs_by_project = {}
import projects
class ExtraATCsTable(Table):
@ -34,7 +35,7 @@ class ExtraATCsTable(Table):
HEADER_MAP = {
'Full Name': 'name',
'Email': 'email',
'Expires In': 'expires_in',
'Expires In': 'expires-in',
}
option_spec = {'class': directives.class_option,
@ -68,12 +69,23 @@ class ExtraATCsTable(Table):
)
return [error]
project_members = _atcs_by_project.get(project, [])
all_teams = projects.get_project_data()
try:
team_data = all_teams[project]
except KeyError:
raise ValueError('No project %r in projects.yaml' % (project,))
project_members = team_data.get('extra-atcs', [])
# If we have no extra ATCs, skip building the table.
if not project_members:
return []
# Sort the project_members by name
project_members = sorted(
project_members,
key=operator.itemgetter('name'),
)
table_node = self.build_table(project_members, col_widths)
table_node['classes'] += self.options.get('class', [])
self.add_name(table_node)
@ -129,24 +141,6 @@ class ExtraATCsTable(Table):
_PATTERN = re.compile('(?P<project>.+):\s+(?P<name>.+)\s\((?P<email>.+)\)\s\[(?P<expires_in>.*)\]')
def _build_atcs_by_project(app):
filename = os.path.abspath('reference/extra-atcs')
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:
app.warn('Could not parse line %d of %s: %r' %
(linum, filename, line))
continue
info = m.groupdict()
project = info['project']
_atcs_by_project.setdefault(project, []).append(info)
def setup(app):
app.info('loading atcs extension')
app.add_directive('extraatcstable', ExtraATCsTable)
_build_atcs_by_project(app)

View File

@ -1,114 +0,0 @@
# Project: Full name (email) [expires in]
Horizon: Jaromir Coufal (jcoufal@redhat.com) [September 2015]
Horizon: Liz Blanchard (lsurette@redhat.com) [September 2015]
Horizon: Piet Kruithof (pieter.c.kruithof-jr@hp.com) [February 2016]
Keystone: David Chadwick (d.w.chadwick@kent.ac.uk) [December 2015]
Ceilometer: Edouard Thuleau (edouard.thuleau@cloudwatt.com) [September 2015]
Ceilometer: Jordan Pittier (jordan.pittier@cloudwatt.com) [September 2015]
Neutron: Cathy Hong Zhang (cathy.h.zhang@huawei.com) [February 2016]
OpenStack UX: Piet Kruithof (pkruithofjr@gmail.com) [September 2016]
OpenStack UX: Eric Peterson (eric.peterson1@twcable.com) [September 2016]
OpenStack UX: Ju Lim (julim@redhat.com) [September 2016]
OpenStack UX: Michael Hinnant (michael.hinnant@hp.com) [September 2016]
# Entries below here automatically generated based on co-authored-by
# Nova project
# (Repos for Nova are openstack/nova, openstack/python-novaclient)
Nova: Bogdan Teleaga (bteleaga@cloudbasesolutions.com) [September 2015]
# Foundation profile: 20147
Nova: Mouhammad-Nashwan Azhari (nmouhammad@cloudbasesolutions.com) [September 2015]
# Foundation profile: 20156
Nova: Pablo Fernando Cargnelutti (pablo.fernando.cargnelutti@intel.com) [September 2015]
# Primary author in: openstack/ironic
Nova: Fengqian Gao (fengqian.gao@intel.com) [September 2015]
# Primary author in: openstack/sahara, openstack/ceilometer, openstack/horizon, openstack/ironic, openstack/nova, openstack/zaqar
Nova: Sushma Korati (sushma_korati@persistent.co.in) [September 2015]
# Foundation profile: 5964
Nova: Dmitry Tantsur (dtantsur@redhat.com) [September 2015]
# Primary author in: openstack/horizon, openstack/ironic, openstack/python-ironicclient
Nova: Maithem (munshedm@vmware.com) [September 2015]
# Primary author in: openstack/python-glanceclient, openstack/nova
Nova: Ian Wells (iawells@cisco.com) [September 2015]
# Primary author in: openstack/nova
Nova: Shawn Hartsock (hartsocks@acm.org) [September 2015]
# Foundation profile: 10853
Nova: Cyril Roelandt (cyril.roelandt@enovance.com) [September 2015]
# Primary author in: openstack/python-glanceclient, openstack/python-neutronclient, openstack/python-tuskarclient, openstack/python-saharaclient, openstack/api-site, openstack/ceilometer, openstack/python-ceilometerclient, openstack/python-keystoneclient, openstack/horizon, openstack/python-heatclient, openstack/nova, openstack/python-novaclient, openstack/trove, openstack/python-troveclient
Nova: Ionut Balutoiu (ibalutoiu@cloudbasesolutions.com) [September 2015]
# Foundation profile: 20081
Nova: Ryan Moe (rmoe@mirantis.com) [September 2015]
# Foundation profile: 13294
Nova: Lucas Alvares Gomes (lucasagomes@gmail.com) [September 2015]
# Primary author in: openstack/cinder, openstack/ironic, openstack/python-ironicclient, openstack/nova
Nova: Navneet Kumar (navneetk@thoughtworks.com) [September 2015]
# Primary author in: openstack/nova
Nova: Zsolt Dudas (zdudas@cloudbasesolutions.com) [September 2015]
# Foundation profile: 14692 or 16553 (both same employer referenced)
Nova: Anuj Mathur (anujm@thoughtworks.com) [September 2015]
# Foundation profile: 9221
Nova: Chenchong Qin (qinchenchong@gmail.com) [September 2015]
# Primary author in: openstack/zaqar
Nova: Thomas Kaergel (kaergel@b1-systems.de) [September 2015]
# Foundation profile: 19424
Nova: Ryo Kurahashi (kurahashi-rxa@necst.nec.co.jp) [September 2015]
# Primary author in: openstack/ironic
Nova: Adam Gandelman (adamg@ubuntu.com) [September 2015]
# Primary author in: openstack/ironic, openstack/python-ironicclient
Nova: Andres Buraschi (andres.buraschi@intel.com) [September 2015]
# Primary author in: openstack/python-neutronclient, openstack/horizon
Nova: Claxton Correya (claxton@gmail.com) [September 2015]
# Primary author in: openstack/nova
Documentation: Beth Cohen (beth.cohen@verizon.com) [September 2015]
Documentation: Egle Sigler (ushnishtha@hotmail.com) [September 2015]
Documentation: Kevin Jackson (Kevin.Jackson@rackspace.co.uk) [September 2015]
Documentation: Scott Lowe (slowe@vmware.com) [September 2015]
Documentation: Sean Winn (sean.winn@cloudscaling.com) [September 2015]
Documentation: Vinny Valdez (vvaldez@redhat.com) [September 2015]
Release Cycle Management: Chuck Short (chuck.short@canonical.com) [January 2016]
Quality Assurance: Scott Moser (smoser@ubuntu.com) [May 2016]
# OpenStack I18n Team
# Temporarily add I18n ATCs there
# Chinese(China)
I18n: Ying Chun Guo (guoyingc@cn.ibm.com) [January 2016]
I18n: Jian Sheng Li (lijiangsheng1@gmail.com) [January 2016]
I18n: Yan Ran Zhou (coffee.zyr@gmail.com) [January 2016]
I18n: Qiu Lin Chen (chenqioulin_1983@163.com) [January 2016]
I18n: Jun Peng Liu (liujunpeng@inspur.com) [January 2016]
I18n: Zhe Ma (blkart.org@gmail.com) [January 2016]
I18n: Hai Feng Yan (yanheven@qq.com) [January 2016]
# French
I18n: Maxime Coquerel (max.coquerel@gmail.com) [January 2016]
I18n: Francois Bureau (bureaufrancois@gmail.com) [January 2016]
I18n: Corinne Verheyde (bureaufrancois@gmail.com) [January 2016]
I18n: Jean-Francois Taltavull (jftalta@gmail.com) [January 2016]
I18n: Gael Rehault (gael01@gmail.com) [January 2016]
# Russian
I18n: Nikita Burtsev (nikita.burtsev@gmail.com) [January 2016]
I18n: Ilya Alekseyev (ilyaalekseyev@acm.org) [January 2016]
I18n: Ainur Shakirov (shakirov.aynur@cg.ru) [January 2016]
# Japanese
I18n: Tomoyuki Kato (kato.tomoyuki@jp.fujitsu.com) [January 2016]
I18n: Yuko Katabami (ykatabam@redhat.com ) [January 2016]
I18n: Shu Muto (shu-mutou@rf.jp.nec.com) [January 2016]
I18n: Kyohei Moriyama (flogofrein@gmail.com) [January 2016]
I18n: Mie Yamamoto (myamamot@redhat.com) [January 2016]
I18n: Akihiro Motoki (amotoki@gmail.com) [January 2016]
# Korean
I18n: Ian Y. Choi (ianyrchoi@gmail.com) [January 2016]
I18n: Sungjin Kang (gang.sungjin@gmail.com) [January 2016]
I18n: Kiseok Kim (kiseok7@gmail.com) [January 2016]
# Spanish
I18n: Heleno Jimenez (heleno.jimenez@gmail.com) [January 2016]
I18n: Pablo Iranzo (Pablo.Iranzo@gmail.com) [January 2016]
I18n: Marian Tort (marian.tort@gmail.com) [January 2016]
# German
I18n: Robert Simai (robert.simai@suse.com) [January 2016]
I18n: Frank Kloeker (f.kloeker@telekom.de) [January 2016]
# Hindi
I18n: Chandan Kumar (chkumar@redhat.com) [January 2016]

View File

@ -503,6 +503,25 @@ Documentation:
- openstack/training-guides
tags:
- release:none
extra-atcs:
- name: Beth Cohen
email: beth.cohen@verizon.com
expires-in: September 2015
- name: Egle Sigler
email: ushnishtha@hotmail.com
expires-in: September 2015
- name: Kevin Jackson
email: Kevin.Jackson@rackspace.co.uk
expires-in: September 2015
- name: Scott Lowe
email: slowe@vmware.com
expires-in: September 2015
- name: Sean Winn
email: sean.winn@cloudscaling.com
expires-in: September 2015
- name: Vinny Valdez
email: vvaldez@redhat.com
expires-in: September 2015
freezer:
ptl:
@ -880,6 +899,16 @@ horizon:
- openstack/xstatic-spin
tags:
- release:independent
extra-atcs:
- name: Jaromir Coufal
email: jcoufal@redhat.com
expires-in: September 2015
- name: Liz Blanchard
email: lsurette@redhat.com
expires-in: September 2015
- name: Piet Kruithof
email: pieter.c.kruithof-jr@hp.com
expires-in: February 2016
I18n:
ptl:
@ -896,6 +925,127 @@ I18n:
- openstack/i18n
tags:
- release:none
extra-atcs:
- name: Ying Chun Guo
email: guoyingc@cn.ibm.com
expires-in: January 2016
comment: Chinese(China)
- name: Jian Sheng Li
email: lijiangsheng1@gmail.com
expires-in: January 2016
comment: Chinese(China)
- name: Yan Ran Zhou
email: coffee.zyr@gmail.com
expires-in: January 2016
comment: Chinese(China)
- name: Qiu Lin Chen
email: chenqioulin_1983@163.com
expires-in: January 2016
comment: Chinese(China)
- name: Jun Peng Liu
email: liujunpeng@inspur.com
expires-in: January 2016
comment: Chinese(China)
- name: Zhe Ma
email: blkart.org@gmail.com
expires-in: January 2016
comment: Chinese(China)
- name: Hai Feng Yan
email: yanheven@qq.com
expires-in: January 2016
comment: Chinese(China)
- name: Maxime Coquerel
email: max.coquerel@gmail.com
expires-in: January 2016
comment: French
- name: Francois Bureau
email: bureaufrancois@gmail.com
expires-in: January 2016
comment: French
- name: Corinne Verheyde
email: bureaufrancois@gmail.com
expires-in: January 2016
comment: French
- name: Jean-Francois Taltavull
email: jftalta@gmail.com
expires-in: January 2016
comment: French
- name: Gael Rehault
email: gael01@gmail.com
expires-in: January 2016
comment: French
- name: Nikita Burtsev
email: nikita.burtsev@gmail.com
expires-in: January 2016
comment: Russian
- name: Ilya Alekseyev
email: ilyaalekseyev@acm.org
expires-in: January 2016
comment: Russian
- name: Ainur Shakirov
email: shakirov.aynur@cg.ru
expires-in: January 2016
comment: Russian
- name: Tomoyuki Kato
email: kato.tomoyuki@jp.fujitsu.com
expires-in: January 2016
comment: Japanese
- name: Yuko Katabami
email: ykatabam@redhat.com
expires-in: January 2016
comment: Japanese
- name: Shu Muto
email: shu-mutou@rf.jp.nec.com
expires-in: January 2016
comment: Japanese
- name: Kyohei Moriyama
email: flogofrein@gmail.com
expires-in: January 2016
comment: Japanese
- name: Mie Yamamoto
email: myamamot@redhat.com
expires-in: January 2016
comment: Japanese
- name: Akihiro Motoki
email: amotoki@gmail.com
expires-in: January 2016
comment: Japanese
- name: Ian Y. Choi
email: ianyrchoi@gmail.com
expires-in: January 2016
comment: Korean
- name: Sungjin Kang
email: gang.sungjin@gmail.com
expires-in: January 2016
comment: Korean
- name: Kiseok Kim
email: kiseok7@gmail.com
expires-in: January 2016
comment: Korean
- name: Heleno Jimenez
email: heleno.jimenez@gmail.com
expires-in: January 2016
comment: Spanish
- name: Pablo Iranzo
email: Pablo.Iranzo@gmail.com
expires-in: January 2016
comment: Spanish
- name: Marian Tort
email: marian.tort@gmail.com
expires-in: January 2016
comment: Spanish
- name: Robert Simai
email: robert.simai@suse.com
expires-in: January 2016
comment: German
- name: Frank Kloeker
email: f.kloeker@telekom.de
expires-in: January 2016
comment: German
- name: Chandan Kumar
email: chkumar@redhat.com
expires-in: January 2016
comment: Hindi
Infrastructure:
ptl:
@ -1757,6 +1907,10 @@ keystone:
tags:
- release:independent
- type:library
extra-atcs:
- name: David Chadwick
email: d.w.chadwick@kent.ac.uk
expires-in: December 2015
kolla:
ptl:
@ -2223,6 +2377,10 @@ neutron:
tags:
- release:cycle-with-milestones
- release:has-stable-branches
extra-atcs:
- name: Cathy Hong Zhang
email: cathy.h.zhang@huawei.com
expires-in: February 2016
nova:
ptl:
@ -2274,6 +2432,73 @@ nova:
- release:cycle-with-intermediary
- release:has-stable-branches
- type:library
extra-atcs:
- name: Bogdan Teleaga
email: bteleaga@cloudbasesolutions.com
expires-in: September 2015
- name: Mouhammad-Nashwan Azhari
email: nmouhammad@cloudbasesolutions.com
expires-in: September 2015
- name: Pablo Fernando Cargnelutti
email: pablo.fernando.cargnelutti@intel.com
expires-in: September 2015
- name: Fengqian Gao
email: fengqian.gao@intel.com
expires-in: September 2015
- name: Sushma Korati
email: sushma_korati@persistent.co.in
expires-in: September 2015
- name: Dmitry Tantsur
email: dtantsur@redhat.com
expires-in: September 2015
- name: Maithem
email: munshedm@vmware.com
expires-in: September 2015
- name: Ian Wells
email: iawells@cisco.com
expires-in: September 2015
- name: Shawn Hartsock
email: hartsocks@acm.org
expires-in: September 2015
- name: Cyril Roelandt
email: cyril.roelandt@enovance.com
expires-in: September 2015
- name: Ionut Balutoiu
email: ibalutoiu@cloudbasesolutions.com
expires-in: September 2015
- name: Ryan Moe
email: rmoe@mirantis.com
expires-in: September 2015
- name: Lucas Alvares Gomes
email: lucasagomes@gmail.com
expires-in: September 2015
- name: Navneet Kumar
email: navneetk@thoughtworks.com
expires-in: September 2015
- name: Zsolt Dudas
email: zdudas@cloudbasesolutions.com
expires-in: September 2015
- name: Anuj Mathur
email: anujm@thoughtworks.com
expires-in: September 2015
- name: Chenchong Qin
email: qinchenchong@gmail.com
expires-in: September 2015
- name: Thomas Kaergel
email: kaergel@b1-systems.de
expires-in: September 2015
- name: Ryo Kurahashi
email: kurahashi-rxa@necst.nec.co.jp
expires-in: September 2015
- name: Adam Gandelman
email: adamg@ubuntu.com
expires-in: September 2015
- name: Andres Buraschi
email: andres.buraschi@intel.com
expires-in: September 2015
- name: Claxton Correya
email: claxton@gmail.com
expires-in: September 2015
OpenStack client:
ptl:
@ -2329,6 +2554,19 @@ OpenStack UX:
- openstack/openstack-ux
tags:
- release:none
extra-atcs:
- name: Piet Kruithof
email: pkruithofjr@gmail.com
expires-in: September 2016
- name: Eric Peterson
email: eric.peterson1@twcable.com
expires-in: September 2016
- name: Ju Lim
email: julim@redhat.com
expires-in: September 2016
- name: Michael Hinnant
email: michael.hinnant@hp.com
expires-in: September 2016
OpenStackAnsible:
ptl:
@ -3159,6 +3397,10 @@ Quality Assurance:
tags:
- release:independent
- type:library
extra-atcs:
- name: Scott Moser
email: smoser@ubuntu.com
expires-in: May 2016
rally:
ptl:
@ -3248,6 +3490,10 @@ Release Management:
- openstack-dev/specs-cookiecutter
tags:
- release:none
extra-atcs:
- name: Chuck Short
email: chuck.short@canonical.com
expires-in: January 2016
sahara:
ptl:
@ -3561,6 +3807,13 @@ Telemetry:
tags:
- type:library
- release:independent
extra-atcs:
- name: Edouard Thuleau
email: edouard.thuleau@cloudwatt.com
expires-in: September 2015
- name: Jordan Pittier
email: jordan.pittier@cloudwatt.com
expires-in: September 2015
tripleo:
ptl: