Make 'default' and 'revisions' fields optional for custom revisions. When using custom revision format, then board author must create a revision.cmake file for revision handling, in which case revisions don't need to be specified in the board.yml file. Therefore make 'default' and 'revisions' fields optional in the schema and implement custom yaml validation which can validate that 'default' and 'revisions' are specified for all other revision formats. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
81 lines
1.8 KiB
YAML
81 lines
1.8 KiB
YAML
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Copyright (c) 2023, Nordic Semiconductor ASA
|
|
|
|
## A pykwalify schema for basic validation of the structure of a
|
|
## board metadata YAML file.
|
|
##
|
|
# The board.yml file is a simple list of key value pairs containing board
|
|
# information like: name, vendor, socs, variants.
|
|
schema;variant-schema:
|
|
required: false
|
|
type: seq
|
|
sequence:
|
|
- type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
cpucluster:
|
|
required: false
|
|
type: str
|
|
variants:
|
|
required: false
|
|
include: variant-schema
|
|
|
|
schema;board-schema:
|
|
type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
desc: Name of the board
|
|
vendor:
|
|
required: false
|
|
type: str
|
|
desc: SoC family of the SoC on the board.
|
|
revision:
|
|
required: false
|
|
type: map
|
|
mapping:
|
|
format:
|
|
required: true
|
|
type: str
|
|
enum:
|
|
["major.minor.patch", "letter", "number", "custom"]
|
|
default:
|
|
required: false # This field is required when 'format' != 'custom'
|
|
type: str
|
|
exact:
|
|
required: false
|
|
type: bool
|
|
revisions:
|
|
required: false # This field is required when 'format' != 'custom'
|
|
type: seq
|
|
sequence:
|
|
- type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
socs:
|
|
required: true
|
|
type: seq
|
|
sequence:
|
|
- type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
variants:
|
|
include: variant-schema
|
|
|
|
type: map
|
|
mapping:
|
|
board:
|
|
include: board-schema
|
|
boards:
|
|
type: seq
|
|
sequence:
|
|
- include: board-schema
|