From 286cf9ae26bb9545bfaf82730355863e38fdbe4a Mon Sep 17 00:00:00 2001 From: Kieran Bingham Date: Thu, 1 Nov 2018 11:48:03 +0000 Subject: periject: YAML Validation Utilise pykwalify to provide a YAML schema for our data files. Define an initial project schema under projects/ to define our data layout. An example task data file is provided to demonstrate how the data could be presented in text form. A validator is provided which currently simply calls pykwalify. This is just an initial demonstration of the validation process and can be expanded upon later to provide automa{t,g}ic commit title processing, and further business logic can be added with extra tools. Signed-off-by: Kieran Bingham --- projects/project.schema.yaml | 82 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 projects/project.schema.yaml (limited to 'projects/project.schema.yaml') diff --git a/projects/project.schema.yaml b/projects/project.schema.yaml new file mode 100644 index 0000000..52a7b80 --- /dev/null +++ b/projects/project.schema.yaml @@ -0,0 +1,82 @@ +--- + +## 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 + + +### +### Our main schema +### + +type: map +mapping: + title: + type: str + required: True + + team: + type: str + required: True + enum: ['Core', 'IO', 'MM'] + + assignee: + type: str + required: True + + key: + include: uuid + required: True + + status: + type: str + required: True + enum: ['New', 'Active', 'Blocked', 'Paused', 'Done', 'Abandoned'] + +# Optional Fields + assigneee: + type: str + + bsp-commits: + desc: A sequence / list of related BSP commits + https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-bsp.git/commit/?id= + sequence: + - include: gitcommit + + upstream-commits: + desc: References to upstream commits + sequence: + - mapping: + torvalds: + desc: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id= + sequence: + - include: gitcommit + linux-next: + desc: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id= + sequence: + - include: gitcommit + + parent: + desc: A reference to another topic key which must already exist + include: uuid + + dependencies: + sequence: + - include: uuid + unique: True + + target-date: + type: date + + comments: + sequence: + - type: str -- cgit v1.2.3