Show a cover letter.

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

{
    "id": 506,
    "url": "http://patches.dpdk.org/api/covers/506/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20231220153607.718606-1-david.marchand@redhat.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": "<20231220153607.718606-1-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231220153607.718606-1-david.marchand@redhat.com",
    "date": "2023-12-20T15:35:53",
    "name": "[v5,00/13] Detect superfluous newline in logs",
    "submitter": {
        "id": 1173,
        "url": "http://patches.dpdk.org/api/people/1173/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20231220153607.718606-1-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 30633,
            "url": "http://patches.dpdk.org/api/series/30633/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30633",
            "date": "2023-12-20T15:35:53",
            "name": "Detect superfluous newline in logs",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/30633/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/506/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 AD03843728;\n\tWed, 20 Dec 2023 16:37:47 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6F8E940291;\n\tWed, 20 Dec 2023 16:37:47 +0100 (CET)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by mails.dpdk.org (Postfix) with ESMTP id 77E054021F\n for <dev@dpdk.org>; Wed, 20 Dec 2023 16:37:46 +0100 (CET)",
            "from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com\n [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-504-QqMLTcGtNyixhkxdf_4dXA-1; Wed, 20 Dec 2023 10:37:42 -0500",
            "from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com\n [10.11.54.7])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 30D2E185A780;\n Wed, 20 Dec 2023 15:37:42 +0000 (UTC)",
            "from dmarchan.redhat.com (unknown [10.45.224.218])\n by smtp.corp.redhat.com (Postfix) with ESMTP id 9BECA1C060AF;\n Wed, 20 Dec 2023 15:37:40 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1703086665;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=QYEEhAdrxlm6jX1nDLeVS3dHdOMMLP3DDEjeclY0FsA=;\n b=FOshWYW+fNvfV6rRWEEjDIPriBkF4rWvX4ONILAlxwmNUy21VH4v4BrASqCdkWBIwhnNO8\n Dv470oxUSr0Lap2Z0AX2jNPyXmnoGaTdVawfzPXvnWgKE88RGT6Cxa3EXcUBIRPHSm35yA\n 6Ati0kWaEVlx7y5z0QHDbj+ixzdC5mQ=",
        "X-MC-Unique": "QqMLTcGtNyixhkxdf_4dXA-1",
        "From": "David Marchand <david.marchand@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, ferruh.yigit@amd.com, bruce.richardson@intel.com,\n stephen@networkplumber.org, mb@smartsharesystems.com",
        "Subject": "[PATCH v5 00/13] Detect superfluous newline in logs",
        "Date": "Wed, 20 Dec 2023 16:35:53 +0100",
        "Message-ID": "<20231220153607.718606-1-david.marchand@redhat.com>",
        "In-Reply-To": "<20231117131824.1977792-1-david.marchand@redhat.com>",
        "References": "<20231117131824.1977792-1-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.11.54.7",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Type": "text/plain; charset=UTF-8",
        "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": "Getting readable and consistent logs is important when running a DPDK\napplication, especially when troubleshooting.\nA common issue with logs is when a DPDK change do not add (or on the\ncontrary add too many \\n) in the format string.\n\nThis issue would only get noticed when actually hitting this log (which\nmay be a situation hard to reach).\n\nThis series proposes to introduce a new RTE_LOG_LINE helper that is\nresponsible for logging a one line message and spews a build error (with\ngcc) if any \\n is part of the format string.\n\n\nSince the v1 discussion on the cover letter, I changed my mind, and made the\nchoice to break existing logging helpers exported in the public API.\nThe reasoning is that those should not be used in the first place:\nlogs should be produced only by the library that registers the logtype.\n\nSome multiline logging for debugging and the test assert macros are\nstill present, but in this case an explicit call to RTE_LOG() is done.\nThis can be checked with a simple:\n$ git grep -E 'RTE_LOG(_DP)?\\(' -- lib/ :^lib/log/\nlib/acl/acl_bld.c:      RTE_LOG(DEBUG, ACL, \"Build phase for ACL \\\"%s\\\":\\n\"\nlib/acl/acl_gen.c:      RTE_LOG(DEBUG, ACL, \"Gen phase for ACL \\\"%s\\\":\\n\"\nlib/bpf/bpf_validate.c: RTE_LOG(DEBUG, BPF, \"%s(%p) stats:\\n\"\nlib/bpf/bpf_validate.c: RTE_LOG(DEBUG, BPF,\nlib/eal/common/eal_common_debug.c:              RTE_LOG(CRIT, EAL, \"Error - exiting with code: %d\\n\"\nlib/eal/include/rte_test.h:             RTE_LOG(ERR, EAL, \"Test assert %s line %d failed: \"           \\\nlib/ip_frag/ip_frag_common.h:#define    IP_FRAG_LOG(lvl, fmt, args...)  RTE_LOG(lvl, IPFRAG, fmt, ##args)\nlib/sched/rte_sched.c:  RTE_LOG(DEBUG, SCHED, \"Low level config for pipe profile %u:\\n\"\nlib/sched/rte_sched.c:  RTE_LOG(DEBUG, SCHED, \"Low level config for subport profile %u:\\n\"\nlib/vhost/vhost.h:      RTE_LOG_DP(DEBUG, VHOST_DATA, \"VHOST_DATA: (%s) %s\", dev->ifname, packet); \\\n\n\nChanges since v4:\n- fixed build with -pedantic,\n- reworked patch 12 so it introduce new logging helpers (like for rcu),\n- moved the transition to RTE_LOG_LINE previously in patch 12 to the\n  last patch of this v5 series,\n\nChanges since v3:\n- fixed some checkpatch complaints,\n\nChanges since RFC v2:\n- sent as non RFC,\n- fixed format string crossing line boundaries,\n- avoided potential collision with BPF_ namespace,\n\nChanges since RFC v1:\n- rebased after Stephen log changes,\n- added more fixes as I was making progress on the topic,\n- added a check so dpdk developers stop using RTE_LOG(),\n- added preparation patches, like \"lib: replace logging helpers\",\n- converted all libraries, keeping some special cases with explicit\n  calls to RTE_LOG,"
}