Implement distributed leadership in tools and schema
We have resolution merged for distributed leadership[1] and there are few projects want to adopt this model in Wallaby cycle, first one is oslo[2]. This commit add the support of new model in governance tooling, doc and, schema. Basically making changes to fill the distributed leadership liaisons and displaing those in projects rst. Below are the changes done: - Removed 'PTL' field to be mandatory instead making either 'PTL' or 'leadership_type: distributed' field as mandatory. - To avoid confustion with existing liasion field, changed TC liaison field name from 'liaisons' to sub field named 'tc_members' - Extended the existing liaison field for distributed leadersip liaisons. It will looks like below: liaisons: tc_members: - zaneb - ttx release: - name: Hervé Beraud irc: hberaud email: hberaud@redhat.com - name: Daniel Bengtsson irc: damani email: dbengt@redhat.com tact-sig: - name: Hervé Beraud irc: hberaud email: hberaud@redhat.com security: - name: Daniel Bengtsson irc: damani email: dbengt@redhat.com and on site: TC Members Liaisons ricolin, belmoreira Release Liaisons Hervé Beraud (hberaud) <hraud@redhat.com>, Daniel Bengtsson (damani) <dbengt@redhat.com> [1] https://governance.openstack.org/tc/resolutions/20200803-distributed-project-leadership.html [2] https://review.opendev.org/#/c/757906 Change-Id: If96915a16a8746aed6f0cb844c53ad61a300c234
This commit is contained in:
parent
b4b27b39eb
commit
c387ba5f18
@ -71,8 +71,9 @@ class TCLiaisonsTable(tables.Table):
|
|||||||
data_iter = projects.load_project_file(filename)
|
data_iter = projects.load_project_file(filename)
|
||||||
liaisons = {}
|
liaisons = {}
|
||||||
for project_name, project in data_iter.items():
|
for project_name, project in data_iter.items():
|
||||||
|
proj_liaisons = project.get('liaisons', {})
|
||||||
|
|
||||||
for liaison in project.get('liaisons', []):
|
for liaison in proj_liaisons.get('tc_members', []):
|
||||||
try:
|
try:
|
||||||
liaisons[liaison].extend([project_name])
|
liaisons[liaison].extend([project_name])
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
@ -43,7 +43,11 @@ def _team_to_rst(name, info):
|
|||||||
yield ''
|
yield ''
|
||||||
yield ':Home Page: ' + info.get('url', '')
|
yield ':Home Page: ' + info.get('url', '')
|
||||||
ptl = info.get('ptl', {'name': '', 'irc': '', 'email': ''})
|
ptl = info.get('ptl', {'name': '', 'irc': '', 'email': ''})
|
||||||
yield ':PTL: %(name)s (``%(irc)s``) <%(email)s>' % ptl
|
leadership_type = info.get('leadership_type')
|
||||||
|
if leadership_type:
|
||||||
|
yield ':Leadership Type: ' + leadership_type
|
||||||
|
else:
|
||||||
|
yield ':PTL: %(name)s (``%(irc)s``) <%(email)s>' % ptl
|
||||||
irc_channel = info.get('irc-channel')
|
irc_channel = info.get('irc-channel')
|
||||||
if irc_channel:
|
if irc_channel:
|
||||||
yield ':IRC Channel: `#%s <%s%s>`__' % (
|
yield ':IRC Channel: `#%s <%s%s>`__' % (
|
||||||
@ -53,7 +57,50 @@ def _team_to_rst(name, info):
|
|||||||
yield ':Service: ' + service
|
yield ':Service: ' + service
|
||||||
liaisons = info.get('liaisons')
|
liaisons = info.get('liaisons')
|
||||||
if liaisons:
|
if liaisons:
|
||||||
yield ':TC Liaisons: ' + ", ".join(liaisons)
|
contact_format = {'name': '', 'irc': '', 'email': ''}
|
||||||
|
tc_members = liaisons.get('tc_members')
|
||||||
|
if tc_members:
|
||||||
|
yield ':TC Members Liaisons: ' + ", ".join(tc_members)
|
||||||
|
release = liaisons.get('release', contact_format)
|
||||||
|
if release != contact_format:
|
||||||
|
yield ':Release Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % rl
|
||||||
|
for rl in release)
|
||||||
|
tact_sig = liaisons.get('tact-sig', contact_format)
|
||||||
|
if tact_sig != contact_format:
|
||||||
|
yield ':TACT SIG Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % tl
|
||||||
|
for tl in tact_sig)
|
||||||
|
security = liaisons.get('security', contact_format)
|
||||||
|
if security != contact_format:
|
||||||
|
yield ':Security Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % sl
|
||||||
|
for sl in security)
|
||||||
|
events = liaisons.get('events', contact_format)
|
||||||
|
if events != contact_format:
|
||||||
|
yield ':Events Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % el
|
||||||
|
for el in events)
|
||||||
|
project_update_onboarding = liaisons.get('project_update_onboarding', contact_format)
|
||||||
|
if project_update_onboarding != contact_format:
|
||||||
|
yield ':Project Update Onboarding Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % pl
|
||||||
|
for pl in project_update_onboarding)
|
||||||
|
meeting_facilitator = liaisons.get('meeting_facilitator', contact_format)
|
||||||
|
if meeting_facilitator != contact_format:
|
||||||
|
yield ':Meeting Facilitator Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % ml
|
||||||
|
for ml in meeting_facilitator)
|
||||||
|
bug_deputy = liaisons.get('bug_deputy', contact_format)
|
||||||
|
if bug_deputy != contact_format:
|
||||||
|
yield ':Bug Deputy Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % bl
|
||||||
|
for bl in bug_deputy)
|
||||||
|
rfe_coordinator = liaisons.get('rfe_coordinator', contact_format)
|
||||||
|
if rfe_coordinator != contact_format:
|
||||||
|
yield ':RFE Coordinator Liaisons: ' + ', '.join(
|
||||||
|
'%(name)s (``%(irc)s``) <%(email)s>' % rcl
|
||||||
|
for rcl in rfe_coordinator)
|
||||||
yield ''
|
yield ''
|
||||||
mission = info.get('mission', '').rstrip()
|
mission = info.get('mission', '').rstrip()
|
||||||
if mission:
|
if mission:
|
||||||
|
@ -3,15 +3,41 @@ $schema: "http://json-schema.org/schema#"
|
|||||||
$id: "https://opendev.org/openstack/releases/src/branch/master/README.rst"
|
$id: "https://opendev.org/openstack/releases/src/branch/master/README.rst"
|
||||||
|
|
||||||
|
|
||||||
|
contact_schema: &contact_schema
|
||||||
|
type: "array"
|
||||||
|
items:
|
||||||
|
type: "object"
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- email
|
||||||
|
additionalProperties: false
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: "string"
|
||||||
|
irc:
|
||||||
|
type: "string"
|
||||||
|
email:
|
||||||
|
type: "string"
|
||||||
|
format: "email"
|
||||||
|
minItems: 1
|
||||||
|
uniqueItems: true
|
||||||
|
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
# Do not allow any properties not defined here. This lets us catch
|
# Do not allow any properties not defined here. This lets us catch
|
||||||
# typos.
|
# typos.
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
required:
|
oneOf:
|
||||||
- ptl
|
- required:
|
||||||
- deliverables
|
- ptl
|
||||||
- url
|
- deliverables
|
||||||
- mission
|
- url
|
||||||
|
- mission
|
||||||
|
- required:
|
||||||
|
- leadership_type
|
||||||
|
- liaisons
|
||||||
|
- deliverables
|
||||||
|
- url
|
||||||
|
- mission
|
||||||
properties:
|
properties:
|
||||||
ptl:
|
ptl:
|
||||||
type: "object"
|
type: "object"
|
||||||
@ -27,6 +53,10 @@ additionalProperties:
|
|||||||
email:
|
email:
|
||||||
type: "string"
|
type: "string"
|
||||||
format: "email"
|
format: "email"
|
||||||
|
leadership_type:
|
||||||
|
type: "string"
|
||||||
|
enum:
|
||||||
|
- distributed
|
||||||
appointed:
|
appointed:
|
||||||
type: "array"
|
type: "array"
|
||||||
items:
|
items:
|
||||||
@ -38,10 +68,25 @@ additionalProperties:
|
|||||||
url:
|
url:
|
||||||
type: "string"
|
type: "string"
|
||||||
liaisons:
|
liaisons:
|
||||||
type: "array"
|
type: "object"
|
||||||
uniqueItems: true
|
properties:
|
||||||
items:
|
tc_members:
|
||||||
type: "string"
|
type: "array"
|
||||||
|
items:
|
||||||
|
type: "string"
|
||||||
|
uniqueItems: true
|
||||||
|
# TODO(gmann): Make release, tact-sig,
|
||||||
|
# and, security liaison as required for
|
||||||
|
# distributed leadership type.
|
||||||
|
release: *contact_schema
|
||||||
|
tact-sig: *contact_schema
|
||||||
|
security: *contact_schema
|
||||||
|
events: *contact_schema
|
||||||
|
project_update_onboarding: *contact_schema
|
||||||
|
meeting_facilitator: *contact_schema
|
||||||
|
bug_deputy: *contact_schema
|
||||||
|
rfp_coordinator: *contact_schema
|
||||||
|
additionalProperties: false
|
||||||
mission:
|
mission:
|
||||||
type: "string"
|
type: "string"
|
||||||
deliverables:
|
deliverables:
|
||||||
|
@ -32,8 +32,24 @@ Release Management:
|
|||||||
their own releases.
|
their own releases.
|
||||||
url: https://wiki.openstack.org/wiki/Release_Management
|
url: https://wiki.openstack.org/wiki/Release_Management
|
||||||
liaisons:
|
liaisons:
|
||||||
- zaneb
|
tc_members:
|
||||||
- ttx
|
- zaneb
|
||||||
|
- ttx
|
||||||
|
release:
|
||||||
|
- name: Hervé Beraud
|
||||||
|
irc: hberaud
|
||||||
|
email: hberaud@redhat.com
|
||||||
|
tact-sig:
|
||||||
|
- name: Hervé Beraud
|
||||||
|
irc: hberaud
|
||||||
|
email: hberaud@redhat.com
|
||||||
|
- name: Daniel Bengtsson
|
||||||
|
irc: damani
|
||||||
|
email: dbengt@redhat.com
|
||||||
|
security:
|
||||||
|
- name: Daniel Bengtsson
|
||||||
|
irc: damani
|
||||||
|
email: dbengt@redhat.com
|
||||||
tags:
|
tags:
|
||||||
- team:diverse-affiliation
|
- team:diverse-affiliation
|
||||||
deliverables:
|
deliverables:
|
||||||
|
@ -24,8 +24,9 @@ adjutant:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/python-adjutantclient
|
- openstack/python-adjutantclient
|
||||||
liaisons:
|
liaisons:
|
||||||
- knikolla
|
tc_members:
|
||||||
- mnaser
|
- knikolla
|
||||||
|
- mnaser
|
||||||
barbican:
|
barbican:
|
||||||
ptl:
|
ptl:
|
||||||
name: Douglas Mendizábal
|
name: Douglas Mendizábal
|
||||||
@ -74,8 +75,9 @@ barbican:
|
|||||||
tags:
|
tags:
|
||||||
- vulnerability:managed
|
- vulnerability:managed
|
||||||
liaisons:
|
liaisons:
|
||||||
- knikolla
|
tc_members:
|
||||||
- cloudnull
|
- knikolla
|
||||||
|
- cloudnull
|
||||||
blazar:
|
blazar:
|
||||||
ptl:
|
ptl:
|
||||||
name: Pierre Riteau
|
name: Pierre Riteau
|
||||||
@ -110,8 +112,9 @@ blazar:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/python-blazarclient
|
- openstack/python-blazarclient
|
||||||
liaisons:
|
liaisons:
|
||||||
- mugsie
|
tc_members:
|
||||||
- belmoreira
|
- mugsie
|
||||||
|
- belmoreira
|
||||||
cinder:
|
cinder:
|
||||||
ptl:
|
ptl:
|
||||||
name: Brian Rosmaita
|
name: Brian Rosmaita
|
||||||
@ -164,8 +167,9 @@ cinder:
|
|||||||
- vulnerability:managed
|
- vulnerability:managed
|
||||||
- stable:follows-policy
|
- stable:follows-policy
|
||||||
liaisons:
|
liaisons:
|
||||||
- cloudnull
|
tc_members:
|
||||||
- mugsie
|
- cloudnull
|
||||||
|
- mugsie
|
||||||
cloudkitty:
|
cloudkitty:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -199,8 +203,9 @@ cloudkitty:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/cloudkitty-tempest-plugin
|
- openstack/cloudkitty-tempest-plugin
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- knikolla
|
- evrardjp
|
||||||
|
- knikolla
|
||||||
cyborg:
|
cyborg:
|
||||||
ptl:
|
ptl:
|
||||||
name: Yumeng Bao
|
name: Yumeng Bao
|
||||||
@ -229,8 +234,9 @@ cyborg:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/cyborg-tempest-plugin
|
- openstack/cyborg-tempest-plugin
|
||||||
liaisons:
|
liaisons:
|
||||||
- njohnston
|
tc_members:
|
||||||
- cloudnull
|
- njohnston
|
||||||
|
- cloudnull
|
||||||
designate:
|
designate:
|
||||||
ptl:
|
ptl:
|
||||||
name: Michael Johnson
|
name: Michael Johnson
|
||||||
@ -272,8 +278,9 @@ designate:
|
|||||||
tags:
|
tags:
|
||||||
- stable:follows-policy
|
- stable:follows-policy
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- jungleboyj
|
- evrardjp
|
||||||
|
- jungleboyj
|
||||||
ec2-api:
|
ec2-api:
|
||||||
ptl:
|
ptl:
|
||||||
name: Andrey Pavlov
|
name: Andrey Pavlov
|
||||||
@ -292,8 +299,9 @@ ec2-api:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/ec2api-tempest-plugin
|
- openstack/ec2api-tempest-plugin
|
||||||
liaisons:
|
liaisons:
|
||||||
- jungleboyj
|
tc_members:
|
||||||
- mnaser
|
- jungleboyj
|
||||||
|
- mnaser
|
||||||
freezer:
|
freezer:
|
||||||
ptl:
|
ptl:
|
||||||
name: cai hui
|
name: cai hui
|
||||||
@ -328,8 +336,9 @@ freezer:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/python-freezerclient
|
- openstack/python-freezerclient
|
||||||
liaisons:
|
liaisons:
|
||||||
- ricolin
|
tc_members:
|
||||||
- jungleboyj
|
- ricolin
|
||||||
|
- jungleboyj
|
||||||
glance:
|
glance:
|
||||||
ptl:
|
ptl:
|
||||||
name: Abhishek Kekane
|
name: Abhishek Kekane
|
||||||
@ -370,8 +379,9 @@ glance:
|
|||||||
- vulnerability:managed
|
- vulnerability:managed
|
||||||
- stable:follows-policy
|
- stable:follows-policy
|
||||||
liaisons:
|
liaisons:
|
||||||
- mnaser
|
tc_members:
|
||||||
- njohnston
|
- mnaser
|
||||||
|
- njohnston
|
||||||
heat:
|
heat:
|
||||||
ptl:
|
ptl:
|
||||||
name: Rico Lin
|
name: Rico Lin
|
||||||
@ -429,7 +439,8 @@ heat:
|
|||||||
tosca-parser:
|
tosca-parser:
|
||||||
repos:
|
repos:
|
||||||
- openstack/tosca-parser
|
- openstack/tosca-parser
|
||||||
liaisons: [ricolin, jungleboyj]
|
liaisons:
|
||||||
|
tc_members: [ricolin, jungleboyj]
|
||||||
horizon:
|
horizon:
|
||||||
ptl:
|
ptl:
|
||||||
name: Ivan Kolodyazhny
|
name: Ivan Kolodyazhny
|
||||||
@ -549,8 +560,9 @@ horizon:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/xstatic-spin
|
- openstack/xstatic-spin
|
||||||
liaisons:
|
liaisons:
|
||||||
- mnaser
|
tc_members:
|
||||||
- mugsie
|
- mnaser
|
||||||
|
- mugsie
|
||||||
ironic:
|
ironic:
|
||||||
ptl:
|
ptl:
|
||||||
name: Julia Kreger
|
name: Julia Kreger
|
||||||
@ -656,8 +668,9 @@ ironic:
|
|||||||
email: jay@jvf.cc
|
email: jay@jvf.cc
|
||||||
expires-in: July 2019
|
expires-in: July 2019
|
||||||
liaisons:
|
liaisons:
|
||||||
- mnaser
|
tc_members:
|
||||||
- knikolla
|
- mnaser
|
||||||
|
- knikolla
|
||||||
karbor:
|
karbor:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -680,8 +693,9 @@ karbor:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/python-karborclient
|
- openstack/python-karborclient
|
||||||
liaisons:
|
liaisons:
|
||||||
- mugsie
|
tc_members:
|
||||||
- belmoreira
|
- mugsie
|
||||||
|
- belmoreira
|
||||||
keystone:
|
keystone:
|
||||||
ptl:
|
ptl:
|
||||||
name: Kristi Nikolla
|
name: Kristi Nikolla
|
||||||
@ -737,8 +751,9 @@ keystone:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/ldappool
|
- openstack/ldappool
|
||||||
liaisons:
|
liaisons:
|
||||||
- mnaser
|
tc_members:
|
||||||
- knikolla
|
- mnaser
|
||||||
|
- knikolla
|
||||||
kolla:
|
kolla:
|
||||||
ptl:
|
ptl:
|
||||||
name: Mark Goddard
|
name: Mark Goddard
|
||||||
@ -768,8 +783,9 @@ kolla:
|
|||||||
- openstack/kayobe-config
|
- openstack/kayobe-config
|
||||||
- openstack/kayobe-config-dev
|
- openstack/kayobe-config-dev
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- mugsie
|
- evrardjp
|
||||||
|
- mugsie
|
||||||
kuryr:
|
kuryr:
|
||||||
ptl:
|
ptl:
|
||||||
name: Maysa de Macedo Souza
|
name: Maysa de Macedo Souza
|
||||||
@ -797,8 +813,9 @@ kuryr:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/kuryr-tempest-plugin
|
- openstack/kuryr-tempest-plugin
|
||||||
liaisons:
|
liaisons:
|
||||||
- belmoreira
|
tc_members:
|
||||||
- njohnston
|
- belmoreira
|
||||||
|
- njohnston
|
||||||
magnum:
|
magnum:
|
||||||
ptl:
|
ptl:
|
||||||
name: Spyros Trigazis
|
name: Spyros Trigazis
|
||||||
@ -827,7 +844,8 @@ magnum:
|
|||||||
python-magnumclient:
|
python-magnumclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-magnumclient
|
- openstack/python-magnumclient
|
||||||
liaisons: [ricolin, belmoreira]
|
liaisons:
|
||||||
|
tc_members: [ricolin, belmoreira]
|
||||||
manila:
|
manila:
|
||||||
ptl:
|
ptl:
|
||||||
name: Goutham Pacha Ravi
|
name: Goutham Pacha Ravi
|
||||||
@ -870,7 +888,8 @@ manila:
|
|||||||
python-manilaclient:
|
python-manilaclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-manilaclient
|
- openstack/python-manilaclient
|
||||||
liaisons: [gmann, cloudnull]
|
liaisons:
|
||||||
|
tc_members: [gmann, cloudnull]
|
||||||
masakari:
|
masakari:
|
||||||
ptl:
|
ptl:
|
||||||
name: Radosław Piliszek
|
name: Radosław Piliszek
|
||||||
@ -902,8 +921,9 @@ masakari:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/masakari-dashboard
|
- openstack/masakari-dashboard
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- cloudnull
|
- evrardjp
|
||||||
|
- cloudnull
|
||||||
mistral:
|
mistral:
|
||||||
ptl:
|
ptl:
|
||||||
name: Renat Akhmerov
|
name: Renat Akhmerov
|
||||||
@ -940,7 +960,8 @@ mistral:
|
|||||||
mistral-extra:
|
mistral-extra:
|
||||||
repos:
|
repos:
|
||||||
- openstack/mistral-extra
|
- openstack/mistral-extra
|
||||||
liaisons: [ricolin, jungleboyj]
|
liaisons:
|
||||||
|
tc_members: [ricolin, jungleboyj]
|
||||||
monasca:
|
monasca:
|
||||||
ptl:
|
ptl:
|
||||||
name: Martin Chacon Piza
|
name: Martin Chacon Piza
|
||||||
@ -1012,8 +1033,9 @@ monasca:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/monasca-kibana-plugin
|
- openstack/monasca-kibana-plugin
|
||||||
liaisons:
|
liaisons:
|
||||||
- ricolin
|
tc_members:
|
||||||
- belmoreira
|
- ricolin
|
||||||
|
- belmoreira
|
||||||
murano:
|
murano:
|
||||||
ptl:
|
ptl:
|
||||||
name: Rong Zhu
|
name: Rong Zhu
|
||||||
@ -1065,8 +1087,9 @@ murano:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/murano-tempest-plugin
|
- openstack/murano-tempest-plugin
|
||||||
liaisons:
|
liaisons:
|
||||||
- cloudnull
|
tc_members:
|
||||||
- njohnston
|
- cloudnull
|
||||||
|
- njohnston
|
||||||
neutron:
|
neutron:
|
||||||
ptl:
|
ptl:
|
||||||
name: Sławek Kapłoński
|
name: Sławek Kapłoński
|
||||||
@ -1164,7 +1187,8 @@ neutron:
|
|||||||
os-ken:
|
os-ken:
|
||||||
repos:
|
repos:
|
||||||
- openstack/os-ken
|
- openstack/os-ken
|
||||||
liaisons: [njohnston, mnaser]
|
liaisons:
|
||||||
|
tc_members: [njohnston, mnaser]
|
||||||
nova:
|
nova:
|
||||||
ptl:
|
ptl:
|
||||||
name: Balazs Gibizer
|
name: Balazs Gibizer
|
||||||
@ -1204,7 +1228,8 @@ nova:
|
|||||||
os-vif:
|
os-vif:
|
||||||
repos:
|
repos:
|
||||||
- openstack/os-vif
|
- openstack/os-vif
|
||||||
liaisons: [gmann, cloudnull]
|
liaisons:
|
||||||
|
tc_members: [gmann, cloudnull]
|
||||||
octavia:
|
octavia:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -1259,8 +1284,9 @@ octavia:
|
|||||||
tags:
|
tags:
|
||||||
- stable:follows-policy
|
- stable:follows-policy
|
||||||
liaisons:
|
liaisons:
|
||||||
- cloudnull
|
tc_members:
|
||||||
- mugsie
|
- cloudnull
|
||||||
|
- mugsie
|
||||||
OpenStack Charms:
|
OpenStack Charms:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -1786,8 +1812,9 @@ OpenStack Charms:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/charm-watcher-dashboard
|
- openstack/charm-watcher-dashboard
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- gmann
|
- evrardjp
|
||||||
|
- gmann
|
||||||
openstack-chef:
|
openstack-chef:
|
||||||
ptl:
|
ptl:
|
||||||
name: Lance Albertson
|
name: Lance Albertson
|
||||||
@ -1881,8 +1908,9 @@ openstack-chef:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/openstack-chef-specs
|
- openstack/openstack-chef-specs
|
||||||
liaisons:
|
liaisons:
|
||||||
- njohnston
|
tc_members:
|
||||||
- ricolin
|
- njohnston
|
||||||
|
- ricolin
|
||||||
OpenStack-Helm:
|
OpenStack-Helm:
|
||||||
ptl:
|
ptl:
|
||||||
name: Gage Hugo
|
name: Gage Hugo
|
||||||
@ -1926,8 +1954,9 @@ OpenStack-Helm:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/loci
|
- openstack/loci
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- njohnston
|
- evrardjp
|
||||||
|
- njohnston
|
||||||
OpenStackAnsible:
|
OpenStackAnsible:
|
||||||
ptl:
|
ptl:
|
||||||
name: Dmitriy Rabotyagov
|
name: Dmitriy Rabotyagov
|
||||||
@ -2020,8 +2049,9 @@ OpenStackAnsible:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/openstack-ansible-specs
|
- openstack/openstack-ansible-specs
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- knikolla
|
- evrardjp
|
||||||
|
- knikolla
|
||||||
OpenStackSDK:
|
OpenStackSDK:
|
||||||
ptl:
|
ptl:
|
||||||
name: Artem Goncharov
|
name: Artem Goncharov
|
||||||
@ -2075,7 +2105,8 @@ OpenStackSDK:
|
|||||||
- openstack/shade
|
- openstack/shade
|
||||||
tags:
|
tags:
|
||||||
- assert:follows-standard-deprecation
|
- assert:follows-standard-deprecation
|
||||||
liaisons: [diablo_rojo, cloudnull]
|
liaisons:
|
||||||
|
tc_members: [diablo_rojo, cloudnull]
|
||||||
oslo:
|
oslo:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -2292,7 +2323,8 @@ oslo:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/whereto
|
- openstack/whereto
|
||||||
|
|
||||||
liaisons: [ricolin, belmoreira]
|
liaisons:
|
||||||
|
tc_members: [ricolin, belmoreira]
|
||||||
placement:
|
placement:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -2324,8 +2356,9 @@ placement:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/os-resource-classes
|
- openstack/os-resource-classes
|
||||||
liaisons:
|
liaisons:
|
||||||
- gmann
|
tc_members:
|
||||||
- njohnston
|
- gmann
|
||||||
|
- njohnston
|
||||||
Puppet OpenStack:
|
Puppet OpenStack:
|
||||||
ptl:
|
ptl:
|
||||||
name: Shengping Zhong
|
name: Shengping Zhong
|
||||||
@ -2483,8 +2516,9 @@ Puppet OpenStack:
|
|||||||
- openstack/puppet-zaqar
|
- openstack/puppet-zaqar
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- evrardjp
|
tc_members:
|
||||||
- ricolin
|
- evrardjp
|
||||||
|
- ricolin
|
||||||
qinling:
|
qinling:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -2508,8 +2542,9 @@ qinling:
|
|||||||
- openstack/qinling-dashboard
|
- openstack/qinling-dashboard
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- mugsie
|
tc_members:
|
||||||
- jungleboyj
|
- mugsie
|
||||||
|
- jungleboyj
|
||||||
Quality Assurance:
|
Quality Assurance:
|
||||||
ptl:
|
ptl:
|
||||||
name: Masayuki Igawa
|
name: Masayuki Igawa
|
||||||
@ -2612,7 +2647,8 @@ Quality Assurance:
|
|||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
- openstack/whitebox-tempest-plugin
|
- openstack/whitebox-tempest-plugin
|
||||||
liaisons: [gmann, jungleboyj]
|
liaisons:
|
||||||
|
tc_members: [gmann, jungleboyj]
|
||||||
rally:
|
rally:
|
||||||
ptl:
|
ptl:
|
||||||
name: Andrey Kurilin
|
name: Andrey Kurilin
|
||||||
@ -2640,8 +2676,9 @@ rally:
|
|||||||
- openstack/performance-docs
|
- openstack/performance-docs
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- knikolla
|
tc_members:
|
||||||
- diablo_rojo
|
- knikolla
|
||||||
|
- diablo_rojo
|
||||||
Release Management:
|
Release Management:
|
||||||
ptl:
|
ptl:
|
||||||
name: Hervé Beraud
|
name: Hervé Beraud
|
||||||
@ -2670,8 +2707,9 @@ Release Management:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/specs-cookiecutter
|
- openstack/specs-cookiecutter
|
||||||
liaisons:
|
liaisons:
|
||||||
- diablo_rojo
|
tc_members:
|
||||||
- evrardjp
|
- diablo_rojo
|
||||||
|
- evrardjp
|
||||||
requirements:
|
requirements:
|
||||||
ptl:
|
ptl:
|
||||||
name: Matthew Thode
|
name: Matthew Thode
|
||||||
@ -2689,8 +2727,9 @@ requirements:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/requirements
|
- openstack/requirements
|
||||||
liaisons:
|
liaisons:
|
||||||
- diablo_rojo
|
tc_members:
|
||||||
- belmoreira
|
- diablo_rojo
|
||||||
|
- belmoreira
|
||||||
sahara:
|
sahara:
|
||||||
ptl:
|
ptl:
|
||||||
name: Jeremy Freudberg
|
name: Jeremy Freudberg
|
||||||
@ -2792,8 +2831,9 @@ sahara:
|
|||||||
- openstack/sahara-specs
|
- openstack/sahara-specs
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- gmann
|
tc_members:
|
||||||
- njohnston
|
- gmann
|
||||||
|
- njohnston
|
||||||
searchlight:
|
searchlight:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -2825,8 +2865,9 @@ searchlight:
|
|||||||
- openstack/searchlight-ui
|
- openstack/searchlight-ui
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- mugsie
|
tc_members:
|
||||||
- belmoreira
|
- mugsie
|
||||||
|
- belmoreira
|
||||||
senlin:
|
senlin:
|
||||||
ptl:
|
ptl:
|
||||||
name: APPOINTMENT NEEDED
|
name: APPOINTMENT NEEDED
|
||||||
@ -2852,7 +2893,8 @@ senlin:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/senlin-tempest-plugin
|
- openstack/senlin-tempest-plugin
|
||||||
|
|
||||||
liaisons: [ricolin, mnaser]
|
liaisons:
|
||||||
|
tc_members: [ricolin, mnaser]
|
||||||
solum:
|
solum:
|
||||||
ptl:
|
ptl:
|
||||||
name: Rong Zhu
|
name: Rong Zhu
|
||||||
@ -2884,8 +2926,9 @@ solum:
|
|||||||
- openstack/solum-tempest-plugin
|
- openstack/solum-tempest-plugin
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- jungleboyj
|
tc_members:
|
||||||
- belmoreira
|
- jungleboyj
|
||||||
|
- belmoreira
|
||||||
storlets:
|
storlets:
|
||||||
ptl:
|
ptl:
|
||||||
name: Takashi Kajinami
|
name: Takashi Kajinami
|
||||||
@ -2904,8 +2947,9 @@ storlets:
|
|||||||
- openstack/storlets
|
- openstack/storlets
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- jungleboyj
|
tc_members:
|
||||||
- knikolla
|
- jungleboyj
|
||||||
|
- knikolla
|
||||||
swift:
|
swift:
|
||||||
ptl:
|
ptl:
|
||||||
name: Tim Burke
|
name: Tim Burke
|
||||||
@ -2949,8 +2993,9 @@ swift:
|
|||||||
- openstack/swift-bench
|
- openstack/swift-bench
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- cloudnull
|
tc_members:
|
||||||
- diablo_rojo
|
- cloudnull
|
||||||
|
- diablo_rojo
|
||||||
tacker:
|
tacker:
|
||||||
ptl:
|
ptl:
|
||||||
name: Yasufumi Ogawa
|
name: Yasufumi Ogawa
|
||||||
@ -2980,7 +3025,8 @@ tacker:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/tacker-specs
|
- openstack/tacker-specs
|
||||||
|
|
||||||
liaisons: [gmann, knikolla]
|
liaisons:
|
||||||
|
tc_members: [gmann, knikolla]
|
||||||
Telemetry:
|
Telemetry:
|
||||||
ptl:
|
ptl:
|
||||||
name: Rong Zhu
|
name: Rong Zhu
|
||||||
@ -3031,8 +3077,9 @@ Telemetry:
|
|||||||
- openstack/telemetry-tempest-plugin
|
- openstack/telemetry-tempest-plugin
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- cloudnull
|
tc_members:
|
||||||
- gmann
|
- cloudnull
|
||||||
|
- gmann
|
||||||
|
|
||||||
tripleo:
|
tripleo:
|
||||||
ptl:
|
ptl:
|
||||||
@ -3169,8 +3216,9 @@ tripleo:
|
|||||||
- openstack/tripleo-ha-utils
|
- openstack/tripleo-ha-utils
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- diablo_rojo
|
tc_members:
|
||||||
- jungleboyj
|
- diablo_rojo
|
||||||
|
- jungleboyj
|
||||||
trove:
|
trove:
|
||||||
ptl:
|
ptl:
|
||||||
name: Lingxian Kong
|
name: Lingxian Kong
|
||||||
@ -3212,8 +3260,9 @@ trove:
|
|||||||
- openstack/trove-tempest-plugin
|
- openstack/trove-tempest-plugin
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- gmann
|
tc_members:
|
||||||
- diablo_rojo
|
- gmann
|
||||||
|
- diablo_rojo
|
||||||
vitrage:
|
vitrage:
|
||||||
ptl:
|
ptl:
|
||||||
name: Eyal Bar-Ilan
|
name: Eyal Bar-Ilan
|
||||||
@ -3263,8 +3312,9 @@ vitrage:
|
|||||||
- openstack/xstatic-moment-timezone
|
- openstack/xstatic-moment-timezone
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- belmoreira
|
tc_members:
|
||||||
- mugsie
|
- belmoreira
|
||||||
|
- mugsie
|
||||||
watcher:
|
watcher:
|
||||||
ptl:
|
ptl:
|
||||||
name: canwei li
|
name: canwei li
|
||||||
@ -3297,8 +3347,9 @@ watcher:
|
|||||||
- openstack/watcher-dashboard
|
- openstack/watcher-dashboard
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- mugsie
|
tc_members:
|
||||||
- mnaser
|
- mugsie
|
||||||
|
- mnaser
|
||||||
winstackers:
|
winstackers:
|
||||||
ptl:
|
ptl:
|
||||||
name: Lucian Petrut
|
name: Lucian Petrut
|
||||||
@ -3329,8 +3380,9 @@ winstackers:
|
|||||||
- openstack/compute-hyperv
|
- openstack/compute-hyperv
|
||||||
|
|
||||||
liaisons:
|
liaisons:
|
||||||
- mnaser
|
tc_members:
|
||||||
- jungleboyj
|
- mnaser
|
||||||
|
- jungleboyj
|
||||||
zaqar:
|
zaqar:
|
||||||
ptl:
|
ptl:
|
||||||
name: wang hao
|
name: wang hao
|
||||||
@ -3368,7 +3420,8 @@ zaqar:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/zaqar-ui
|
- openstack/zaqar-ui
|
||||||
|
|
||||||
liaisons: [njohnston, evrardjp]
|
liaisons:
|
||||||
|
tc_members: [njohnston, evrardjp]
|
||||||
zun:
|
zun:
|
||||||
ptl:
|
ptl:
|
||||||
name: Feng Shengqin
|
name: Feng Shengqin
|
||||||
@ -3394,5 +3447,6 @@ zun:
|
|||||||
repos:
|
repos:
|
||||||
- openstack/zun-ui
|
- openstack/zun-ui
|
||||||
liaisons:
|
liaisons:
|
||||||
- mugsie
|
tc_members:
|
||||||
- diablo_rojo
|
- mugsie
|
||||||
|
- diablo_rojo
|
||||||
|
@ -61,7 +61,8 @@ def main():
|
|||||||
|
|
||||||
if not args.replace_all:
|
if not args.replace_all:
|
||||||
for _, team in project_data.items():
|
for _, team in project_data.items():
|
||||||
for member in team.get('liaisons', []):
|
proj_liaisons = team.get('liaisons', {})
|
||||||
|
for member in proj_liaisons.get('tc_members', []):
|
||||||
member_counts.update({member: 1})
|
member_counts.update({member: 1})
|
||||||
|
|
||||||
choices = []
|
choices = []
|
||||||
@ -71,9 +72,10 @@ def main():
|
|||||||
# person to a team twice.
|
# person to a team twice.
|
||||||
|
|
||||||
for name, team in project_data.items():
|
for name, team in project_data.items():
|
||||||
liaisons = team.get('liaisons', [])
|
proj_liaisons = team.get('liaisons', {})
|
||||||
|
liaisons = proj_liaisons.get('tc_members', [])
|
||||||
if args.remove_all:
|
if args.remove_all:
|
||||||
team['liaisons'] = []
|
team['liaisons']['tc_members'] = []
|
||||||
continue
|
continue
|
||||||
if args.replace_all:
|
if args.replace_all:
|
||||||
liaisons = []
|
liaisons = []
|
||||||
@ -84,7 +86,7 @@ def main():
|
|||||||
choices.insert(0, next_choice)
|
choices.insert(0, next_choice)
|
||||||
next_choice = choices.pop()
|
next_choice = choices.pop()
|
||||||
liaisons.append(next_choice)
|
liaisons.append(next_choice)
|
||||||
team['liaisons'] = liaisons
|
team['liaisons']['tc_members'] = liaisons
|
||||||
|
|
||||||
projects.write_project_file(project_data, args.projects_file)
|
projects.write_project_file(project_data, args.projects_file)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user