summaryrefslogtreecommitdiff
path: root/projects/project.schema.yaml
blob: a93cfbd9a0a15e4d122a7ded8d3269be3ac9a67b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
---

## See https://pykwalify.readthedocs.io/en/unstable/validation-rules.html

schema;gitcommit:
  desc: SHA1 in the form \b[0-9a-f]{12,40}\b.*
  type: str
  pattern: \b[0-9a-f]{12,40}\b.*

schema;uuid:
  desc: Unique key defining items and relationship links.
        Generated by the application 'uuid'
  type: str
  pattern: \b[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\b

schema;msgid:
  desc: RFC2822-compliant Message-ID
  type: str
  pattern: .*@.*

schema;bsp:
  desc: A sequence / list of related BSP commits
        https://github.com/renesas-rcar/linux-bsp/commit/
  include: gitcommit

###
### Our main schema
###

type: map
mapping:
  title:
    type: str
    required: True

  team:
    type: str
    required: True
    enum: ['Core', 'IO', 'MM']

  key:
    include: uuid
    required: True

  status:
    type: str
    required: True
    enum: ['New', 'Active', 'Blocked', 'Paused', 'Done', 'Abandoned']

# Optional Fields
  assignee:
    type: str
    enum: ['BSP', 'Geert', 'Jacopo', 'Kaneko', 'Kieran', 'Laurent', 'Magnus', 'Marek',
           'Morimoto', 'Niklas', 'Shimoda', 'Simon', 'Ulrich', 'Wolfram']

  bsp51x:
    sequence:
    - include: bsp

  bsp41x:
    sequence:
    - include: bsp

  bsp39x:
    sequence:
    - include: bsp

  upstream:
    desc: References to upstream commits
    sequence:
    - mapping:
        torvalds:
          desc: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=
          include: gitcommit
        next:
          desc: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=
          include: gitcommit
        regex;(^patchwork.*):
          desc: https://patchwork.$INSTANCE/patch/
          type: int
        url:
          desc: Free form URL reference # URL validation is *hard*
          type: str
        lore:
          desc: https://lore.kernel.org/r/
          include: msgid

  relationships:
    desc: Relationships to other data items.
    sequence:
    - mapping:
        parent:
          desc: A reference to another topic key which must already exist
          include: uuid
        depends:
          desc: Items which must be closed before this item can be closed successfully
          include: uuid
        duplicates:
          desc: A link to another task which refers to the same work item as this
          include: uuid
        blocks:
          desc: Tasks prevented from progressing until this task is complete
          include: uuid

  target-date:
    type: date

  comments:
    sequence:
    - type: any