get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/130210/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 130210,
    "url": "https://patches.dpdk.org/api/patches/130210/?format=api",
    "web_url": "https://patches.dpdk.org/project/ci/patch/20230811200018.5650-3-ahassick@iol.unh.edu/",
    "project": {
        "id": 5,
        "url": "https://patches.dpdk.org/api/projects/5/?format=api",
        "name": "CI",
        "link_name": "ci",
        "list_id": "ci.dpdk.org",
        "list_email": "ci@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dpdk-ci",
        "webscm_url": "https://git.dpdk.org/tools/dpdk-ci/",
        "list_archive_url": "https://inbox.dpdk.org/ci",
        "list_archive_url_format": "https://inbox.dpdk.org/ci/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230811200018.5650-3-ahassick@iol.unh.edu>",
    "list_archive_url": "https://inbox.dpdk.org/ci/20230811200018.5650-3-ahassick@iol.unh.edu",
    "date": "2023-08-11T20:00:14",
    "name": "[v9,2/6] containers/inventory: Add inventory for container builder",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "bdb22a3e34724c82f95d4f597efcaa3a042cf6cb",
    "submitter": {
        "id": 3127,
        "url": "https://patches.dpdk.org/api/people/3127/?format=api",
        "name": "Adam Hassick",
        "email": "ahassick@iol.unh.edu"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/ci/patch/20230811200018.5650-3-ahassick@iol.unh.edu/mbox/",
    "series": [
        {
            "id": 29199,
            "url": "https://patches.dpdk.org/api/series/29199/?format=api",
            "web_url": "https://patches.dpdk.org/project/ci/list/?series=29199",
            "date": "2023-08-11T20:00:12",
            "name": "Community Lab Containers and Builder Engine",
            "version": 9,
            "mbox": "https://patches.dpdk.org/series/29199/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/130210/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/130210/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ci-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 642E443038;\n\tFri, 11 Aug 2023 22:03:04 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5E7F540E03;\n\tFri, 11 Aug 2023 22:03:04 +0200 (CEST)",
            "from mail-oi1-f193.google.com (mail-oi1-f193.google.com\n [209.85.167.193])\n by mails.dpdk.org (Postfix) with ESMTP id 0B28E40144\n for <ci@dpdk.org>; Fri, 11 Aug 2023 22:03:03 +0200 (CEST)",
            "by mail-oi1-f193.google.com with SMTP id\n 5614622812f47-3a7a180c3faso2053160b6e.2\n for <ci@dpdk.org>; Fri, 11 Aug 2023 13:03:02 -0700 (PDT)",
            "from pogmachine2.loudonlune.net ([216.212.51.182])\n by smtp.gmail.com with ESMTPSA id\n f19-20020ac84993000000b004053bcffe49sm1399874qtq.9.2023.08.11.13.03.01\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 11 Aug 2023 13:03:01 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1691784182; x=1692388982;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=qOI8gRaScdM/3zKvP0+q0gIiBTMAEtS5RfGBzNGYuiM=;\n b=SEfW6ASdmInP1/DYT78kg8tGUSgo+obOsKbxy74aUvsseNUWojP4jaKzzYaMcq+Ipr\n a/x8+hZXlWGefvTPGooFSUOVXRGySzh9z0H3ZFNnR674NcuWywgbfdO7c5gRVLcGWH/p\n BOr+z2w4D0DfJV0UvEMaUB1yl4Z6cn9eYQxbI=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20221208; t=1691784182; x=1692388982;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=qOI8gRaScdM/3zKvP0+q0gIiBTMAEtS5RfGBzNGYuiM=;\n b=iXJZO2jBK1THAt0awpdR1MCmgK2xQinNSYaGqt6Ob7VQGpFxlow5upKZV0HMT3X0VY\n EQTwDsuvLWZGl1E8fo45RpNzgeUNS37jJZzkBcyf9358/wj4/g82Yw4Nx9BFcIax0nbu\n 0Q9PQTjzSx/DQk8/8YG04IyZpD85M8PD9Uu21kYpOGX/jNV/z2pHyjtWeDKFSn/ah/Ic\n B5id2jMNVhwETYdSNnwEJxSzfHnnJW2HklV2yEvH8UaYVhGNwt35tkpc9ckzsuoByonY\n 38pprp9OsCbQGgTwyYayj37ZMkDlZ8Q52EVQzmw7vbdyXurlVTzxbj2Z4JIDY046X5Ro\n 4U5g==",
        "X-Gm-Message-State": "AOJu0YzLKUBSotQi54hUdxQl6O4WhuIkhap7MjkHoJV+zvg+LKoB3yzk\n DdkSVAZRWVOcns394vdLe9GJXOSV5y6mwW5k90/kZrff0JJue7Jj+1TTopaWNHKwflkaKO/6WiG\n VCneN0SAfKPH1FT7x6jmT5E6vr2buM3YxODal8nZXYFAiIq8islBnrvR4ZO+RJSVdnLe6yQ==",
        "X-Google-Smtp-Source": "\n AGHT+IHt53MFJcnBWW2IBev+ccvT0GiNr8i4Hc6/pb22XIJ8zqCz3vzAuxyCTQ0k43S62wjkXalvEQ==",
        "X-Received": "by 2002:a05:6358:4297:b0:139:e7db:3f3f with SMTP id\n s23-20020a056358429700b00139e7db3f3fmr2875466rwc.10.1691784182037;\n Fri, 11 Aug 2023 13:03:02 -0700 (PDT)",
        "From": "Adam Hassick <ahassick@iol.unh.edu>",
        "To": "ci@dpdk.org",
        "Cc": "aconole@redhat.com, alialnu@nvidia.com,\n Owen Hilyard <ohilyard@iol.unh.edu>, Adam Hassick <ahassick@iol.unh.edu>",
        "Subject": "[PATCH v9 2/6] containers/inventory: Add inventory for container\n builder",
        "Date": "Fri, 11 Aug 2023 16:00:14 -0400",
        "Message-ID": "<20230811200018.5650-3-ahassick@iol.unh.edu>",
        "X-Mailer": "git-send-email 2.41.0",
        "In-Reply-To": "<20230811200018.5650-1-ahassick@iol.unh.edu>",
        "References": "<20230811200018.5650-1-ahassick@iol.unh.edu>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "ci@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK CI discussions <ci.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/ci>,\n <mailto:ci-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/ci/>",
        "List-Post": "<mailto:ci@dpdk.org>",
        "List-Help": "<mailto:ci-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/ci>,\n <mailto:ci-request@dpdk.org?subject=subscribe>",
        "Errors-To": "ci-bounces@dpdk.org"
    },
    "content": "From: Owen Hilyard <ohilyard@iol.unh.edu>\n\nAdds a yaml file used to define what containers should be built, what\npackages the containers should have, what platforms to build for and how they\nshould be tagged.\n\nAlso adds a JSON schema, which can be used to validate that the\ninventory file is well-formed.\n\nSigned-off-by: Owen Hilyard <ohilyard@iol.unh.edu>\nSigned-off-by: Adam Hassick <ahassick@iol.unh.edu>\n---\n containers/template_engine/inventory.yaml     | 476 ++++++++++++++++++\n .../template_engine/inventory_schema.json     | 221 ++++++++\n 2 files changed, 697 insertions(+)\n create mode 100644 containers/template_engine/inventory.yaml\n create mode 100644 containers/template_engine/inventory_schema.json",
    "diff": "diff --git a/containers/template_engine/inventory.yaml b/containers/template_engine/inventory.yaml\nnew file mode 100644\nindex 0000000..be7354e\n--- /dev/null\n+++ b/containers/template_engine/inventory.yaml\n@@ -0,0 +1,476 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright (c) 2023 University of New Hampshire\n+---\n+abi:\n+  # versions should also include the abi versions for all stable ABIs.\n+  versions:\n+    - dpdk_version: # LTS - 2\n+        major: 21\n+        minor: 11\n+        revision: 0\n+        git_tag: \"21.11\"\n+      abi_version:\n+        major: 22\n+        minor: 0\n+    - dpdk_version:\n+        major: 22 # LTS - 1\n+        minor: 11\n+        revision: 1\n+        git_tag: \"tags/v22.11.1\"\n+      abi_version:\n+        major: 23\n+        minor: 10 # .xml comparison\n+    - dpdk_version:\n+        major: 22 # LTS\n+        minor: 11\n+        revision: 1\n+        git_tag: \"tags/v22.11.1\"\n+      abi_version:\n+        major: 23\n+        minor: 11 # .so comparison\n+\n+dockerfiles:\n+  groups:\n+    all:\n+      package_manager_command: \"NO_INSTALL_COMMAND_SET\"\n+      parent: \"NONE\"\n+      packages:\n+        - gcc\n+        - make\n+        - git\n+        - sudo\n+        - curl\n+        - automake\n+        - autoconf\n+        - flex\n+        - bison\n+        - bc\n+    rpm:\n+      parent: \"all\"\n+      package_manager_command: yum install -y\n+      packages:\n+        - diffutils\n+        - pkg-config\n+        - python3\n+        - python3-pip\n+        - librdmacm\n+        - rdma-core-devel\n+        - libmnl-devel\n+        - ccache\n+        - zip\n+        - autoconf\n+        - libbpf-devel\n+    redhat_family:\n+      parent: \"rpm\"\n+      packages: []\n+    fedora:\n+      parent: \"redhat_family\"\n+      packages:\n+        - python3-pyelftools\n+        - zip\n+        - clang\n+        - ninja-build\n+        - elfutils-libelf-devel\n+        - jansson-devel\n+        - libatomic\n+        - libpcap-devel\n+        - numactl-devel\n+        - findutils\n+        - libtool\n+        - elfutils-devel\n+        - libxml2-devel\n+        - libabigail\n+        - openssl-devel\n+    fedora_coverity:\n+      parent: fedora\n+      packages: []\n+    fedora_clang:\n+      parent: fedora\n+      packages: []\n+    centos8:\n+      parent: \"redhat_family\"\n+      packages:\n+        - elfutils-libelf-devel\n+        - jansson-devel\n+        - libatomic\n+        - libpcap-devel\n+        - numactl-devel\n+        - libabigail\n+        - openssl-devel\n+    centos9:\n+      parent: \"redhat_family\"\n+      package_manager_command: \"yum install --allowerasing -y\"\n+      packages:\n+        - elfutils-libelf-devel\n+        - jansson-devel\n+        - libatomic\n+        - libpcap-devel\n+        - numactl-devel\n+        - libtool\n+        - g++\n+        - elfutils-devel\n+        - libxml2-devel\n+        - openssl-devel\n+    rhel:\n+      parent: \"redhat_family\"\n+      package_manager_command: \"yum install -y\"\n+      packages:\n+        - elfutils-libelf-devel\n+        - jansson-devel\n+        - libatomic\n+        - libpcap-devel\n+        - numactl-devel\n+        - openssl-devel\n+        - libabigail\n+    rhel7:\n+      parent: \"rhel\"\n+      packages:\n+        - ninja-build\n+    rhel8:\n+      parent: \"rhel\"\n+      package_manager_command: \"yum --allowerasing install -y\"\n+      packages:\n+        - ninja-build\n+        - libxml2-devel\n+    rhel9:\n+      parent: \"rhel\"\n+      package_manager_command: \"yum --allowerasing install -y\"\n+      packages:\n+        - libxml2-devel\n+    opensuse:\n+      parent: \"rpm\"\n+      package_manager_command: \"zypper install -y\"\n+      packages:\n+        - python3-pyelftools\n+        - ninja\n+        - gzip\n+        - libelf-devel\n+        - libjansson-devel\n+        - librdmacm1\n+        - libatomic1\n+        - libnuma-devel\n+        - libabigail-tools\n+        - tar\n+        - openssl-devel\n+    alpine:\n+      parent: \"all\"\n+      package_manager_command: \"apk add\"\n+      packages:\n+        - bsd-compat-headers\n+        - ccache\n+        - jansson-dev\n+        - libarchive-dev\n+        - libbpf-dev\n+        - libc-dev\n+        - libpcap-dev\n+        - linux-headers\n+        - ninja\n+        - numactl-dev\n+        - openssl-dev\n+        - py3-pip\n+        - py3-elftools\n+        - py3-setuptools\n+        - py3-wheel\n+        - zlib-dev\n+        - python3\n+        - bash\n+        - zip\n+        - meson\n+    arch:\n+      parent: \"all\"\n+      package_manager_command: \"pacman -Syu --noconfirm\"\n+      packages:\n+        - glibc\n+        - cmake\n+        - ninja\n+        - pandoc\n+        - python\n+        - python-docutils\n+        - ethtool\n+        - file\n+        - fakeroot\n+        - pkg-config\n+        - numactl\n+        - elfutils\n+        - gawk\n+        - diffutils\n+        - python-pip\n+        - libabigail\n+        - openssl\n+        - libbpf\n+    debian:\n+      parent: \"all\"\n+      package_manager_command: \"apt-get update && apt-get install --no-install-recommends -y\"\n+      packages:\n+        - libnuma-dev\n+        - zip\n+        - librdmacm1\n+        - libcrypto++-dev\n+        - python3-pyelftools\n+        - libxml2-dev\n+        - libelf-dev\n+        - libpcap-dev\n+        - libjansson-dev\n+        - python3-setuptools\n+        - autoconf\n+        - pkg-config\n+        - libtool\n+        - ccache\n+        - libatomic1\n+        - python3-wheel\n+        - libdw-dev\n+        - rdma-core\n+        - ninja-build\n+        - automake\n+        - librdmacm-dev\n+        - libmnl-dev\n+        - python3-pip\n+        - build-essential\n+        - aspell-en\n+        - parallel\n+        - python3-grpcio\n+        - lcov\n+        - libbpf-dev\n+        - libssl-dev\n+    debian10:\n+      parent: \"debian\"\n+      packages: []\n+    debian11:\n+      parent: \"debian\"\n+      packages:\n+        - nasm\n+    debian11_arm_ipsec:\n+      parent: \"debian11\"\n+      packages: []\n+    ubuntu:\n+      parent: 'debian'\n+      packages: []\n+    ubuntu18.04:\n+      parent: \"ubuntu\"\n+      packages: []\n+    ubuntu20.04:\n+      parent: \"ubuntu\"\n+      packages:\n+        - python3-grpcio\n+        - lcov\n+        - jq\n+        - default-jre\n+        - nodejs\n+    ubuntu22.04:\n+      parent: \"ubuntu\"\n+      packages:\n+        - python3-grpcio\n+        - lcov\n+        - abigail-tools\n+        - jq\n+    ubuntu_cross: # x86 -> ARM\n+      parent: \"ubuntu20.04\"\n+      packages:\n+        - clang\n+        - llvm\n+        - llvm-dev\n+        - llvm-runtime\n+        - lld\n+        - gcc-aarch64-linux-gnu\n+        - libgcc-9-dev-arm64-cross\n+        - libatomic1-arm64-cross\n+        - libc6-dev-arm64-cross\n+        - pkg-config-aarch64-linux-gnu\n+        - dpkg-dev\n+        - gcc-arm-linux-gnueabihf\n+        - libc6-dev-armhf-cross\n+        - pkg-config-arm-linux-gnueabihf\n+    ubuntu_acvp_fips:\n+      parent: \"ubuntu20.04\"\n+      packages:\n+        - nasm\n+    ubuntu_sve:\n+      parent: \"ubuntu20.04\"\n+      packages:\n+        - gcc-10\n+  targets:\n+    # Alpine\n+    - name: alpine_compile\n+      group: \"alpine\"\n+      base_image: alpine\n+      platforms: [linux/amd64, linux/arm64]\n+      force_disable_abi: true\n+      minimum_dpdk_version:\n+        major: 22\n+        minor: 0\n+        revision: 0\n+      extra_information:\n+        amd64_environment_id: 45\n+        arm64_environment_id: 75\n+\n+    # Arch\n+    - name: arch_compile\n+      group: \"arch\"\n+      base_image: archlinux:base\n+      platforms: [linux/amd64]\n+      extra_information:\n+        amd64_environment_id: 26\n+\n+    - name: fedora37_compile\n+      group: \"fedora\"\n+      base_image: fedora:37\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_information:\n+        amd64_environment_id: 69\n+        arm64_environment_id: 70\n+\n+    - name: fedora38_compile\n+      group: \"fedora\"\n+      base_image: fedora:38\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_information:\n+        amd64_environment_id: 71\n+        arm64_environment_id: 72\n+\n+    - name: fedora38_clang\n+      group: \"fedora_clang\"\n+      base_image: fedora:38\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_information:\n+        amd64_environment_id: 73\n+        arm64_environment_id: 74\n+\n+    - name: fedora37_coverity\n+      group: \"fedora_coverity\"\n+      base_image: fedora:37\n+      force_disable_abi: true\n+      requires_coverity: true\n+      platforms: [linux/amd64]\n+\n+    # CentOs\n+    - name: centosstream8_compile\n+      group: \"centos8\"\n+      base_image: quay.io/centos/centos:stream8\n+      platforms: [linux/amd64]\n+      extra_information:\n+        amd64_environment_id: 39\n+\n+    - name: centosstream9_compile\n+      group: \"centos9\"\n+      base_image: quay.io/centos/centos:stream9\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_information:\n+        amd64_environment_id: 53\n+        arm64_environment_id: 63\n+\n+    # RHEL\n+    - name: rhel7_compile\n+      group: \"rhel7\"\n+      base_image: registry.access.redhat.com/ubi7/ubi\n+      platforms: [linux/amd64]\n+      extra_information:\n+        amd64_environment_id: 36\n+\n+    - name: rhel8_compile\n+      group: \"rhel8\"\n+      base_image: registry.access.redhat.com/ubi8/ubi\n+      platforms: [linux/amd64]\n+      extra_information:\n+        amd64_environment_id: 37\n+\n+    - name: rhel9_compile\n+      group: \"rhel9\"\n+      base_image: registry.access.redhat.com/ubi9/ubi\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_information:\n+        amd64_environment_id: 76\n+        arm64_environment_id: 77\n+\n+    # OpenSuse\n+    - name: opensuse-leap15_compile\n+      group: \"opensuse\"\n+      base_image: opensuse/leap:15\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_information:\n+        amd64_environment_id: 25\n+        arm64_environment_id: 67\n+\n+    # Debian\n+    - name: debian10_compile # debian 10\n+      group: \"debian10\"\n+      base_image: \"debian:buster\"\n+      libabigail_revision: libabigail-2.2\n+      platforms: [linux/amd64]\n+      extra_information:\n+        amd64_environment_id: 52\n+\n+    - name: debian11_compile # debian 11\n+      group: \"debian11\"\n+      base_image: \"debian:bullseye\"\n+      libabigail_revision: libabigail-2.2\n+      platforms:\n+        - linux/amd64\n+        - linux/arm64\n+      extra_information:\n+        amd64_environment_id: 51\n+        arm64_environment_id: 64\n+\n+    # Ubuntu\n+    - name: ubuntu20.04_compile\n+      group: \"ubuntu20.04\"\n+      base_image: \"ubuntu:20.04\"\n+      platforms: [linux/amd64, linux/arm64]\n+      extra_tags:\n+        - $R/ubuntu20.04_libabigail:latest\n+        - $R/ubuntu20.04_libabigail:$T\n+        - $R/ubuntu20.04_spell-check:latest\n+        - $R/ubuntu20.04_spell-check:$T\n+        - $R/ubuntu20.04_sonarscanner:latest\n+        - $R/ubuntu20.04_sonarscanner:$T\n+      extra_information:\n+        amd64_environment_id: 38\n+        arm64_environment_id: 62\n+\n+    # x86 -> ARM cross compile\n+    - name: ubuntu20.04_cross\n+      group: \"ubuntu_cross\"\n+      base_image: \"ubuntu:20.04\"\n+      platforms: [linux/amd64]\n+      cross_file: \"config/arm/arm64_armv8_linux_gcc\"\n+      extra_information:\n+        amd64_environment_id: 47\n+\n+    - name: ubuntu20.04_acvp_fips\n+      group: \"ubuntu_acvp_fips\"\n+      base_image: \"ubuntu:20.04\"\n+      platforms: [linux/amd64]\n+      force_disable_abi: true\n+      extra_tags: []\n+      extra_information:\n+        # Using the same environment ID as Ubuntu 20.04\n+        amd64_environment_id: 38\n+\n+    # Also, x86 -> ARM cross compile (for SVE test)\n+    - name: ubuntu20.04_sve_compile\n+      group: \"ubuntu_sve\"\n+      base_image: \"arm64v8/ubuntu:20.04\"\n+      platforms: [linux/arm64]\n+      extra_information:\n+        arm64_environment_id: 46\n+\n+    # TEMPORARY: This has the forked IPsec lib developed by ARM. This causes issues on older LTS versions of DPDK.\n+    # Once all supported and tested LTS versions no longer break when this lib is installed, recombine with debian11_compile.\n+    - name: debian11_arm_ipsec\n+      group: \"debian11_arm_ipsec\"\n+      base_image: \"debian:bullseye\"\n+      platforms: [linux/arm64]\n+      force_disable_abi: true\n+      extra_tags:\n+        - $R/debian11_zuc_compile:latest\n+        - $R/debian11_snow3g_compile:latest\n+        - $R/debian11_zuc_compile:$T\n+        - $R/debian11_snow3g_compile:$T\n+      extra_information:\n+        arm64_environment_id: 58\n+\n+    - name: ubuntu22.04_compile\n+      group: \"ubuntu22.04\"\n+      base_image: \"ubuntu:22.04\"\n+      platforms: [linux/amd64]\n+      extra_information:\n+        amd64_environment_id: 54\ndiff --git a/containers/template_engine/inventory_schema.json b/containers/template_engine/inventory_schema.json\nnew file mode 100644\nindex 0000000..c853287\n--- /dev/null\n+++ b/containers/template_engine/inventory_schema.json\n@@ -0,0 +1,221 @@\n+{\n+    \"$schema\": \"https://json-schema.org/draft-07/schema\",\n+    \"title\": \"dpdklab-ci container inventory schema\",\n+    \"$comment\": \"SPDX-License-Identifier: BSD-3-Clause\\nCopyright (c) 2023 University of New Hampshire\",\n+    \"type\": \"object\",\n+    \"properties\": {\n+        \"abi\": {\n+            \"type\": \"object\",\n+            \"properties\": {\n+                \"versions\": {\n+                    \"type\": \"array\",\n+                    \"items\": {\n+                        \"type\": \"object\",\n+                        \"properties\": {\n+                            \"dpdk_version\": {\n+                                \"type\": \"object\",\n+                                \"properties\": {\n+                                    \"major\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The major version number (usually the year of release)\"\n+                                    },\n+                                    \"minor\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The minor version number (usually the month of release)\"\n+                                    },\n+                                    \"revision\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The revision version number. Starts at 0.\"\n+                                    },\n+                                    \"git_tag\": {\n+                                        \"type\": \"string\",\n+                                        \"description\": \"The git tag to check out to get this ABI version\"\n+                                    }\n+                                },\n+                                \"required\": [\n+                                    \"major\",\n+                                    \"minor\",\n+                                    \"revision\",\n+                                    \"git_tag\"\n+                                ],\n+                                \"additionalProperties\": false\n+                            },\n+                            \"abi_version\": {\n+                                \"type\": \"object\",\n+                                \"properties\": {\n+                                    \"major\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The major version number (usually the year of release)\"\n+                                    },\n+                                    \"minor\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The minor version number (usually the month of release)\"\n+                                    }\n+                                },\n+                                \"required\": [\n+                                    \"major\",\n+                                    \"minor\"\n+                                ],\n+                                \"additionalProperties\": false\n+                            }\n+                        },\n+                        \"required\": [\n+                            \"dpdk_version\",\n+                            \"abi_version\"\n+                        ]\n+                    },\n+                    \"minItems\": 0\n+                }\n+            },\n+            \"required\": [\n+                \"versions\"\n+            ],\n+            \"additionalProperties\": false\n+        },\n+        \"dockerfiles\": {\n+            \"type\": \"object\",\n+            \"properties\": {\n+                \"groups\": {\n+                    \"type\": \"object\",\n+                    \"patternProperties\": {\n+                        \"^[a-z][a-z_0-9\\\\.]+$\": {\n+                            \"type\": \"object\",\n+                            \"properties\": {\n+                                \"package_manager_command\": {\n+                                    \"type\": \"string\",\n+                                    \"description\": \"The command to install packages without user input.\"\n+                                },\n+                                \"parent\": {\n+                                    \"type\": \"string\",\n+                                    \"description\": \"Which group to inherit from, or NONE if no parent exists\"\n+                                },\n+                                \"packages\": {\n+                                    \"type\": \"array\",\n+                                    \"description\": \"A list of package names to install\",\n+                                    \"items\": {\n+                                        \"type\": \"string\"\n+                                    },\n+                                    \"uniqueItems\": true\n+                                }\n+                            },\n+                            \"required\": [\n+                                \"parent\",\n+                                \"packages\"\n+                            ],\n+                            \"additionalProperties\": false\n+                        }\n+                    },\n+                    \"minProperties\": 1\n+                },\n+                \"targets\": {\n+                    \"type\": \"array\",\n+                    \"items\": {\n+                        \"type\": \"object\",\n+                        \"properties\": {\n+                            \"name\": {\n+                                \"type\": \"string\",\n+                                \"description\": \"The name of the docker container\"\n+                            },\n+                            \"group\": {\n+                                \"type\": \"string\",\n+                                \"description\": \"Which group the target is a member of\"\n+                            },\n+                            \"base_image\": {\n+                                \"type\": \"string\",\n+                                \"description\": \"The base docker image.\"\n+                            },\n+                            \"platforms\": {\n+                                \"type\": \"array\",\n+                                \"description\": \"What platforms to build for\",\n+                                \"items\": {\n+                                    \"type\": \"string\",\n+                                    \"enum\": [\n+                                        \"linux/amd64\",\n+                                        \"linux/arm64\",\n+                                        \"linux/riscv64\",\n+                                        \"linux/ppc64le\",\n+                                        \"linux/arm/v7\",\n+                                        \"linux/arm/v6\"\n+                                    ]\n+                                },\n+                                \"minItems\": 1\n+                            },\n+                            \"cross_file\": {\n+                                \"type\": \"string\",\n+                                \"description\": \"A cross file to compile meson with. If not present, meson's automatic behavior will be used.\"\n+                            },\n+                            \"libabigail_revision\": {\n+                                \"type\": \"string\",\n+                                \"description\": \"A revision or branch of libabigail to check out before building for a given target.\"\n+                            },\n+                            \"force_disable_abi\": {\n+                                \"type\": \"boolean\",\n+                                \"description\": \"Whether to forcibly disable ABI for this target. This should be used as a temporary measure until a fix can be created.\",\n+                                \"default\": \"false\"\n+                            },\n+                            \"requires_coverity\": {\n+                                \"type\": \"boolean\",\n+                                \"description\": \"Whether this target requires the Coverity Scan binaries.\",\n+                                \"default\": \"false\"\n+                            },\n+                            \"minimum_dpdk_version\": {\n+                                \"type\": \"object\",\n+                                \"properties\": {\n+                                    \"major\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The major version number (usually the year of release)\"\n+                                    },\n+                                    \"minor\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The minor version number (usually the month of release)\"\n+                                    },\n+                                    \"revision\": {\n+                                        \"type\": \"integer\",\n+                                        \"description\": \"The revision version number. Starts at 0.\"\n+                                    }\n+                                },\n+                                \"required\": [\n+                                    \"major\",\n+                                    \"minor\",\n+                                    \"revision\"\n+                                ],\n+                                \"additionalProperties\": false\n+                            },\n+                            \"extra_tags\": {\n+                                \"type\": \"array\",\n+                                \"description\": \"Tags to apply to this image\",\n+                                \"items\": {\n+                                    \"type\": \"string\",\n+                                    \"description\": \"$R will be replaced with the 'registry_hostname' variable in this file. $T will be replaced with a timestamp in the form of '%Y-%m-%d'. $N will be replaced by the name of the target.. The tags '$R/$N:latest' and '$R/$N:$T' will always be present\"\n+                                }\n+                            },\n+                            \"extra_information\": {\n+                                \"type\": \"object\",\n+                                \"description\": \"Extra information to be stored as a JSON file at /container_info.json\",\n+                                \"additionalProperties\": true\n+                            }\n+                        },\n+                        \"required\": [\n+                            \"name\",\n+                            \"group\",\n+                            \"base_image\",\n+                            \"platforms\"\n+                        ],\n+                        \"additionalProperties\": false\n+                    },\n+                    \"minItems\": 1\n+                }\n+            },\n+            \"required\": [\n+                \"groups\",\n+                \"targets\"\n+            ],\n+            \"additionalProperties\": false\n+        }\n+    },\n+    \"required\": [\n+        \"abi\",\n+        \"dockerfiles\"\n+    ],\n+    \"additionalProperties\": false\n+}\n\\ No newline at end of file\n",
    "prefixes": [
        "v9",
        "2/6"
    ]
}