1# Copyright (c) 2024 Tenstorrent AI ULC 2# 3# SPDX-License-Identifier: Apache-2.0 4 5# A pykwalify schema for basic validation of the patches.yml format. 6 7# The schema for individual patch objects 8schema;patch-schema: 9 type: seq 10 sequence: 11 - type: map 12 mapping: 13 14 # The path to the patch file, relative to the root of the module 15 # E.g. zephyr/kernel-pipe-fix-not-k-no-wait-and-ge-min-xfer-bytes.patch 16 path: 17 required: true 18 type: str 19 20 # The SHA-256 checksum of the patch file 21 # e.g. e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 22 sha256sum: 23 required: true 24 type: str 25 pattern: "^[0-9a-f]{64}$" 26 27 # The path of the module the patch is for, relative to the west workspace 28 # e.g. zephyr, or bootloader/mcuboot 29 module: 30 required: true 31 type: str 32 33 # The name of the primary author of the patch, e.g. Kermit D. Frog 34 author: 35 required: true 36 type: str 37 38 # The email address of the primary author of the patch, e.g. itsnoteasy@being.gr 39 email: 40 required: true 41 type: str 42 pattern: ".+@.+" 43 44 # The date the patch was created, in ISO 8601 date format YYYY-MM-DD 45 date: 46 required: true 47 type: date 48 format: "%Y-%m-%d" 49 50 # Whether the patch should be submitted upstream 51 upstreamable: 52 type: bool 53 default: true 54 55 # The URL of the upstream pull request to merge the patch 56 # e.g. https://github.com/zephyrproject-rtos/zephyr/pull/24486 57 merge-pr: 58 type: str 59 pattern: "^https?://" 60 61 # The URL of the upstream issue associated with the patch, such as an enhancement issue 62 # or bug report, e.g. https://github.com/zephyrproject-rtos/zephyr/issues/24485 63 issue: 64 type: str 65 pattern: "^https?://" 66 67 # Whether the associated merge-pr has been merged 68 merge-status: 69 type: bool 70 71 # The SHA-1 hash of the upstream git commit incorporating the associated merge-pr 72 # e.g. af926ae728c78affa89cbc1de811ab4211ed0f69 73 merge-commit: 74 type: str 75 pattern: "^[0-9a-f]{40}" 76 77 # The date the associated merge-pr was merged, in ISO 8601 date format YYYY-MM-DD 78 merge-date: 79 type: date 80 format: "%Y-%m-%d" 81 82 # The command used to apply the change represented by the patch 83 apply-command: 84 type: str 85 default: "git apply" 86 87 # Comments useful to other developers about the patch, 88 # e.g. "This is a workaround for xyz and probably should not go upstream" 89 comments: 90 type: str 91 92 # Custom field that may be used for any purpose. For example, if the chosen apply-patch 93 # command is able to filter based on semantic versioning and a particular patch file 94 # only applies to version 1.2.3, one could specify e.g. custom: [1, 2, 3]. 95 # This field may be of any type and is not validated. 96 custom: 97 type: any 98 99# The top-level schema for patches.yml files 100type: map 101mapping: 102 103 # The list of patch objects 104 patches: 105 include: patch-schema 106 107 # The command used to undo local changes to each module when "west patch clean" is run 108 checkout-command: 109 type: str 110 default: "git checkout ." 111 112 # The command used to clean each module when "west patch clean" is run 113 clean-command: 114 type: str 115 default: "git clean -d -f -x" 116