Show a cover letter.

GET /api/covers/147/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 147,
    "url": "http://patches.dpdk.org/api/covers/147/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20230918130352.379478-1-bruce.richardson@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.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": "<20230918130352.379478-1-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230918130352.379478-1-bruce.richardson@intel.com",
    "date": "2023-09-18T13:03:47",
    "name": "[RFC,v2,0/5] use script to simplify use of cmdline lib",
    "submitter": {
        "id": 20,
        "url": "http://patches.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20230918130352.379478-1-bruce.richardson@intel.com/mbox/",
    "series": [
        {
            "id": 29536,
            "url": "http://patches.dpdk.org/api/series/29536/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29536",
            "date": "2023-09-18T13:03:47",
            "name": "use script to simplify use of cmdline lib",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/29536/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/147/comments/",
    "headers": {
        "Return-Path": "<dev-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 DE0AE425D1;\n\tMon, 18 Sep 2023 15:04:03 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B2A114025D;\n\tMon, 18 Sep 2023 15:04:03 +0200 (CEST)",
            "from mgamail.intel.com (mgamail.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id AAE1A4025C\n for <dev@dpdk.org>; Mon, 18 Sep 2023 15:04:01 +0200 (CEST)",
            "from orsmga007.jf.intel.com ([10.7.209.58])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 18 Sep 2023 06:04:00 -0700",
            "from silpixa00401385.ir.intel.com ([10.237.214.14])\n by orsmga007.jf.intel.com with ESMTP; 18 Sep 2023 06:03:59 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1695042241; x=1726578241;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=Hu3lNUoELAvBwv2HLT5VbuF76ndv2f7ulw/8vCOsS9o=;\n b=Ohxx9tlVs6pugwa/be5dPqDvkURncDJXRItA7Kcvzh7DZ4oCk/vjFqJp\n Sw/LgNkCYNi28mRRtSlb/d1t9bCIfEfxfzUjOzbAhoGfU6iYWglho0eNq\n 8ivK2YB4MAxZ6D6rVLJLSEO72VCIP0aRDQBwru0wxcpy6WPZXFvhSYoQt\n ooz+8olw99cByFJWiJDhj+aQpFkrEA4QATbDt8cFP1p+6btuRIMSF1oPf\n az0t6L4Ku29NCZncQtu35dCAY3rx6IuvvravvGZ31pt6R7nT+SC9kS7b6\n Lntwib0IPPUYiFsktI1DmmeNpzdKb/7m2TDB0laOiC84SkLrWbc4b0gpu w==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10837\"; a=\"369969363\"",
            "E=Sophos;i=\"6.02,156,1688454000\"; d=\"scan'208\";a=\"369969363\"",
            "E=McAfee;i=\"6600,9927,10837\"; a=\"739130623\"",
            "E=Sophos;i=\"6.02,156,1688454000\"; d=\"scan'208\";a=\"739130623\""
        ],
        "X-ExtLoop1": "1",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "Olivier Matz <olivier.matz@6wind.com>,\n Bruce Richardson <bruce.richardson@intel.com>",
        "Subject": "[RFC PATCH v2 0/5] use script to simplify use of cmdline lib",
        "Date": "Mon, 18 Sep 2023 14:03:47 +0100",
        "Message-Id": "<20230918130352.379478-1-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 2.39.2",
        "In-Reply-To": "<20230802170052.955323-1-bruce.richardson@intel.com>",
        "References": "<20230802170052.955323-1-bruce.richardson@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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"
    },
    "content": "The DPDK commandline library is widely used by apps and examples within\nDPDK, but requires a lot of boilerplate code definitions in order to\nused. We can improve this situation by creating a simple python script\nto automatically generate the boilerplate from a list of commands.\n\nThis RFC v2 contains the (slightly enhanced from v1) script, as well as\na set of three patches showing its use, by converting three examples\nto use the script instead of having the hard-coded boilerplate. Once\nthe script is used, adding a new command becomes as simple as adding\nthe desired command to the .list file, and then writing the required\nfunction which will be called for that command. No other boilerplate\ncoding is necessary.\n\nScript obviously does not cover the full range of capabilities of the\ncommandline lib, but does cover the most used parts - with one\nexception: it does not yet support defining the help text for a\ncommand (hence the fact this is another RFC). If there is a general\nacceptance that this is worthwhile, that gap can be closed, making\nthe shortened boiler-plate-free examples fully equivalent to the\noriginal code.\n\nV2-RFC:\n* Add support for IP addresses in commands\n* Move to buildtools directory and make installable\n* Convert 3 examples to use script, and eliminate their boilerplate\n\nBruce Richardson (5):\n  buildtools/dpdk-cmdline-gen: generate boilerplate for simple cmds\n  examples/simple_mp: convert to use cmdline script\n  examples/hotplug_mp: auto-generate cmdline boilerplate\n  buildtools/dpdk-cmdline-gen: add IP address support\n  examples/bond: auto-generate cmdline boilerplate\n\n buildtools/dpdk-cmdline-gen.py                | 151 ++++++++++++++++\n buildtools/meson.build                        |   7 +\n examples/bond/Makefile                        |  10 +-\n examples/bond/commands.list                   |   6 +\n examples/bond/main.c                          | 161 ++----------------\n examples/bond/main.h                          |  10 --\n examples/bond/meson.build                     |   8 +\n examples/multi_process/hotplug_mp/Makefile    |  10 +-\n examples/multi_process/hotplug_mp/commands.c  | 147 ++--------------\n examples/multi_process/hotplug_mp/commands.h  |  10 --\n .../multi_process/hotplug_mp/commands.list    |   5 +\n examples/multi_process/hotplug_mp/meson.build |   9 +\n examples/multi_process/simple_mp/Makefile     |  10 +-\n examples/multi_process/simple_mp/meson.build  |   9 +\n .../multi_process/simple_mp/mp_commands.c     | 106 ++----------\n .../multi_process/simple_mp/mp_commands.h     |  14 --\n .../multi_process/simple_mp/mp_commands.list  |   3 +\n 17 files changed, 257 insertions(+), 419 deletions(-)\n create mode 100755 buildtools/dpdk-cmdline-gen.py\n create mode 100644 examples/bond/commands.list\n delete mode 100644 examples/bond/main.h\n delete mode 100644 examples/multi_process/hotplug_mp/commands.h\n create mode 100644 examples/multi_process/hotplug_mp/commands.list\n delete mode 100644 examples/multi_process/simple_mp/mp_commands.h\n create mode 100644 examples/multi_process/simple_mp/mp_commands.list\n\n--\n2.39.2"
}