Files
governance/openstack_governance/projects_schema.yaml
Ghanshyam Mann c387ba5f18 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
2020-10-16 17:32:28 +00:00

145 lines
3.2 KiB
YAML

---
$schema: "http://json-schema.org/schema#"
$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:
# Do not allow any properties not defined here. This lets us catch
# typos.
additionalProperties: false
oneOf:
- required:
- ptl
- deliverables
- url
- mission
- required:
- leadership_type
- liaisons
- deliverables
- url
- mission
properties:
ptl:
type: "object"
required:
- name
- email
additionalProperties: false
properties:
name:
type: "string"
irc:
type: "string"
email:
type: "string"
format: "email"
leadership_type:
type: "string"
enum:
- distributed
appointed:
type: "array"
items:
type: "string"
irc-channel:
type: "string"
service:
type: "string"
url:
type: "string"
liaisons:
type: "object"
properties:
tc_members:
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:
type: "string"
deliverables:
type: "object"
additionalProperties:
type: "object"
required:
- repos
additionalProperties: false
properties:
repos:
type: "array"
items:
type: "string"
pattern: "^[^/]+/[^/]+$"
minItems: 1
uniqueItems: true
tags:
type: "array"
items:
type: "string"
release-management:
type: "string"
enum:
- none
- deprecated
- external
deprecated:
type: "string"
tags:
type: "array"
items:
type: "string"
extra-atcs:
type: "array"
items:
type: "object"
required:
- name
- email
- expires-in
additionalProperties: false
properties:
name:
type: "string"
email:
type: "string"
format: "email"
expires-in:
type: "string"
pattern: >-
^(January |February |March |April |May |June |July |August
|September |October |November |December )2[0-9]{3}$
comment:
type: "string"