get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 84782,
    "url": "http://patchwork.dpdk.org/api/patches/84782/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20201207173235.1397351-1-thomas@monjalon.net/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20201207173235.1397351-1-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201207173235.1397351-1-thomas@monjalon.net",
    "date": "2020-12-07T17:32:35",
    "name": "[1/1] devtools: adjust verbosity of ABI check",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "92ee04a4bcabda2b482a3e934826db1e69027f6c",
    "submitter": {
        "id": 685,
        "url": "http://patchwork.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20201207173235.1397351-1-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 14201,
            "url": "http://patchwork.dpdk.org/api/series/14201/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=14201",
            "date": "2020-12-07T17:32:35",
            "name": "[1/1] devtools: adjust verbosity of ABI check",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/14201/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/84782/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/84782/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id F4019A04E6;\n\tMon,  7 Dec 2020 18:33:21 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id C64E1E07;\n\tMon,  7 Dec 2020 18:33:20 +0100 (CET)",
            "from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com\n [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id 2B4BECF3\n for <dev@dpdk.org>; Mon,  7 Dec 2020 18:33:19 +0100 (CET)",
            "from compute2.internal (compute2.nyi.internal [10.202.2.42])\n by mailout.nyi.internal (Postfix) with ESMTP id C4A555C0228;\n Mon,  7 Dec 2020 12:33:17 -0500 (EST)",
            "from mailfrontend2 ([10.202.2.163])\n by compute2.internal (MEProxy); Mon, 07 Dec 2020 12:33:17 -0500",
            "from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])\n by mail.messagingengine.com (Postfix) with ESMTPA id 6419C1080063;\n Mon,  7 Dec 2020 12:33:15 -0500 (EST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding; s=fm2; bh=ZhV9OLYqJcUdQQiaTyoXdXYlB+\n TfwujSE91mdSb8Utc=; b=OIpBzQi6jOMEpNclIsCy//3mqVkEiyrVeCB3v/aWls\n abCuSTed2y6uRGItRh2wx0GYS3wbnTshsOzVpXaRV1uhC3pjS3VrsLBf6iPIqKpv\n yvDvZbflk7vWntupYbnnsY+I4P40mwOGclxh6xJEdF6M3JOe4VfcGBNPcy3hUHdh\n g/54ir54asiG05O4NaLjvz5e1pT3B7V7EbtFXFOtgAUfk63aq6OfbkDxKI5klG2+\n w50U/RlooI4TPF/6oKOq8PpVazL7l3Yn9gDWYdP+Hc72PqbCSKww8snLDkorxvzF\n OuJeBhVzr0DoiSMHPDqMnZTvFTbSh+OYNGUOIhED5RlQ==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:content-transfer-encoding:date:from\n :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy\n :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=ZhV9OLYqJcUdQQiaT\n yoXdXYlB+TfwujSE91mdSb8Utc=; b=n7X0Zweicxlo3D7dBXBGbBOYM5xVQxj+3\n rZqHyiNrd4kCBKrBGeuBEBQz38XUqaaS2FbxRk4Kn4XSQmW7kCmn9qEC6monXbZr\n Ft221TJ0v4fmpnH3H0UQ3oLFeyfwH+lny2JnhXa+5r70rLMfjbK5ZiyBWMDl24WI\n ljvJWgq0j0sidPUgAtHfyum8BAyyvgrJ/VFZWrVBM7Zh4GPct55LpKr3z1R+eWf7\n +doBhBoA0EL1fymgsGLCIPio1UiJBwxp0RFJt1C3m3d0GvQJOg/absGFINZOSeaF\n tRmk5vqHJRkrVlWtXBE0NF97uUvmSj5cIYo5La7C3kqnnDqvmhCGA=="
        ],
        "X-ME-Sender": "<xms:XGfOXz11tiIe9iNR7yCEGT8LqI2NncZ3gGm3gdzKqFvYw10cdJQVDA>\n <xme:XGfOXyHVNvfXGCFQHxFchYPEj0O2fy4_AhJn6hF6V1r8rFo32YiOvXW5-8K_y7MGH\n 3sKtuAP3xmbx7OPXA>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedujedrudejgedguddtudcutefuodetggdotefrod\n ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh\n necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd\n enucfjughrpefhvffufffkofgggfestdekredtredttdenucfhrhhomhepvfhhohhmrghs\n ucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucggtf\n frrghtthgvrhhnpedvledvudehvdduudevuedvveehgeduleegiefgjeehudehtddtgedu\n ffejiefhgfenucfkphepjeejrddufeegrddvtdefrddukeegnecuvehluhhsthgvrhfuih\n iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgrlhho\n nhdrnhgvth",
        "X-ME-Proxy": "<xmx:XGfOXz69oJUW3sJLpOXVEXlhQ8Mo8MiDgrga5nlVk-GrGP3Eybm1LA>\n <xmx:XGfOX42zgZ2OaiCWhenDX5x3-guK7hURKNibZoTlJTxxQk9zHKQcWA>\n <xmx:XGfOX2HlyZ_UP4YgCqgAp78trqDJ3oSk5jXAYcvoLjchzPWiera5RQ>\n <xmx:XWfOX7TdTSFxRVzrwFQC4LDkFCmza4Kx1U65PgEOtiE_aZzmx9fSxw>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "david.marchand@redhat.com, bruce.richardson@intel.com,\n Ray Kinsella <mdr@ashroe.eu>, Neil Horman <nhorman@tuxdriver.com>",
        "Date": "Mon,  7 Dec 2020 18:32:35 +0100",
        "Message-Id": "<20201207173235.1397351-1-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.29.2",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 1/1] devtools: adjust verbosity of ABI check",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "The scripts gen-abi.sh and check-abi.sh are updated\nto print error messages to stderr so they are likely never ignored.\n\nWhen called from test-meson-builds.sh, the standard messages on stdout\ncan be more quiet depending on the verbosity settings.\nThe beginning of the ABI check is announced in verbose mode.\nThe commands are printed in very verbose mode.\nThe check result details are available in verbose mode.\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\n---\n devtools/check-abi.sh         | 21 +++++++++++----------\n devtools/gen-abi.sh           |  4 ++--\n devtools/test-meson-builds.sh |  9 +++++++--\n 3 files changed, 20 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/devtools/check-abi.sh b/devtools/check-abi.sh\nindex ab6748cfbc..381db2cdd1 100755\n--- a/devtools/check-abi.sh\n+++ b/devtools/check-abi.sh\n@@ -3,7 +3,7 @@\n # Copyright (c) 2019 Red Hat, Inc.\n \n if [ $# != 2 ] && [ $# != 3 ]; then\n-\techo \"Usage: $0 refdir newdir [warnonly]\"\n+\techo \"Usage: $0 refdir newdir [warnonly]\" >&2\n \texit 1\n fi\n \n@@ -13,23 +13,23 @@ warnonly=${3:-}\n ABIDIFF_OPTIONS=\"--suppr $(dirname $0)/libabigail.abignore --no-added-syms\"\n \n if [ ! -d $refdir ]; then\n-\techo \"Error: reference directory '$refdir' does not exist.\"\n+\techo \"Error: reference directory '$refdir' does not exist.\" >&2\n \texit 1\n fi\n incdir=$(find $refdir -type d -a -name include)\n if [ -z \"$incdir\" ] || [ ! -e \"$incdir\" ]; then\n-\techo \"WARNING: could not identify a include directory for $refdir, expect false positives...\"\n+\techo \"WARNING: could not identify an include directory for $refdir, expect false positives...\" >&2\n else\n \tABIDIFF_OPTIONS=\"$ABIDIFF_OPTIONS --headers-dir1 $incdir\"\n fi\n \n if [ ! -d $newdir ]; then\n-\techo \"Error: directory to check '$newdir' does not exist.\"\n+\techo \"Error: directory to check '$newdir' does not exist.\" >&2\n \texit 1\n fi\n incdir2=$(find $newdir -type d -a -name include)\n if [ -z \"$incdir2\" ] || [ ! -e \"$incdir2\" ]; then\n-\techo \"WARNING: could not identify a include directory for $newdir, expect false positives...\"\n+\techo \"WARNING: could not identify an include directory for $newdir, expect false positives...\" >&2\n else\n \tABIDIFF_OPTIONS=\"$ABIDIFF_OPTIONS --headers-dir2 $incdir2\"\n fi\n@@ -46,23 +46,24 @@ for dump in $(find $refdir -name \"*.dump\"); do\n \tfi\n \tdump2=$(find $newdir -name $name)\n \tif [ -z \"$dump2\" ] || [ ! -e \"$dump2\" ]; then\n-\t\techo \"Error: can't find $name in $newdir\"\n+\t\techo \"Error: cannot find $name in $newdir\" >&2\n \t\terror=1\n \t\tcontinue\n \tfi\n+\techo abidiff $ABIDIFF_OPTIONS $dump $dump2\n \tabidiff $ABIDIFF_OPTIONS $dump $dump2 || {\n \t\tabiret=$?\n-\t\techo \"Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'\"\n+\t\techo \"Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'\" >&2\n \t\terror=1\n \t\techo\n \t\tif [ $(($abiret & 3)) -ne 0 ]; then\n-\t\t\techo \"ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, this could be a script or environment issue.\"\n+\t\t\techo \"ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, this could be a script or environment issue.\" >&2\n \t\tfi\n \t\tif [ $(($abiret & 4)) -ne 0 ]; then\n-\t\t\techo \"ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue).\"\n+\t\t\techo \"ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue).\" >&2\n \t\tfi\n \t\tif [ $(($abiret & 8)) -ne 0 ]; then\n-\t\t\techo \"ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI.\"\n+\t\t\techo \"ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI.\" >&2\n \t\tfi\n \t\techo\n \t}\ndiff --git a/devtools/gen-abi.sh b/devtools/gen-abi.sh\nindex c44b0e228a..f15a3b9aaf 100755\n--- a/devtools/gen-abi.sh\n+++ b/devtools/gen-abi.sh\n@@ -3,13 +3,13 @@\n # Copyright (c) 2019 Red Hat, Inc.\n \n if [ $# != 1 ]; then\n-\techo \"Usage: $0 installdir\"\n+\techo \"Usage: $0 installdir\" >&2\n \texit 1\n fi\n \n installdir=$1\n if [ ! -d $installdir ]; then\n-\techo \"Error: install directory '$installdir' does not exist.\"\n+\techo \"Error: install directory '$installdir' does not exist.\" >&2\n \texit 1\n fi\n \ndiff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh\nindex ed44d4ffb1..16a81b6241 100755\n--- a/devtools/test-meson-builds.sh\n+++ b/devtools/test-meson-builds.sh\n@@ -194,10 +194,15 @@ build () # <directory> <target compiler | cross file> <meson options>\n \n \t\tinstall_target $builds_dir/$targetdir \\\n \t\t\t$(readlink -f $builds_dir/$targetdir/install)\n+\t\techo \"Checking ABI compatibility of $targetdir\" >&$verbose\n+\t\techo $srcdir/devtools/gen-abi.sh \\\n+\t\t\t$(readlink -f $builds_dir/$targetdir/install) >&$veryverbose\n \t\t$srcdir/devtools/gen-abi.sh \\\n-\t\t\t$(readlink -f $builds_dir/$targetdir/install)\n+\t\t\t$(readlink -f $builds_dir/$targetdir/install) >&$veryverbose\n+\t\techo $srcdir/devtools/check-abi.sh $abirefdir/$targetdir \\\n+\t\t\t$(readlink -f $builds_dir/$targetdir/install) >&$veryverbose\n \t\t$srcdir/devtools/check-abi.sh $abirefdir/$targetdir \\\n-\t\t\t$(readlink -f $builds_dir/$targetdir/install)\n+\t\t\t$(readlink -f $builds_dir/$targetdir/install) >&$verbose\n \tfi\n }\n \n",
    "prefixes": [
        "1/1"
    ]
}