blob: f74a589f706ad0c16a458fb7893a5254d1fe0d32 [file] [log] [blame]
# Copyright (c) 2024 Tenstorrent AI ULC
#
# SPDX-License-Identifier: Apache-2.0
# A pykwalify schema for basic validation of the patches.yml format.
# The schema for individual patch objects
schema;patch-schema:
type: seq
sequence:
- type: map
mapping:
# The path to the patch file, relative to patch-base
# E.g. zephyr/kernel-pipe-fix-not-k-no-wait-and-ge-min-xfer-bytes.patch
path:
required: true
type: str
# The SHA-256 checksum of the patch file
# e.g. e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
sha256sum:
required: true
type: str
pattern: "^[0-9a-f]{64}$"
# The path of the module the patch is for, relative to the west workspace
# e.g. zephyr, or bootloader/mcuboot
module:
required: true
type: str
# The name of the primary author of the patch, e.g. Kermit D. Frog
author:
required: true
type: str
# The email address of the primary author of the patch, e.g. itsnoteasy@being.gr
email:
required: true
type: str
pattern: ".+@.+"
# The date the patch was created, in ISO 8601 date format YYYY-MM-DD
date:
required: true
type: date
format: "%Y-%m-%d"
# Whether the patch should be submitted upstream
upstreamable:
type: bool
default: true
# The URL of the upstream pull request to merge the patch
# e.g. https://github.com/zephyrproject-rtos/zephyr/pull/24486
merge-pr:
type: str
pattern: "^https?://"
# The URL of the upstream issue associated with the patch, such as an enhancement issue
# or bug report, e.g. https://github.com/zephyrproject-rtos/zephyr/issues/24485
issue:
type: str
pattern: "^https?://"
# Whether the associated merge-pr has been merged
merge-status:
type: bool
# The SHA-1 hash of the upstream git commit incorporating the associated merge-pr
# e.g. af926ae728c78affa89cbc1de811ab4211ed0f69
merge-commit:
type: str
pattern: "^[0-9a-f]{40}"
# The date the associated merge-pr was merged, in ISO 8601 date format YYYY-MM-DD
merge-date:
type: date
format: "%Y-%m-%d"
# The command used to apply the change represented by the patch
apply-command:
type: str
default: "git apply"
# Comments useful to other developers about the patch,
# e.g. "This is a workaround for xyz and probably should not go upstream"
comments:
type: str
# Custom field that may be used for any purpose. For example, if the chosen apply-patch
# command is able to filter based on semantic versioning and a particular patch file
# only applies to version 1.2.3, one could specify e.g. custom: [1, 2, 3].
# This field may be of any type and is not validated.
custom:
type: any
# The top-level schema for patches.yml files
type: map
mapping:
# The list of patch objects
patches:
include: patch-schema
# The command used to undo local changes to each module when "west patch clean" is run
checkout-command:
type: str
default: "git checkout ."
# The command used to clean each module when "west patch clean" is run
clean-command:
type: str
default: "git clean -d -f -x"